Language Lessons

Joe’s Jelly

…it’s a new year now and I’m looking for a new language. So what do I learn?

Smalltalk has been recommended but I think I may have already learned some of it’s most important lessons through Ruby.

From chatting to colleagues, I’ve narrowed the list down to:

  • LISP (with CLOS and MOP)
  • Scheme
  • Haskall
  • Self

So, which one should it be? How will they change the way I think? What will you be learning this year?

Last year I looked at:

Python, Ruby, Lisp, Scheme and Haskell. I bought books about 2 of them. I actually ended up learning Perl. Which, if you’re a zealot, means you learned the best bits of all of them. Not my place to comment on that though. I also dabbled a bit in Smalltalk, to the extent I can now read it, if not yet code fluently in it.

From your list, Joe, I’d say go for Scheme if you feel like exploring just how much can be done with just lists and heaps of recursion. Or try Haskell for some truly functional coding. Both paradigms are significantly differerent from (ahem) run-of-the-mill OO development.

My current thoughts for this year are that I want to try Ruby or Haskell or something truly off the wall like OCAML or Erlang.

I’ll probably end up learning Python as I’ve started getting into Marathon Man, which uses Jython to script its tests. I find learning a new language without a context to apply it to somewhat dry and rather unfulfilling. Its similar to how much more quickly you learn a foreign tongue when you are in that country than you do from books and lessons.

Cold showers considered harmful

Went through the usual morning ritual of turning on the shower and sticking my hand in the stream to check the temperature, as we all do. In my case of course, it was in the forlorn hope that the water in the cold pipe had somehow been mystically heated to the perfect showering temperature, and was not, in fact, freezing. Still have no heating system. Probably won’t have next week either.

I’d like to report that cold showers are actually quite invigorating, and remark on how quickly I got used to it, but who would I be kidding? Its interesting how things that were luxury items not 50 years ago are now considered essential. How many times have you said “I can’t function without coffee” or something similar? Its just not true. Take it from someone whose entire body is numb with cold.

Also, the contortions promoted by the cold water, namely trying to wash one bit of myself at a time while keeping the rest of my body out of the flow had the effect, this morning, of causing my feet to slide out from under me towards the front of the bath, toppling me backwards. With surprising presence of mind, or a simple desire to see my own demise approaching, I managed to twist around mid-fall so my hands and arms hit the edge of the bath, and not my head. On balance, a positive result, ie. I am conscious and writing this with only minor bruises.

Have a nice day.

A few of my favourite things

A quick-reference list of some of the tools I am using or plan to investigate further.

Combined price: zero. Combined worth: priceless.

Open Source Bonanza

Was graciously given permission by my current (for the next 2 days) employer to open-source some utility stuff I’d written while there. Expect the following imminently, pending some minor cleanup:-

  • TestGenerator – recursively scans all java source code in a package and generates an AllTests TestSuite class. Simple, but useful.
  • JScaffold (working title) – Initially developed as a means to mock up a servlet container for testing servlets, but generally useful anywhere hard-to-create interfaces (such as HttpServletRequest) are used. Similar in design to EasyMock, but less concerned with assertions about how the mock objects are called, and more with faking up a convincing environment to persuade servlets to render their output into an easy to handle object like a ByteArrayOutputStream or String which can then be checked using tools like Jakarta Regexp. Useful for high-level testing.