2012-02-09

Learn a new programming language (pt. 2)

Remember my resolution to learn a new programming language?

My cadence has been one problem a week, one language a day. In the last six weeks I've solved the first six Euler problems in Objective-C, JavaScript and Clojure but also in Scala, Python and C#.



And did my brain expand? Yes! My perspective on how to write and think about code has most definitely broadened. In short I've:

  • learned neat things about the prototypical way JS works... be it with lots of trial and error, writing my code line by line while continuously hitting the F5 key;
  • fell in love with Clojure;
  • consequently got super interested in functional programming anywhere;
  • started appreciating the cleanness and expressiveness of Python... which I previously thought of as yet another scripting language;
  • discovered that between Scala on the one hand, and libraries like Functional Java or LambdaJ on the other there's a lot of C# envy on the JVM;
  • grew happy when I realized how easy it is to build an iPhone app... I basically solved the problems in C, which is a subset of Objective-C, and put together the UI with nothing but drag and drop in the XCode editor.
  • grew sad when I found out that unless I jailbreak the device it'll cost me $99 in developer licensing fees to run my app on my own phone;
  • felt most disappointed by Scala... so powerful and versatile, but the combination of a steep language learning curve, no IDE support worth mentioning and a few lines of code compiling slower than the Linux kernel on an chip from the 80's made me lose interest quickly.

Expect another post soon where I argument for each of the six problems which of the six languages allows for the most elegant solution...

1 opmerking:

Guido zei

Didn't you like the intellij plugin for scala?