2009
09.27

Please leave any comments here http://infinityinyourhands.net

There are a lot of programming languages floating around.  Off the top of my head I can think of C, C++, C#, Visual Basic, Java, SML, Scheme, Lisp, PHP, Ruby, Pearl, Python, Haskell, Erlang, Javascript, Various Assembly languages, Cyclone, etc. That’s just the short subset that I happen to remember when writing this down.  There are way more languages on this list than I’ll ever manage to learn even passably well.

What I’d really like is a good set of programming sample problems to use to give hot-new-language-du-jour a run down and see if I should invest anymore time.  I feel like an upper limit on the total test should be about 12-24 hours (i.e. 2-3 Saturdays of part time work.)  The problems should ideally be a known problem (or an easily learned one) so that the implementation time and ease can be measured.  I’d like the list to be relatively general even if it means some problems can’t be solved in a particular language.  Ideally these would be problems that a reasonably skilled programmer could code in 30 minutes or less in his or her most familiar language.

An example problem set I’m conjuring out of thin air:

  • Read a “Hello World” message from a file and print it out (basics, file i/o)
  • Implement quicksort or mergesort  (functional style, recursion, iteration concepts)
  • Binary tree, add, delete, insert, and traverse
  • Consume a web service (REST, etc)
  • write and read from a database
  • Wire up a simple graphical UI
  • Create a math library (encapsulation, namespacing, built in libraries)
  • A test suit for one or more of the above projects (Reflection, etc)

It isn’t a complete list, and every language probably can’t easily handle even my short list.  What I’m interested in is coming up with a nice concise one, and any suggested problems people might have.  I think with a bit of revision I could develop a fairly good little test suite to figure out which languages are worth my time and investment to learn.   Some of the problems above could definitely get lumped into one bigger problem too.  Maybe something like “Use the flickr API to code a desktop application which pulls down all the photos in a selected photoset and write the data out into a mySQL database for local caching”

Anyone have any favorite programming problems they “goto” immediately when taking a new language out for a spin?