So over the past few months I have started to do some iPhone development. As I started reading up on how to write software for the iPhone I quickly figured out that I would need to ramp up on Objective C, which up until now I always thought of as another Object Oriented version of C (C with Objects) like C++. What I didn't realize was how far, under the hood it is from C++ and C. As I started playing around with it, I noticed that Methods were actually messages that were bound at run-time alla Smalltalk. This rekindled an old research interested I had in programming languages that dates back to Graduate school. I was always intrigued by languages with late binding or that were loosely typed. We studied LISP/Smalltalk to name a few. Of course, like many CS majors, when I entered the real world those languages were left behind for C/C++.
LISP folks will tell you that there is no language as powerful and expressive (I know very little about LISP, other than how to solve Towers of Hanoi. Paul Graham is a huge advocate for LISP, and developed ViaWeb back in the 90s using LISP (The entire ViaWeb product is written in LISP). He credits their utilization of LISP as a major reason they were able to rapidly add new features to their site. In his book Hackers and Painters he tells stories of their competition spending weeks/months working on some new enhancement to their web site then, then formally announcing the new feature.In most cases, within hours the VieWeb team would have that same feature available on their site. Again, Graham credits their utilization of LISP and the ability to make updates/enhancements on the live system.
Anyone have any thoughts/real world experience on these kinds of Languages ?
Subscribe to:
Post Comments (Atom)
3 comments:
I actually find Late Binding to be the most annoying feature of Lisp and Perl (and believe me, Perl has plenty of "annoying features" to go around). I want to know before I get two hours into my run that I misspelled a function name on line 482.
Yeah - I am discovering that little annoyance with Objective C. Especially when I am learning Cocoa and trying to implement delegate messages. You typo 'em, they just don't get called!
So Pat, You mention Lisp. What kinds of things do you use Lisp for ? Is it something you use for you day job, or just for your after hours R&D. Either way, I'm curious what kinds of problems you tackle with Lisp and why ?
Post a Comment