Friday, September 19, 2008

Another Segment of the John Walker Interview

Kean Walmsley has posted part 2 of a 4-part interview with Autodesk co-founder John Walker. This one dives a bit deeper into the reasons behind, the and history of, extending AutoCAD with a programmable interface. I couldn't agree more with John's comments on programming language advantages and the references to things having been done before and simply re-discovered. How true!

I've always preferred LISP over other programming languages. It's just a fun language to work with and arguably one of the most flexible to work with. What other languages allow you, no, compel you, to develop a program that can reprogram itself at runtime? I'm not talking about conditional branching, but actual, true dynamic self-definition. Code that writes itself as needed. If you have ever worked with LISP for more than a few months you know what I'm talking about. Combining (defun) with (mapcar), (lambda) and (apply) and a pinch of recursion, and BOOM you have some really incredible stuff to leverage.

I was learning LISP, and XLISP while in college, but AutoLISP really injected me with a dose of enthusiasm because it was the first time I was able to combine raw programming with graphical output. At the same time, I was having to develop projects at school in C++ and Java, but those felt like a dull chore. Employee database tables with "employee" objects and class templates. Objects are definitely cool, but LISP is cooler (to me anyway). The list paradigm sort of compares to working with nothing but class templates, but with less effort and constraint. Oh well. There's nothing for a LISP programmer around here anymore. Even my old book fell into obscurity, but hey, PHP is cool (and still free), as are true scripting tools like VBscript, and KixTart. PowerShell to me feels like C# (translation: "work", not "fun"). Maybe when it matures and becomes more pervasive I will see it differently. But right now, you can't use it to do login scripts or web development as easy as you can with VBscript (still the crux of ASP) or KixTart, or even BAT/CMD. It's definitely more powerful, but comes with a complexity price tag.

I digressed horribly here. Sorry. :(

No comments: