Haskell goes mainstream

Well, if this LtU news is to be believed, since a couple of weeks ago, Linspire is using Haskell as its main OS development language:

The OS team at Linspire, Inc. would like to announce that we are standardizing on Haskell as our preferred language for core OS development.

We are redoing a bunch of our infrastructure using Haskell as our common standard language. Our first task is redoing our Debian package builder (aka autobuilder) in Haskell. Other tools such as ISO builders, package dependency checkers are in progress. The goal is to make a really tight simple set of tools that will let developers contribute to Freespire, based on Debian tools whenever possible. Our hardware detector, currently in OCaml, is on the block to be rewritten as well.

This surprising announcement was made at the Debian Haskell Mailing List, since Linspire (and its free variant, Freespire) is based in Debian. This is what these brave developers have to say of the topical worries against such a move:

I mention Freespire because some of our colleagues were concerned that using Haskell would isolate us from the larger community of developers and make it hard to find new employees skilled in Haskell, should we need to. From our perspective, functional programming makes us more effective and we think that getting even a few people who know Haskell hacking with us is a better combination than lots of Perl and bash.

If it is a late April’s Fools joke, please someone tell me!

Not your parents’ shell

The developers of scsh, the Scheme shell, have just released version 0.6.7 of their awesome Scheme implementation. Scsh is, in my opinion, simply the best scripting language around, by a long stretch. It was initially implemented by Olin Shivers on top of scheme48, as a result of his problems with traditional shell languages: he wrote a detailed rationale on the design principles behind scsh that is full of insight and a must read. In addition, this page is full of writings by Olin and other minds behind s48/scsh (like Michael Sperber or Martin Gasbichler) with interesting details on many aspects of scsh’s implementation.

CommanderDuring the last years, scsh has become, slowly but surely, my default scripting tool (emacs’ eshell is also fine, but, you know, elisp is not scheme), my only nit being its lack of a shell prompt powerful enough to fully replace zsh or bash. But, lo and behold, it seems the writing may be on the wall for my bash/zsh’s days: a beauty called Commander S is well underway. Commander S is an interactive frontend for scsh, based on the ncurses library, described in the workshop paper Commander S – The shell as a browser, by Gasbichler and Knauel. In the author’s words:

Commander S is a new approach to interactive Unix shells based on interpretation of command output and cursor-oriented terminal programs. The user can easily refer to the output of previous commands when composing new command lines or use interactive viewers to further explore the command results. Commander S is extensible by plug-ins for parsing command output and for viewing command results interactively. The included job control avoids garbling of the terminal by informing the user in a separate widget and running background processes in separate terminals. Commander S is also an interactive front-end to scsh, the Scheme Shell, and it closely integrates Scheme evaluation with command execution.

Although it’s not yet released, the brave and bold among you can already give it a try from its CVS repository.

(I wish i had time for Conjure: one of the features i had in mind was some sort of interactive build tasks inspector, and Commander S’s plug-ins look like an excellent implementation vehicle for such a thing. You’re not looking for a nifty scheme project, are you?)

Tags: , ,

A minsky machine to play with

Over at Good Math, Bad Math (a wonderful blog i wholeheartedly recommend), Mark Chu-Carroll has published a minsky machine to play with, implemented in Scheme. In case you’re wondering, Mark also explains what a minski machine is (and why they’re equivalent to Turing machines). Minski machines are sometimes called register machines: a bit more on them here and here.

For additional fun (if you feel like philosophizing a bit) see also this other kind of Minski machine.

Tags: ,

AI Newsletter’ed

To my surprise and great delight (and the hope that you won’t mind a bit of shameless self-promotion), i’ve discovered that Jocelyn Paine is reviewing some of my posts in the last issue of his nice AI Newsletter. In particular, if you liked Programmers go bananas, you’ll be interested in the links and comments of Jocelyn, which hint at what should (will?) be the second part i had in mind (actually, the real banana stuff). Besides, the newsletter has really interesting sections like the one devoted to robotics in functional languages and this other one full of links that will tell you how to do research.

Thanks a lot, Jocelyn.

Recursion, logic and co.

It just occurred to me that hibernation doesn’t preclude my pointing you to some interesting articles, even if i have not explored them in full. So, in a rush:

  • Julian Noble’s small collection of articles includes a nice and colorful introduction to recursion (with examples in C and Forth) and a very interesting discussion of complex numbers and their implementation.
  • Those of you with a soft spot for maths and computer-generated images will have a great time with the recovered Mathematical Imagery website, by the AMS.
  • Via this post on LtU, a very nice article by Philip Wadler exploring logic and logic programming.
  • Could a machine think? is a very fun article revisiting the well known Chinese Room argument against hard AI.


Tags: , , ,


As you surely have noticed by now, this blog has entered, during the past weeks, a period of inactivity. Posting with a minimum of quality needs lots of time, and, as of late, i’ve been busy with other projects, not directly related with programming or computer science. This lack of time will persist, at least, until mid june. Afterwards, i may find the time and inspiration again. Thanks to all of you for reading, and also for your interest (i accidentally lost a couple of kind mails i received) in this space. Hopefully, programming musings is not dead, but just hibernating.