It must have been the influence of a few brilliant pythonist friends (particularly Lawrence and Valentino), but over the last few weeks I’ve been dusting off my Python skills.
While in my opinion it’s not as elegant as Ruby in terms of language design, Python has better implementation (it’s faster and its libraries are usually better). After being exposed to the brilliance of Ruby for such a long time, I was expecting a different reaction, but writing Python code again turns out to be a pleasurable experience. If you are shopping for programming languages, I highly suggest learning both Python and Ruby. Python documentation is excellent as well, with the tutorial and Dive into Python being two great starting points.
Python has a few nice web frameworks, but I’ve fallen in love for Django. This is an amazing framework similar to Rails, but with a few different design principles. The differences between the frameworks are mainly due to the fact that they were born in different environments (Django was developed as part of a newspaper online, while Rails grew out of Basecamp). The Web has plenty of comparison between the two, so I won’t debate the usual flames here. I’ll simply state that I like what I’m seeing and that the developers clearly know their stuff very well.
A few things that I particularly like:
On the other hand, Ruby’s syntax and Rails’ magic make the code more readable, but Django/Python code looks pretty good anyways, so it’s not such a big concern.
Speaking of programming languages, lately I’ve shown quite an interest in Haskell and Erlang. With these we can really speak of paradigm shifts, but time is a constraint therefore I’ve only spent enough time to master the basics of Haskell, and enough to whet my appetite with Erlang. At least for the moment, I doubt I will have a chance to go too in depth. Nevertheless I highly suggest them as well, at least to those who have already programming experience and are not afraid to take on new challenges.
For the moment I’ll focus on Ruby on Rails and Django.
If you haven’t done it yet, give Django a shot, following this nice tutorial.