Yesterday I was talking to someone who asked me how I went about picking up a new language (we were talking specifically about ColdFusion). I’ve never done anything with ColdFusion but naturally I am aware of it both in the sense of a Programming Language and of friends doing dangerous free energy experiments…
So I replied that the first thing I would do would be to find a decent book, read through it, then start working through a few tutorials to get my hands dirty. So far so good, but this got me thinking the trouble with tutorials (both on the web and bound and printed on paper) is that they tell you the easy stuff. They rarely tell you the stuff you need to know, they skirt over and avoid difficult areas, areas where a particular language gets a little lumpy.
Now all languages have a particular slant, an underlying ideology if you will. I suppose that this partly to do with the constraints in which it is designed to operate and partly to do with the design philosophy of the original authors of that language.
Clearly languages also evolve over time, take PHP(the ubiquitous embedded scripting langauge which I am currently most familiar with), it started off as a set of scripts written by Rasmus Lerdorf for his own website, it was then taken up by a pair of Israeli programmers Zeev Suraski and Andi Gutmans. It has evolved over time from something small and handy into something complex and powerful, changing direction and picking up things like Object Orientation along the way.
How about Ruby…
Ruby is a language of careful balance. Its creator, Yukihiro “matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
He has often said that he is “trying to make Ruby natural, not simple,” in a way that mirrors life.
If that isn’t a staement of intent, I don’t know what is. Or Flash, once upon a time, a simple animation tool now… well now it simply is (everywhere).
I suppose when I started writing this, the point that I wanted to make was two-fold:
- Good books are hard to find.
- Everybody needs to find a way of working that suits them.