archives

Realistic Functional Programming in the Java Platform

Greetings,

I need to produce software to run in the Java Virtual Machine, but I have no restriction on which language to use, so I'm not stuck with Java the language.

I thought at first about using Scala or Nice: both support functional programming along with OO and other paradigms, and integrate well with the Java API.

So I'm left to decide which one to use. From a quick overview, Scala seems to have more language "features", but lack some serious editor support (I didn't see any emacs mode, and the Eclipse plugin is not in a good state right now). Nice has an emacs mode but the latest version of the language distribution is somewhat old, which made me think if it's still being actively developed. As I've seen many people around LtU report experiences with these two languages, I'd like some comments about the two of them, comparing them if possible. That would help me to decide.

And I'm willing to consider other options too. My main requirements are: 1) multi-paradigm language with good support for functional programming; 2) good editor support (emacs or eclipse); 3) generates code for the JVM; 4) integrates well with Java, being able to both use Java classes and APIs and generate classes that can be used by Java code. As a bonus, having lexer/parser generating tools would be great. Haskell and OCaml are two of my current favorite languages. I like Scheme too but tend to be a statically-typed guy.

Thanks for any help.

[EDIT: added a fourth requirement that I forgot to mention]

Auld Lang Alice

So any ambitious souls out there that have a plan to tackle a new PL for 2006?

It's been a year now since I picked Alice as my language of 2005. I suppose it was a fairly productive year, given that I managed to translate large portions of the first eight chapters of CTM and even brief portions of SICP and TAPL. Though most of that was done in the first six months of the year, and I've had very little time to subsequently move forward.

Having stalled out (what with working two jobs, taking a graduate course in discrete math, and generally helping the kids with 4th grade, 9th grade and college freshman courses), I'll probably carry on with Alice for the new year. Unfortunately, in the present I'm too preoccupied with C# to accomplish much of anything from a conceptual angle.