A write-up on the Commercial Users of Functional Programming 07 conference is now available here.
It is definitely worth a read for folks who wonder about the “real world” problems that are solved using functional programming. There is a nice mix of both languages and problem domains, and the tone is pretty laid back.
Maybe it’s just an OO bias, but I like the ruby one better still. I like types that have methods I guess.
The scheme version is nice in that it allows you to have “flavor” words – from in this case, but it’s only nice if they are optional I think.
It’s also poses an interesting question I guess. Writing a language is like writing a framework. Does it have any value in isolation of a program that solves a real problem? (Other than the value of academic interest.) Is that being overly pragmatic?
RE: “an OO bias”…
The fascinating thing is to look at syntaxes that really “speak to people”, and then to try and understand that appealing aspect of it. It just so happens that my laboratory has a lot of parentheses and a scientist who didn’t want to add “upto” to a type system in Scheme because it would’ve been more work 🙂
RE: Writing a language is like writing a framework. Does it have any value in isolation of a program that solves a real problem?
That is a good question to ask. I’ll read a little bit deeper in to it and rephrase the question as “Is it worth studying how to implement abstractions in a language with which you would never do any billable work?”.
The answer is most assuredly yes, if you want to explore language as an abstraction. The important thing about undertaking such a study is that you have the tools to remove barriers to your learning; in other words, use the tools that make it easy. Ultimately, the important thing is that you internalize the techniques of abstraction, as you may then apply them using whatever programming language happens to be in vogue at the time.
The programming language that you use to implement language as an abstraction is the least interesting thing about how you solve the problem.