Ten years that never happened
This proposal by <a href="/users/threedaymonk">Paul Battley</a> has been chosen by the community to be given at Ruby Manor 4.
updated about 5 years ago; latest suggestion about 5 years ago
“In November 2003, Rich Kilmer, Chad Fowler, David Black, Paul Brannan and Jim Weirch got together at a Ruby conference and started coding”, creating Rubygems. But what if they’d gone out for dinner or just had an early night instead? What would we be using to manage dependencies today? Something based on the RAA and setup.rb? RPA? Do Rubyists respect semantic versioning and backwards compatibility in this alternate world?
David Heinemeier Hansson extracted Rails from Basecamp in 2004. What if he’d decided to keep programming in PHP instead? Ruby might not be so popular, but what happened to the other web frameworks: Wee; Nitro; Ruby-WAF; Narf?
Without the Rails demo screencast, Ruby developers didn’t all rush out and buy Macs and TextMate. Is Ruby on Windows less unloved? Did enough Ruby developers pick Windows to spur the development of a first-class CLR Ruby implementation?
Also without Rails, YAML didn't really take off, and Rubyists didn't spend January 2013 lurching from one YAML-parsing vulnerability to the next.
Koichi Sasada announced YARV in January 2004 by posting version 0.0.0 as an LZH archive to the Japanese ruby-dev mailing list. In 2007, Ruby 1.9.0 was released, and YARV became Ruby. Without YARV, though, we’re still on Ruby 1.8, without the performance improvements of Ruby 1.9. In its place, did JRuby become the pre-eminent implementation? What are the implications of that?
Once upon a time, creating a new gem meant creating a Rubyforge project, waiting for the project to be approved, building the gem, and uploading it to the downloads page. Github made it easier by automatically building username-prefixed gems. Then Gemcutter came along and made publishing gems the straightforward, first-to-claim process that we have today. What if publishing gems were still a bit of a pain? Would there be less rewriting from scratch and more collaborating?
I’ll take you on a tour of a Ruby that never happened: the world as it was before Rubygems and Rails, and the alternatives that failed to thrive. Perhaps we’ll feel grateful. Perhaps we’ll mourn for a world that never happened. Either way, we might understand the current state of Ruby a bit better.
If you’re interested in this idea, I’d like your feedback and suggestions. What else has become the norm in the Ruby world that might have turned out differently? What do you think were the universe-bifurcating decisions that I’ve missed?
This sounds great. I have nothing useful to add :)
What if Merb and Rails hadn't merged? Rails 3 might have arrived sooner and with a bigger new feature set instead of (mostly) API changes. The upgrade path from Rails 2 to Rails 3 was painful and so loads of people still have apps on Rails 2.3 even now. What might merb 2 or 3 look like? What might Rails 4 or 5 look like without the influence of merb?
I probably should not write this, but I got into Ruby after reading Getting Real, so I can't help but ask what would have happened if they had not written that book :)
Chris: I'm pretty sure there have been, but I'm at a loss as to what they were. There was a website for proposing Ruby changes at one point. I wonder if archive.org still has it.
Are there some syntax changes or other changes to the language itself that Matz or others proposed that were eventually rejected? It'd be great to see some "what might have been" code!
This sounds really exciting. I've only come to Ruby circa Rails 3, so I haven't got much knowledge of the past. Are there things we could learn from that we've collectively forgotten?
I've added some notes about YARV and Gemcutter in response to Murray's suggestions, added setup.rb (thanks James), and added some explanatory links.
This sounds great!
I'd be curious to know what the world was like before 'the modern era' as well. I know a lot of people who have been using Ruby for a long time (relatively) but I don't know what got them hooked in the first place.
Everyone must have had some sort of introduction / incentive to learn.
Having used an alternative ruby web framework in the pre-rails days (narf) I'm definitely interested in your "what might have been" thoughts on a ruby without rails.
The thing that intrigues me most about this though is that people are still using RAA. This bit of business software was added in the middle of January, and a bunch of well known libraries still push updates there. What's going on there? Is there an element that is less "what might have been" and more "look what these other rubyists are doing instead"?
That said, don't feel like you have to ground this in reality. I'm more than happy to be taken on a speculative fiction / alternate history ride.
In response to your final paragraph: What YARV never dropped in 1.9? Without the speed improvements would we have stuck with MRI, or jumped en masse to jruby? Would the community then have used existing java libraries instead of writing our own gems? Would that mean we wouldn't have got the redo of rubygems.org and we'd still be struggling along with rubyforge?
I'm very interested in this too. In 2005/6 I was a Python developer who'd been playing with an early version of Rails. I lived in Emacs on a Debian-backed GNOME desktop, and had done for years.
I later saw the blog-in-15-minutes screencast and decided I had to try TextMate. That got me buying Macs. Rails has changed what I've worked on, but Macs have changed my day to day life ever since (I've no idea whether they've improved it on the whole).
As I recall, I was playing with Django and Rails before I switched to Mac, and before I started spending most of my time doing Ruby. There were no other serious contenders that I could see.
If it wasn't for Rails, might a lot of us now be using Python? How would that have affected us as developers? The languages are very similar, but the two communities have a different outlook on many things.
There are lots of ways this could go…
I think this is a very intriguing proposal -- my curiousity is definitely piqued!
One suggestion that might improve it for other people who've never known Ruby before Rubygems, Rake and Rails became very established, would be to mention some of "the alternatives that failed to thrive" - maybe things like RAA, setup.rb or whatever else thrived in the alternate universe that you plan to share with us...
Extremely interested in this. I have no suggestions to offer, but I just wanted to register interest and thank you for the proposal.