For the last year or so I've been following and writing some code in the Haskell programming language, specifically using the
GHC compiler, on Mac OS X, Linux and Windows. I've been using it in simulations at work for a remote computer hardware management system we've been developing, and it's been quite fruitful.
Also, we've been developing a management software package at work that deals with namespaces of resources rather than a static class library Object Oriented Model, which can become very difficult to design appropriately or extend as the needs of the organization, and our customers, evolve over time. We aimed to make a project that uses a very simple interface to complex management systems, and I think we're succeeding quite well.
On top of all of this I've also been coding in
Erlang for a bit of time now (about 2 years and 1.5 of those professionally) and I've found that designing systems as if they're distributed from the get go really helps one fit into the new trendy SOA models everyone wants you to think about in industry these days (It's just client server architecture with a lot of marketing as far as I can tell).
I've also been using systems based on a distributed design like Plan 9 and Inferno as much as I can work them into my life these days. Sadly that seems to have fallen back to *only* the use of an IRC file system for Inferno - a cool concept, think about how the popular UNIX "screen" program works with sessions you can detach and re-attach to, but do it over a system-wide ubiquitous file system protocol (
9p).
I've worked with 9p client libraries written in C, Python, Java and other languages, but I've yet to see on for Haskell or Erlang for that matter. Perhaps someone should do something about that... (perhaps I will, time is not something I have an abundance of for this stuff these days).
One thing I would love to be able to do is fire up an iPhone application that had an embedded 9p client, and connect to the irc file system and use it. Another interesting approach would be to try to implement the
Octopus client on the iPhone OS, and just use that to connect to running programs on a centralized server.
These days I wish I could just take a paid sabbatical from work and do these things, as spare time is hard to come by.