This version of Vestibule is read only. It represents an archive of the community effort to produce content for Ruby Manor 4.

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 over 7 years ago; latest suggestion over 7 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?


  • 2940bc7d4506f3e099e3dcc32a412b98 Jon Leighton suggests over 7 years ago

    This sounds great. I have nothing useful to add :)

  • B68ce3695bb8dc29b9f9cb0dc0b721a5 Murray Steele suggests over 7 years ago

    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?

  • 587332bf7906e6f46c05b3b46b885644 Hakan Ensari suggests over 7 years ago

    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 :)

    Great subject.

  • Be3698f145a80c1230fd667c87d0f0c8 Tom Stuart suggests over 7 years ago

    I usually see these crop up as enhancements on, e.g. the recent proposal of Regexp#to_proc.

  • The proposal author responds over 7 years ago

    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 still has it.

  • A8486651a974d7d9ecc35d25de96c7ee Chris Lowis suggests over 7 years ago

    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!

  • 35773545c3bb885b42cc24ccc0d1c666 ntlk suggests over 7 years ago

    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?

  • The proposal author responds over 7 years ago

    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.

  • A4302173ff74b86afabce753c1181e4b Levent Ali @lebreeze suggests over 7 years ago

    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.

  • B68ce3695bb8dc29b9f9cb0dc0b721a5 Murray Steele suggests over 7 years ago

    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 and we'd still be struggling along with rubyforge?

  • 7abc37c95590b1b29400e0bddfff9156 Graham Ashton suggests over 7 years ago

    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…

  • Acd62030df551952268e84c8fff26a5b James Adam suggests over 7 years ago

    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...

  • C1f7bc8064161e7408ef62d97bb636ac Tom Stuart suggests over 7 years ago

    Extremely interested in this. I have no suggestions to offer, but I just wanted to register interest and thank you for the proposal.