10 programming languages, 10 projects, 12 months

Wednesday, 2 January 2008, in categories: Programming

Hello, I’m Jarek and I’m a programming languages junkie. From since I was a young nerd, I enjoyed playing with them, and to some degree I still do. As I get older and more serious about programming, through, I try not to get as subjective about them as I once was, or worse yet, attached to a particular technology too much. Sadly, I found such attitude to be rare, and good objective language evaluations hard to find, especially ones that would cover which disciplines which language is good for, except the obvious ones (like Perl for text processing). A good craftsman knows what tool to use for which tasks, this is pretty much established knowledge, even through some variation of opinions certainly exists. Yet in programming, other factors tend to play a major role in choosing the tool - large corporations support (if the project is a commercial one, or if you want to be useful in your work), personal taste, hype surrounding the language, ease of use etc.

That said, as my 2008 blogging / programming project I want to make such an evaluation, or at least a draft of it. My schedule is very tight now, so it might be my only extra-curricular blogging/programming activity, so it better be good. The analogy between programming language and craftsman’s tools may or may not be right, but the experiment seems interesting to me anyway - throughout this year, I will try to build 10 practical applications in 10 different programming languages - 100 programs total. Of course, I won’t manage to write 100 projects of a significant size in one year, neither will I get a good understanding of any of the languages I’ll use for such a short period (not counting those that I’ve already played with before). Anyway, what I surely can do, is to get a good sense of which language feels like, how comprehensive are the standard libraries (having not much time this may be crucial) etc. I may also check out how the language affects the way you can solve a problem in a direct comparison. That’s why I want the 10 program ideas to be really interesting, doing useful and fun stuff, not just dry calculations or simple algorithmic problems. One nice example I saw other people did when doing such comparisons on a smaller scale was a ray tracer, and this is really nice - it combines some number crunching, file handling, graphic file formats handling etc. and the end result is a nice picture, so writing it gives some satisfaction.

Here is where your help comes in - I need suggestions which languages to choose, and what projects to work on. Well, to be sincere, my languages list is pretty much set, and it probably will look like this:

C++ with Boost / other third-party libraries
Lisp (SBCL?)
Python (I always was a Ruby guy)
Factor
J
Scheme (PLT?)
Erlang
Haskell
OCaml
Smalltalk (Squeak?)

I pretty much like this selection, but feel free to make any suggestions you like, I’m not exactly sure about the C++ part, but it may be a good reference point. Anyway, I’m much less sure about the projects list, besides the ray-tracer example the only thing that comes to my mind right now is a simple unit-testing framework, which is a great test for the language expressiveness and can be bootstrapped rather quickly. So, I’m waiting for your suggestions, and even if no-one will give any, I will try to post the complete list and maybe some first results in a few days.

Add to del.icio.us / Add to reddit.com / Digg it!

Comments (RSS):

10 programming languages, 10 projects, 12 months | Technology, 2 January 2008, 9:36 am

[…] Read the rest of this great post here […]

Ashley Moran, 2 January 2008, 5:05 pm

Hi Jarek,

You’ve got a lot of functional languages on there, but you’re missing a really interesting one - Scala. It combined OOP and functional programming and runs on the JVM. Maybe replace one of Scheme and Lisp, as they are both very similar (from my understanding?)

Also have you see Io? ( http://www.iolanguage.com/ ) This is one I was not aware of until recently. Not a recommendation as such, just a pointer.

Ashley

u, 2 January 2008, 6:09 pm

http://merd.sourceforge.net/pixel/language-study/

Just in case you didn’t know about it.

a.

Stifflog - 10 programming languages, 10 projects, 12 months - The List, 2 January 2008, 10:20 pm

[…] Here is what I finally settled on for my little project: […]

Paweł, 29 March 2008, 1:56 am

Why don’t you start a company instead and choose 1 project, 2-5 years and any programming languages/people you like to work with..? :-)

Comment this post: