I've been thinking for a while to switch to Python or Ruby as my primary programming language. I don't seem to be alone in the quest to adopt a new language. Of course the languages don't have to be used exlusivly, but it would be nice to have the main focus in one candidate. Here are some of the most important criterias:
Regarding the first criteria, it has been pointed out in quite a lot of posts that Ruby lack UNICODE support. But that seems to have been dealt with lately as I find a UNICODE module available at rubyforge. When it comes to maintainability of code that is more of a comparison of present techniques that I use today, like Perl/PHP, with either Python or Ruby. Some of you have perhaps already read the morality tale of Perl versus Python.
For both languages there exists a handful of IDE:s. For example for Python there are the free ones like SPE and the Eclipse plugin PyDev and the commercial alternatives TruStudio (based on Eclipse), WindIDE and Komodo. For Ruby users there are free IDE:s like Mondrian IDE, RDT (Eclipse plugin), FreeRide. On the commercial side there is a plugin to Visual Studio users called Ruby in steel.
For build support and automation SCons, Paste, buildbot, Sysyphus and Ant can be used with Python and Apache Gump can be used for continous integration. Ruby shines here with Rake as the tool for automating tasks. There are other though, such as Ruby build bot. Then there are PyDoc and RDoc for generating documentation for either Python or Ruby code.
The fourth point, performance, has been a matter of discussion especially for the Ruby language. According to the Computer Language Shootout Benchmarks Ruby ranked second from the last place. Not very promising but the light in the tunnel might be YAVR. Both Python and Ruby seem to have thriving communities.
As Ruby is the new kid on the block I feel that the spotlight is for the moment placed more upon Ruby than Python. Web frameworks naturally exists for Ruby, it's Rails. Python does not have the same obvious choice. Instead there is a variety of frameworks; Django and TurboGears are perhaps the most well known.
Python has a lot of libraries available. Of course this has to do with its long history, but the Ruby developers are very active in producing new features. Regarding the cross platform support both languages support a plethora of operating systems, well enough to suit my needs.
Regarding the security issues that may arise, I believe they are less likely to surface the longer a product has been put to test by a large group of users. Python has been around for quite a while a the worst security flaws might have been detected by now. With newly developed modules and servers there is of course that new errors will show up. Ruby, as a quite recent language to emerge, the software has not undergone test under same length of time, but on the other hand the community seems very active and by its very size the most compelling bugs have perhaps been discovered.
At the moment I'm leaning towards Python, but Ruby is very tempting.
Comments
Post new comment