August 4th, 2004, 01:58 PM
anyone try coding with ruby yet? or have you looked at ruby-on-rails?
just looking for feedback before i delve too far.
August 4th, 2004, 03:08 PM
I have played around a little with Ruby, but have not tried rails.
Ruby is a nice language, like a cross between perl and smalltalk. It is very popular in the agile/pragmatic movement, and is promoted by the authors of The Pragmatic Programmer (a book I highly recommend). It has a similar feel to Python, and fills pretty much the same niche.
Here are what I feel are some of the most important differences (based on my experiences with an earlier version, so some of these points may have changed):
1) it does not feel as mature and professional as Python - for example the documentation is far more patchy, and some of it has a definite "japanenglish" feel.
2) Similarly, there is not the same breadth of libraries that Python has.
3) it is very much unix-centric. While there is a good Windows port the language is very unix oriented, so windows programmers may feel like second class citizens. Python feels much more platform neutral (I believe the early versions were developed on a Mac).
4) It is significantly slower than Python, although this may have improved in more recent versions.
5) It uses a lot of the Perl context-dependent shortcuts, which can make the code much shorter but also less readable. Perl fans may see this as a big plus.
6) It uses Smalltalk-like code blocks. This is a huge plus, and something I would really like to see in Python. Generators go part of the way to providing this functionality, but still leave a lot to be desired. It is worth learning Ruby just for this.
Overall, if Python did not exist I would definitely be programming in Ruby. However at the moment I feel it does not offer enough to tempt me to switch.
Dave - The Developers' Coach
August 4th, 2004, 03:28 PM
i am always fighting that internal battle between learning something new and just getting some damn work done.
this round, work wins (but I'll be back!!!, says learning)