After watching several of Allison Randal’s videos yesterday (see Dynamism Clarified ), I started investigating Parrot. I was so impressed that I downloaded the latest version (2.0.0) and built it on my MacBook. I haven’t had time to do much more than start reading the documentation but I like what I see so far. I will probably play with Cardinal, an implementation of Ruby 1.9 in Parrot. I may see what kind of bench marks I can come up with.
I realized that my first several languages were all dynamic languages, i.e. Microsoft Basic (long before Visual Basic) and Forth. I always preferred dynamic languages because, in spite of whatever project I was working on for my employer, I was always intrigued by the prospect of artificial intelligence. My first static language was Pascal, quickly followed by C. I was going to say that I learned Lisp around this time but it took me a long time to really learn Lisp. I was able to write Lisp expressions in pretty short order but the whole process of building expressions up into programs that leveraged the unique strengths of Lisp took quite a while.
When I look back over my career it seems that I was always avidly studying dynamic languages. In fact, one of the reasons I was so enamored with Java was that it was more dynamic than C. When I discovered Java (the first day that Sun released the first public beta as a matter of fact) I immediately recognized it as a tool for convincing the static programming masses of the value of dynamism. Or as I put it at the time, it was a step in the right direction toward Lisp.
My current favorite language is Ruby, primarily because I can interface to more main stream software more easily with Ruby than just about any other platform. It is also sufficiently mature that I don’t worry much about it changing too drastically. I also share a lot of “opinions” about code with Ruby.