Re: [Haskell-cafe] SIGPLAN Programming Languages Software Award
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
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
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
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
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
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
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/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
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
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
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
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
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
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
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