Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-10 Thread Yves Parès
Oh yes, having newly been using C++ at work, I realized they were a big
something [1] that enabled you, as it were, to do whatever unstructured
unholy type trickery you want, and yes, even making classes AB and AC
completely different things. (BUT! We could argue over this fact: Isn't it
also one of the purposes of... Type Families? Where the TF Foo :: * - *,
can yield to datatypes Foo String and Foo Int being completely different and
unrelated?)
I was more saying that you could roughly emulate Haskell classes in C++
with templates (minus a good type security).

[1] Vernacular, isn't it?


2011/6/10 Richard O'Keefe o...@cs.otago.ac.nz


 On 9/06/2011, at 8:02 PM, Yves Parès wrote:

  Were templates an original feature of C++ or did they appear in a
 revision of the langage ?

 The latter.  C with classes did not have multiple inheritance,
 exceptions, or templates.

 Note that C++ templates are *not* the same kind of animal as Eiffel
 generics or Java generics
 or Ada generics or Haskell parametric polymorphism.  The C++ template
 language lets you do
 type-level functional programming, and different instances of a common
 type constructor may
 in fact have quite different internal structures.  C++ templates are NOT
 'merely keywords
 around .. parametric polymorphism', they are a far more dangerous thing.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-10 Thread Richard O'Keefe

On 10/06/2011, at 6:00 PM, Yves Parès wrote:

 Oh yes, having newly been using C++ at work, I realized they were a big 
 something [1] that enabled you, as it were, to do whatever unstructured 
 unholy type trickery you want, and yes, even making classes AB and AC 
 completely different things. (BUT! We could argue over this fact: Isn't it 
 also one of the purposes of... Type Families? Where the TF Foo :: * - *, can 
 yield to datatypes Foo String and Foo Int being completely different and 
 unrelated?)

That was when Haskell went over to the Dark Side, yes.
Curious observation:

Object language Type language
OO (C++)functional
functional (Haskell)logical

It makes me wonder what comes next...



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-10 Thread Malcolm Wallace

 Curious observation:
 
Object languageType language
OO (C++)functional
functional (Haskell)logical
 
 It makes me wonder what comes next...

To be more accurate, it was Functional Dependencies that introduced a logic 
programming language to the type level in Haskell.  Type Families are an 
explicit attempt to use instead a functional language at the type level to 
mirror the functional language at the value level.

Regards,
Malcolm

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Andres Loeh
I think the history of generics in Java is

Pizza (http://pizzacompiler.sourceforge.net/) -
GJ (http://lamp.epfl.ch/pizza/gj/) -
Java

I think that if you consider that history, and in particular the Pizza
compiler, then the connection to FP becomes rather obvious.

Cheers,
  Andres

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Yves Parès
Were templates an original feature of C++ or did they appear in a revision
of the langage ?
Because C++ appeared in 1982 and Haskell in 1990.
But of course, the ML languages are older, so maybe Bjarne Stoustrup took
inspiration from them. (Anyway, functional features picked up in the
mainstream imperative languages usually end up being just details that
doesn't save much code typing and that are powerless when compared with the
original functional features).
I cannot help smiling when I hear Java/C#/Python developers telling about
the wondeful features of their languages ;)
(- We have generators! We can _yield_ values! [1]
 - Yeah, so nice... We have simple lists... with lazy evaluation)
(- We have type generics!
 - Sigh...)

Had once a microsoft representative that came to my school to hold a lecture
about C#/LINQ. Told us during fifteen minutes about their python-like
yield feature. Yay And to say some of my teachers were in awe [2].

[1] Amusing fact: this was me, a few years ago.
[2] Well, of course, with a Java background.


2011/6/8 Alexander Solla alex.so...@gmail.com



 On Wed, Jun 8, 2011 at 2:00 AM, Malcolm Wallace malcolm.wall...@me.comwrote:


  More seriously, the influence of Haskell over F# (and even Python) is
 undoubted, but do you really think Haskell influenced Java Generics? (IMHO
 they were more inspired from C++ templates)
  (That is a question, not an assertion).

 Phil Wadler had a hand in designing both Haskell and Java Generics I
 believe.


 As far as I understand, Java/C# Generics and C++ templates are merely
 keywords around what we Haskellers call parametric polymorphism.  In other
 words, our type language is rich enough to express types like:

 stringConcat :: [String] - String

 and

 concat :: Monoid a = [a] - a

 using the same typing language, whereas the C-style languages require
 annotations.  (You can probably guess which I prefer.  I don't need keywords
 to tell me what the code describes, then the code describes it so clearly)

 I can't find any literature that specifically credits
 functional languages for the feature, but Bjarne Stoustrup
 himself acknowledges that functional programmers would tend to find template
 metaprogramming easier than others.  He was probably aware of functional
 implementations (Haskell?  Miranda? ML?) when he said that.

 I don't see the connection between Haskell's typeful programming and
 Python.  List comprehensions are set-builder-notation-like syntactic sugar
 for lists.  I didn't use them in Python and I don't use them in Haskell.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Yitzchak Gale
 The SIGPLAN Programming Languages Software Award
 For 2011, the winners of the award are
 Simon Peyton Jones and Simon Marlow of
 Microsoft Research, Cambridge, for GHC

Congratulations!

Well deserved recognition for visionary ideas backed by
so many years of hard work.

-Yitz

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Stephen Tetley
On 9 June 2011 09:02, Yves Parès limestr...@gmail.com wrote:
 Were templates an original feature of C++ or did they appear in a revision
 of the langage ?
 Because C++ appeared in 1982 and Haskell in 1990.

Templates were a later addition to C++. There is a strong tradition of
generics in OO and related languages that seems rather unrelated to
typed functional programming - ADA, Eiffel and particularly CLU.

Congratulations to the Simon's of course, kudos _and_ escudos from the ACM!

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Dominique Devriese
2011/6/9 Stephen Tetley stephen.tet...@gmail.com:
 On 9 June 2011 09:02, Yves Parès limestr...@gmail.com wrote:
 Were templates an original feature of C++ or did they appear in a revision
 of the langage ?
 Because C++ appeared in 1982 and Haskell in 1990.

 Templates were a later addition to C++. There is a strong tradition of
 generics in OO and related languages that seems rather unrelated to
 typed functional programming - ADA, Eiffel and particularly CLU.

Note that the more recent C++ concepts are related to (and inspired
by?) Haskell type classes. See Bernardy et al.'s interesting paper A
comparison of c++ concepts and haskell type classes:

  http://portal.acm.org/citation.cfm?id=1411324

 Congratulations to the Simon's of course, kudos _and_ escudos from the ACM!

Idem. The Simons, GHC and the associated research very much deserve this award.

Dominique

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Richard O'Keefe

On 9/06/2011, at 8:02 PM, Yves Parès wrote:

 Were templates an original feature of C++ or did they appear in a revision of 
 the langage ?

The latter.  C with classes did not have multiple inheritance, exceptions, or 
templates.

Note that C++ templates are *not* the same kind of animal as Eiffel generics or 
Java generics
or Ada generics or Haskell parametric polymorphism.  The C++ template language 
lets you do
type-level functional programming, and different instances of a common type 
constructor may
in fact have quite different internal structures.  C++ templates are NOT 
'merely keywords
around .. parametric polymorphism', they are a far more dangerous thing.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-09 Thread Richard O'Keefe

On 10/06/2011, at 12:12 AM, Dominique Devriese wrote:
 Note that the more recent C++ concepts are related to (and inspired
 by?) Haskell type classes. See Bernardy et al.'s interesting paper A
 comparison of c++ concepts and haskell type classes:
 
  http://portal.acm.org/citation.cfm?id=1411324

The book Elements of Programming by Stepanov (inventor of the STL)
and McJones uses concepts heavily.

Quoting the Wikipedia:
In the pending C++0x revision of the C++ programming language,
concepts and the related notion of axioms were a proposed extension
to C++'s template system, designed to improve compiler diagnostics
and to allow programmers to codify in the program some formal
properties of templates that they write.  Incorporating these
limited formal specifications into the program (in addition to
improving code clarity) can guide some compiler optimizations,
and can potentially help improve program reliability through the
use of formal verification tools to check that the implementation
and specification actually match.

**  In July 2009, the C++0x committee decided to remove concepts
**  from the draft standard

C++ concepts have an extremely obvious connection to Ada generics (the
key idea having been present already in Ada 83; I _think_ in Ada 81 but
I don't have an Ada 81 reference handy to check) and Eiffel generics.
I'd have said they were closer to SML signatures than to anything in
Haskell.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-08 Thread Daniël de Kok
On Jun 7, 2011, at 7:53 PM, Isaac Potoczny-Jones wrote:
 For 2011, the winners of the award are
 
 Simon Peyton Jones and Simon Marlow of
 Microsoft Research, Cambridge, for GHC

Congratulations :)!

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-08 Thread Yves Parès
 many of the ideas of purely functional, typeful programming have been
carried into newer languages and language features. including C#, F#, Java
Generics, LINQ, Perl 6, Python, and Visual Basic 9.0.

typeful programming and Python in the same sentence? ^^

More seriously, the influence of Haskell over F# (and even Python) is
undoubted, but do you really think Haskell influenced Java Generics? (IMHO
they were more inspired from C++ templates)
(That is a question, not an assertion).


2011/6/7 Isaac Potoczny-Jones ijo...@galois.com

 I'm pleased to be able to relay the following announcement from ACM
 SIGPLAN:

 The SIGPLAN Programming Languages Software Award is awarded to an
 institution or individual(s) to recognize the development a software system
 that has had a significant impact on programming language research,
 implementations, and tools. The impact may be reflected in the wide-spread
 adoption of the system or its underlying concepts by the wider programming
 language community either in research projects, in the open-source
 community, or commercially. The award includes a prize of $2,500.

 For 2011, the winners of the award are

 Simon Peyton Jones and Simon Marlow of
 Microsoft Research, Cambridge, for GHC

 The award winners are donating the entirety of the prize money to
 haskell.org.

 Citation:

 Simon Peyton Jones and Simon Marlow receive the SIGPLAN Software Award as
 the authors of the Glasgow Haskell Compiler (GHC), which is the preeminent
 lazy functional programming system for industry, teaching, and research. GHC
 has not only provided a language implementation, but also established the
 whole paradigm of lazy functional programming and formed the foundation  of
 a large and enthusiastic user community.

 GHC's flexibility has supported experimental research on programming
 language design in areas as diverse as monads, generalized algebraic data
 types, rank-N polymorphism, and software transactional memory. Indeed, a
 large share of the research on lazy functional programming in the last 5–10
 years has been carried out with GHC.

 Simultaneously, GHC's reliability and efficiency has encouraged commercial
 adoption, in the financial sector in institutions like Credit Suisse and
 Standard Chartered Bank, and for high assurance software in companies like
 Amgen, Eaton, and Galois.

 A measure of GHC's influence is the way that many of the ideas of purely
 functional, typeful programming have been carried into newer languages and
 language features. including C#, F#, Java Generics, LINQ, Perl 6, Python,
 and Visual Basic 9.0.

 Peyton Jones and Marlow have been visionary in the way that they have
 transitioned research into practice.  They have been role models and leaders
 in creating the large and diverse Haskell community, and have made GHC an
 industrial-strength platform for commercial development as well as for
 research.

 Links:
 http://www.sigplan.org/award-software.htm


 http://corp.galois.com/blog/2011/6/7/sigplan-programming-languages-software-award.html



 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-08 Thread Malcolm Wallace

 More seriously, the influence of Haskell over F# (and even Python) is 
 undoubted, but do you really think Haskell influenced Java Generics? (IMHO 
 they were more inspired from C++ templates)
 (That is a question, not an assertion).

Phil Wadler had a hand in designing both Haskell and Java Generics I believe.

Regards,
Malcolm

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-08 Thread John D. Ramsdell
Well deserved.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award

2011-06-08 Thread Alexander Solla
On Wed, Jun 8, 2011 at 2:00 AM, Malcolm Wallace malcolm.wall...@me.comwrote:


  More seriously, the influence of Haskell over F# (and even Python) is
 undoubted, but do you really think Haskell influenced Java Generics? (IMHO
 they were more inspired from C++ templates)
  (That is a question, not an assertion).

 Phil Wadler had a hand in designing both Haskell and Java Generics I
 believe.


As far as I understand, Java/C# Generics and C++ templates are merely
keywords around what we Haskellers call parametric polymorphism.  In other
words, our type language is rich enough to express types like:

stringConcat :: [String] - String

and

concat :: Monoid a = [a] - a

using the same typing language, whereas the C-style languages require
annotations.  (You can probably guess which I prefer.  I don't need keywords
to tell me what the code describes, then the code describes it so clearly)

I can't find any literature that specifically credits
functional languages for the feature, but Bjarne Stoustrup
himself acknowledges that functional programmers would tend to find template
metaprogramming easier than others.  He was probably aware of functional
implementations (Haskell?  Miranda? ML?) when he said that.

I don't see the connection between Haskell's typeful programming and Python.
 List comprehensions are set-builder-notation-like syntactic sugar for
lists.  I didn't use them in Python and I don't use them in Haskell.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe