Really interesting slides. As someone who has only briefly played around with Haskell, I do envy some of its features, particularly the type inference. I wish there were more languages that could combine the ease of scripting languages with the maintainability of compile-time typechecking.
I love this talk. For whatever reason, language history is immensely interesting to me. I love the haskell class photo from the 90's, I love him talking about envying features of other languages, I love hearing about research papers helping bring the language to the next level. I don't know haskell whatsoever, but now I respect it and find it fascinating.
I would love to see similar talks about other languages.
I found the question at the end an interesting one (paraphrased): "would you be happy if people wrote websites to sell dog food in haskell?"
I was a little disappointed in SPJ's response, actually.
What would make it a bad language for such an application? What would make it a good language? Would the answer change if you instead wanted to create a framework for building thousands of web-store applications that were all similar but a little different?
As I understood the question, it wasn't really about Haskell's fitness for that particular purpose but rather a bit of a jab at its theoretical, researchy nature. I thought it basically meant "How would you feel about your baby being used in a completely quotidian manner?".
I have been trying to learn haskell for a while, and I like it quite a lot. I found myself thinking things like "what kind of amazing software could I build in haskell that I couldn't with any other language". I realized that was the wrong way to think about it, but perhaps there's something more there. After such an investment in learning, maybe writing a simple web store seems like an under-use of the language.
I wonder what things would be like if people did write ordinary applications in haskell.
Well, people do write ordinary applications in Haskell (it's not just banks :)). And the result is surprisingly stable and short programs. A perfect example here is XMonad--it's a fairly popular tiling window manager with a good set of features and is something like 2500 lines long (just using wc -l to count, so don't trust this number :)).
Additionally, Haskell is actually pretty well suited for web programming as well. There are several frameworks which make writing server-side code easy and have very good performance; the two most popular ones seems to be Snap[1] and Yesod[2]. The combination of expresiveness and performance Haskell offers server-side is very good--C++ may be faster but is uglier, Ruby and friends may be as expressive but are slower.
I wasn't talking about the suitability at all. I'm still learning so I can't comment on that, but it seems fine so far.
Maybe another way of thinking about it is: I wonder what it would be like when haskell gets to the point that an application written in haskell is distinct or ordinary because of what it does, not because it's written in haskell.
And that kind of goes back to the question during the talk: there's nothing distinctive about a website that sells dog food, so if people start choosing haskell for that kind of thing, that would be a turning point.
I have only looked at the slides. This looks like an interesting overview of Haskell, but, like most functional programming talks I see seems to think the rest of us really want to be using functional programming.
Notice the slides that thinks the connection between C/Java and Haskell is that C/Java programmers envy Haskell, and take ideas from it. No envy or ideas ever flow the other way.
While there is little envy of Java in Haskell land (is there much Java envy anywhere?), there is actually a healthy flow of ideas to and from .NET, particularly C# and (naturally) F#. (Simon Peyton-Jones works at Microsoft Research, after all.)
For example, I have heard talk of extending Haskell's already nice list comprehensions with some LINQ features like orderBy.
So while the slides--which are just a backdrop for the talk rather than its entirety--may imply Haskell is insular like that, the reality is that Haskell is always happy to take features from other languages.
Finally, I think the idea isn't that everybody wants to use functional programming languages, but rather that everybody should want to use functional programming languages ;).
SPJ actually discusses this a bit in his talk. He says that Haskell has tried to achieve the ease and intuitiveness of imperative programming through things like the "do" syntax sugar for monads. He agrees that there's still plenty of improvement to be made; on several occasions he jokes about how Haskell programmers envy other programmers' ability to get things done quickly.
He's also joked about making strict/eager (non-lazy) eval the default. I think the heart of the joke is that learning haskell (and all the GHC extensions) involves a lot of staring at error messages, type signatures and the rest of hte code and trying to make associations.
The envy slide doesn't make his intent particularly clear. He is talking about how Haskell envies the usefulness of the dangerous languages, and then contrasts that with how Haskell contributes more theoretical ideas (e.g. retry/orElse for STM) back to those languages.
>Notice the slides that thinks the connection between C/Java and Haskell is that C/Java programmers envy Haskell, and take ideas from it. No envy or ideas ever flow the other way.
If you had actually watched the talk, you would have noticed that that's not the case at all.
You've been corrected already on your misinterpretation of the slide without watching the video (at 38:08), but I wanted to add that Simon has repeatedly made the point (including this presentation) that prior to IO Monads, the designers of Haskell were envious of other languages and the slide is repurposed from earlier presentations.