Less Condescension, please

I generally like the writing on lesscode.org but I have to take issue with the tone of History Repeats Itself. Mr Bunardzic is basically right about the fact that Java succeeded because it was simpler than C++ and that it looks like Ruby might succeed because it is simpler than Java but I really dislike the condescending attitude he has toward programmers stuck in static languages.

The last line of the post is, “The full fledged OO nature of Ruby, coupled with its dynamic nature, may prove to be too big of a challenge for the average application developer out there.” I think that Mr. Bunardzic both over-estimates the difficultly of dynamic OO languages and under-estimates the capabilities of the average programmer. Most programmer use static languages not because the are dumb and cannot handle the power of dynamic OO languages but rather because that’s what they were taught in university and it is what they can get paid to do.

I have trained several static language programmers (hi Mike and Navdeep) to use a dynamic, pure OO language in a previous job and I have yet to meet one that found it to be “too big of a challenge”. There is a learning curve and programmers who have only worked in static languages are not going to be dynamic language gurus overnight, but they are able to produce useful results in about the amount of time it takes to learn any language and its libraries. Probably even less because in a well designed dynamic language, like Ruby, there are a lot fewer mantras to remembered. (Imagine not having to mumble the same six lines of code plus comments over and over again just to get attribute accessors.)

So if you are a static language programmer thinking of trying out a dynamic language, fear not, you are up to the challenge. Dynamic languages are good because they require less mental effort to get the job done.