I like learning programming languages for fun. So far I've written or modified anything practical in (random order) C, Ada, Python, Perl, Java, OCaml, JavaScript, and Bourne shell. I've also written toy programs of varying complexity in Scheme, Standard ML, Haskell, Fortran 90, and Ruby. I'm also interested in programming language theory. My current favorites are OCaml, Python, and Ada.

If you think you've seen everything in programming languages, unless you speak at POPL, you are probably mistaken. There's a lot to discover outside of what is most popular in the industry at the moment, don't fall victim of the Blub phenomenon.

Ah, yes, back then I also programmed in Pascal, and it was the first programming language I learnt. Despite its reputation, Free Pascal and Delphi are by no means toy languages, they have a sane object system, pointers, and everything a real language should have (Free Pascal is self-hosted—this fact alone says it all). I wouldn't want to go back to it though, there are better languages now.


There are a number of things I want to learn about but they are hard to learn on my own. Among these are measure theory, FPGA programming, and hard realtime. If you know good resources for learning these, please tell.


Right now I'm using Fedora on my desktop. Before that I used to use, for periods of varying length (in reverse chronological order) Debian, CentOS, OpenSolaris, OpenSuSE, ASP Linux, and Microsoft Windows. I don't feel overly attached to any distro and don't engage in distro advocacy, every time I switched it was for a technical reason.

I haven't used Windows on my desktop since some 2007 when my Windows installation died and I realized that I don't really need or want to restore it (before that I had a dual boot setup). There is no windows-only software I need on daily basis and I don't like the system regardless of its proprietary license. I have a Windows VM in VirtualBox for interoperability testing though. I normally don't engage in anti-windows advocacy as I have better things to do.

This page was last modified: 2015 June 10