Poly/ML is a very fast implementation of Standard ML 97. Interesting feature (apart from performance): the system is much more oriented towards Lisp systems than towards classic command-line compilers. You have an interactive working environment and an image that is automatically saved when the session ends and thus makes all definitions available again in the next run.
The advantage of this way of working is simply that you can adapt your system to your own needs over time. Together with the FFI and external libraries, you can gradually put together a nice environment that is optimized exactly for the intended goals. In addition, you often save extra object databases: you simply save values (or in the case of ML, structures) in the image and keep them there.
Since Poly/ML simply hangs the image in the address space using mmap and does not first read and then write it later, the whole thing is also quite fast - with image systems, the system start often bothers.
Oh, and by the way, Poly/ML runs smoothly under OS X ...
The speed of the compiler unfortunately does not necessarily continue in the generated code, as can be seen from this comparison. But just like with OpenMCL, the fast environment is definitely advantageous for prototyping. You can then set a compiler that takes longer but then spits out better optimized code like MLTon.
Ruby stuff for Macs is a ready-made DMG for both Panther and Jaguar with pre-installed Ruby 1.8.2 and various extensions (including Rails and Rubygems!). Unfortunately, the 10.2 DMG is broken - I've contacted the author.
You can of course also compile Ruby yourself, it's not particularly complicated. For OS X, there's also DarwinPorts. However, the port under 10.2 is acting up and cannot be compiled cleanly. Something in the iconv module - syntax error.
Somehow my system doesn't like Ruby today
Update: now the package works.
The fate of reduce() in Python 3000 - well, it's probably time for me to switch languages. Because anyone who is so stupid as to cut themselves off from Lisp roots will only manage to rebuild more powerful possibilities with primitive means. Ruby also looks very useful and I'm slowly getting used to the syntax ...
Anonymous functions (lambda in Python, blocks in Ruby or Smalltalk) are far more than just obscure Lisp relics. I have many code snippets that live precisely on the fact that I can pass around anonymous code blocks - ultimately, this is about writing your own program structures. In Smalltalk and similar languages (and to some extent in Ruby) you can use this to extend and develop the language itself - which is one of the strengths of Lisp and its friends (and that's why it's also found in Smalltalk and its friends - the Smalltalk developers had a lot of Lisp know-how).
Languages that castrate themselves at this point and think that iterators and list comprehensions (basically nothing more than loops written in shorthand) are a viable replacement for being able to program your own control structures and your own language tools have become completely uninteresting to me. I don't like language designers who think they are smarter than the later programmer and want to impose a language corset on them.
The article hyper-cliki : Web/Continuation describes how to write web applications with the continuation-based web framework UnCommon Web in Common Lisp. Very interesting, as Common Lisp itself is much more handicapped with continuations than Scheme - in Scheme continuations are first-class objects by standard, in Common Lisp they are not.
Continuation-based web servers have the advantage that the actual code can be structured very similarly to classical applications. You don't have to deal much with the event model of classical web programming and you rarely have to deal with explicit session constructs, because the session in a continuation-based web system is implicit.
There are continuation-based web frameworks for the following languages:
- [Smalltalk][1]
- [Common Lisp][2]
- [Scheme][3] (unfortunately no direct link to the web server itself)
- [SISC Scheme][4]
- [Ruby][5] [twice][6]
- [Python (via CherryPy and either Stackless or StateSaver)][7]
There are certainly more, but these are the ones I could find quickly.
WP: Gravatar Signup [ Tempus Fugit | TxFx.net ] is a small plugin that allows users to sign up for a Gravatar directly from the comment form, making it as easy as possible for people without a Gravatar to get started (and thus spreading Gravatars). Fun idea.