Casual impressions of python and ruby
Andrew L Smith has an interesting post on python and ruby, Industry demands Python, not Ruby or Rails.
There are some interesting comments, especially by Python enthusiasts who can't see any reason for anyone to use Ruby when Python already exists. So I thought I would discuss my experiences choosing a new language last fall.
Let me preface this by saying that I have nothing against python -- it would be silly to, because I don't know the language (yet).
My recent professional background has been in c#/.Net because I've been developing apps that need both a Windows desktop and a web client, and .Net has fairly elegant solutions for that problem. Last fall, I got interested in a side project that involved developing a relatively straightforward (compared to what I'm used to) database-driven website with *nix as a preferred deployment platform. So I decided to pick a different platform to learn.
I have plenty of background in perl or java, but I was looking for something a little more straightforward for web development than java with all of its framework soup, and something a little more maintainable than perl can be as projects scale. I decided to cross these languages off my list early on, and the remaining ones I still wanted to consider were PHP, Python, and Ruby.
I'm not saying that the selection criteria I used were right in any absolute sense, but I think they may be illustrative. Anyway, these were my early impressions after doing a little bit of research on them:
PHP: trivially simple to develop bad, non-reusable code. Seems to require considerable proficiency to develop good object-oriented code.
Python: terrific language, maybe better than ruby. Multiple web application frameworks, none of which (at least my impression as of last fall) has the full force of the python community behind them.
Ruby: up and coming, still some loose ends. Pathologically simple to get started. Rails is not only the clear choice for application frameworks, it's the driving force for the language. Web development tutorials are all over the web. Designing good model view controller code is so simple that you would have to make an effort to avoid doing so.
Basically, I got about that far, picked Ruby, and stopped looking. Python has a large, enthusiastic base of users, and I'm sure it will continue to do well -- it just didn't seem like the simplest place to get started for a newcomer focused on web development. PHP for real developers frankly puzzles me, except for the fact that it may have been a better choice a few years ago.
Other than that I wasn't sure how to get quick-started for the web, I only have one negative impression that I have gathered about Python. Yes, Perl's pathological TMTOWTDI philosophy results in wildly unmaintainable code. But my early impression is that the Python community's determination that for any task there is at most one correct way to perform it and that way is objective correct -- frankly, that seems a little pathological in it's own right. Geez, relax. ;-)
I'm sure my previous paragraph will result in me being wildly flamed by any Python enthusists that happen past. Oh well.