I love programming!
I’ve played with lots and lots of programming languages during the past 15 years (chronologically, BASIC -> Pascal -> C -> C++ -> Scheme -> Smalltalk -> Java -> Haskell -> Javascript -> PHP -> Python -> Ruby -> Lisp). Notice that I’ve used the term played. For me, programming is a very fun activity and I actually enjoy it…
As you know, I am a teacher. I teach Computer Science i.e. problem solving using modeling and programming. Unfortunately, I am not really satisfied with the currently fashionable Java language which is used a lot now for introductory programming courses. Java is a relatively good professional language but it should not be used for teaching problem solving and programming. Joel Spolsky has written a great article where he demolishes the concept of JavaSchools:
“But JavaSchools also fail to train the brains of kids to be adept, agile, and flexible enough to do good software design (and I don’t mean OO “design”, where you spend countless hours rewriting your code to rejiggle your object hierarchy, or you fret about faux “problems” like has-a vs. is-a). You need training to think of things at multiple levels of abstraction simultaneously, and that kind of thinking is exactly what you need to design great software architecture.”
Eric Raymond, in his famous article How To Become A Hacker, revealed that every programmer should learn Lisp because of “the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.”
He recommends learning different types of languages because “they represent very different approaches to programming, and each will educate you in valuable ways.”
Paul Graham has written a convincing article on how to become a better than average programmer by using Lisp. He queries: “What’s so great about Lisp? And if Lisp is so great, why doesn’t everyone use it? These sound like rhetorical questions, but actually they have straightforward answers. Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available. And the reason everyone doesn’t use it is that programming languages are not merely technologies, but habits of mind as well, and nothing changes slower.”
My wish for 2006 is that more and more of my students at the University of Mauritius discover the real joys of problem solving and programming using nice languages like Smalltalk, Ruby and, especially, Lisp.
Happy New Year to you!
Image courtesy of Lisperati