I've only been programming for < 10 years now. Perl was the first language I learned, and I was taught how to write sloppy, inefficient, illegible programs. Later on in school I learned Java, C, Scheme, etc. I really enjoyed learning different languages and playing with their different strengths. I really liked Scheme -- I read all of Paul Graham's essays
and got his book, On Lisp
(although I never got around to reading it). I eventually got back to Perl, incorporating everything I had learned about style, etc.
I recently got interested in Lisp again and spent a solid week reading Practical Common Lisp
and getting my server setup with mod_lisp
. I was really enjoying the power of macros (although I can only write simple ones), the style of the language and REPL. However, getting everything setup was extremely painful. More painful than anything I've ever done in Perl. Once I started actually writing an application, I found myself fighting with the language at every turn. Granted, I know this is because my mind hasn't been formed to work the way it needs to work in order to experience Lisp magic, but it was still very frustrating. The whole reason I delved into the language was:
- To build things quickly, and
- I just like the style
It had taken me such a long time to get the server setup, and now I was struggling just writing a simple application. In addition, I still didn't have everything working smoothly in regards to Hunchentoot starting automatically when the server boots up, handling multiple domains, etc.
At that point I was very frustrated and thought maybe there's some other language I should be looking at. I had played with Ruby on Rails before, and it was pretty neat. I just don't really like the Rails framework. It seems like there's a lot of overhead and you need to really dig deep to find out what's going on under the hood. I've also played with Python, which I liked. After playing with it more, I decided that I actually love Perl.
- I can get things done in Perl quickly and painlessly (relatively speaking).
- Perl has a great community of people willing to help with your problems.
- There are 6 kagillion well-documented modules on CPAN to make your life easier.
Although I use quite a few CPAN modules, I'm sure I've written my own code to accomplish a task that someone else has solved and put on CPAN (and most likely a more efficient version, as well). For instance, I learned to save databases as delimited text files. This is fine, I think, for small databases. However, using Class::DBI
has made my life SO much easier.
I'm so grateful for the monastery, the monks, and the time they spend doing such great things as writing tutorials
There really isn't any point to this rant. Maybe I'll find this in a couple years when I feel like I need to switch to another language, and I'll not waste my time.