The last few weeks a lot of programming languages have been piling up on my “would be nice to look more into” stack. I simply haven’t got the time at the moment for that kind of nerd excursions, but I’d like to jot them down:
- Cobra Language. Basically targeting the .NET/mono platform (but I saw Java platform support was on the way), this is a Python-influenced static+dynamic language which I think has a lot going for it. Uses C# as an “intermediate language”, so the compilation process is Cobra->C#->IL. The downside right now seems to be lack of IDE-support (syntax highlighting+code completion is a really nice feature if you’re in a static language). What I really liked about Cobra was the built-in code-contracts + unit testing support. Plus a really fancy “bite-your-tail”-installation process: The Cobra compiler is written in Cobra, and when you download the .zip it contains a script that compiles+installs the whole system, using a “prebuilt/minimalistic” version of the compiler.
- Boo. Quite a lot of similarities to Cobra, being a Python-inspiread .NET-targetting static+dynamic language, but no built-in unit-testing/code-contracts. Also, it doesn’t compile to C# but IL directly. Compared to Cobra it’s more mature with a bigger developer community and some real-world projects using Boo already.
- LuaJIT. I know some Lua already, it’s possibly the tiniest C-embedding language I’ve seen. LuaJIT is simply a really optimized just-in-time version of the ordinary Lua interpreter, making it a super-fast dynamic language (actually almost competing with C in some cases). The downside of this seems to be lack of Unicode support plus the language might be a little too minimal for a big project (but I’m not convinced on that argument). Nagging point: arrays are indexed from 1!
- Rebol. This is something different! It’s a “all batteries included”-approach to programming. It’s designed by an real old-school Guru: the developer of the “exec” functionality for AmigaOS, Carl Sassenrath. REBOL is a kind of modern-day BASIC, if I may say so, focusing on being readable/grokkable also for newbies. I like a lot of the “democratics” surrounding this, with the stated purpose of making programming accessible to more people. REBOL’s got a code demo which is one of the most impressive pieces of “compressed source” I’ve ever seen, cramming Worm+Tiles+FTP and 8 other small programs into one page of code!
- D. This is a more traditional approach: it’s essentially a “better C++” – for real, not just a saying – like C++ compared to C. Built-in unit-testing/code-contracts, neater-than-C++-syntax plus a more thought-through “big picture” on what does belong and what does not in a (real-world) programming language. D impresses me more and more the more I read about it.
- Haskell. This is an old playmate of mine, since University years. I love the syntax and thought-world that is pure functional programming, but I’ve never done a “real-world” program in Haskell (read: complete app/game). I’d like to re-visit Haskell, especially trying out TDD in Haskell.