5 ms·
As a Rubyist it also seemed strange to me. As soon as Ruby 1.9 became stable, it was embraced by the community fairly quickly. Ruby 2.0 has only been out for a
by FooBarWidget 14y ago
As a Rubyist it also seemed strange to me. As soon as Ruby 1.9 became stable, it was embraced by the community fairly quickly. Ruby 2.0 has only been out for a month and there are already projects that require 2.0. In contrast, Python 3 adoption still isn't finished, and Python 3 has been around for several years longer than Ruby 1.9.
I guess that the incompatible changes in Python 3 don't really help. Ruby 1.9 introduced incompatibilities but they were fairly minor and easy to resolve. The biggest incompatibility was probably the introduction of string encodings. Python 3 introduced a stricter string encoding system and changed syntax in some ways. Some of the syntax changes make it very difficult to write code that is compatible with 2.6, 2.7 and 3.0.
- takluyver 14y agoI've heard before that the Ruby community accepts new stuff much quicker than Python. You can make an argument for either attitude being more healthy. Part of it is because Python has become a core part of many Linux distributions, so it was tied to release cycles lasting years. Until quite recently, many packages were supporting Python 2.4, superseded in 2006, so they could be used on RHEL 5 servers. It's actually fairly easy to write code that works with 2.6+ and 3.x, although you do still have to pay attention to it. Supporting 2.5 or below as well makes it rather harder.
- vidarh 14y agoI know several pieces of production code that are still on Ruby 1.8.x. 1.9.x was adopted fairly quickly in some very vocal subsets of the Ruby community, but despite the fact that the incompatibilities are fairly small there are still people that haven't made the migration. Personally I still run 1.8.x several places too, not because I have any particular reason to, but because I haven't had any particular reason to upgrade - not a single gem I depend on for my hobby projects require 1.9.x.
- damncabbage 14y agoOne big reason for moving to 1.9 is that 1.8 is hitting EOL in June[1]; this means no further security patches either. (The plan for this was originally announced[2] in 2011.) 1. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/47201 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/4... 2. http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/ http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/
- vidarh 14y agoTrue, for people running Rails etc. on it. Said systems I know of aren't public facing and don't process user provided data... Not everyone uses Ruby for web apps.
- PommeDeTerre 14y agoSome of this may have to do with the general differences in attitude we often see between Ruby and Python developers. In my experience, Python developers put much more emphasis on creating systems that are correct, secure, robust and reliable. Part of this involves thinking through any changes thoroughly, and being somewhat conservative in the adoption of new technologies and techniques. The Ruby community, on the other hand, generally places much less emphasis on such factors. They're often much more willing to use newer software, even if it means the stability, correctness and security of the software systems they're building is decreased. So it doesn't surprise me at all that Ruby developers would rush to a new version, while Python developers take a slower approach involving more thought and care.
- aeonsky 14y agoLol, I don't do Python or Ruby, but... biased much?
- RegEx 14y agoRuby != Rails, but we hardly here about Ruby without Rails, and Rails does have this reputation.
- PommeDeTerre 14y agoNot at all. Python and Ruby are just two tools among many that I've used at one point or another in my career. Besides, this isn't an issue with the tools themselves, but with the developers who use them. There are generally very significant differences in attitude between those in the Python camp and those in the Ruby camp.
- wisty 14y agoThe next version of Django (Python's largest web framework) will experimentally support Python 3.0 next release. They did so because maintaining two branches would be a pain, and they didn't want to dump their existing community. Not too long ago, matplotlib (the plotting library) didn't have ports for some versions. They were slow to port because they were waiting for scipy and numpy. Anything which deals heavily in string processing needs a major re-write. Libraries were waiting for other libraries, which where waiting for other libraries to be ported. If Rails didn't support Ruby 1.9, I'd imagine the migration would have been slower.
- njharman 14y agoThere's huge difference between a point release 2.6 to 2.7 and full release 1.9 to 2.0 Most of Python's features are carefully crafted to not cause compatibility issues. 3.x is the major exception in many, many years.