The ‘meet cute’
The year was 1999 (or 2000, Jason isn’t quite sure about that) when Jason Fried, the co-founder of 37signals, a web design company based in Chicago, asked for help on an online blog. He was working on a project and was using PHP, when he got stuck. And who out of all people would volunteer to help, but a young student from Denmark named David Heinemeier Hansson?
David had been following 37signals for a couple of years when he stumbled upon Jason’s cry for help. So, when he saw Jason’s question he thought ‘Hey, I know the answer to this’ and rushed to reply and help out with his problem.
After asking to see the codebase of the project (Single File), David told Jason that the code ‘sucks’, adding ‘we should start over, let me do this for you’. And that’s how the relationship between DHH and Jason Fried first started. A relationship that continues to this day. ‘It was a perfect partnership from the beginning,’ Jason Fried remembers.
DHH comes up with Rails
DHH remembers his first brush with programming at the age of 6 years old, his first disappointments, and the time programming really ‘clicked’ for him. The year was 1999, and David was working on a gaming website using PHP when he started feeling more comfortable with programming. A year later he was giving advice to Jason Fried.
After working on a number of projects together, Jason and David finally met in person in Chicago. At the time, David was still a student in Copenhagen and didn’t ask for money for his services, all he asked for was laptops and equipment.
Since all their project communication happened via email, they wanted to create a project management tool that would help them manage all these projects. So, Jason hired David to write the backend code for Basecamp (a project management software that allows you to do everything in one platform).
In 2003, DHH had just started reading about Ruby. For him, the most interesting part was that it didn’t look like any other programming language he’d seen before. ‘It looked like pseudocode’, David says. He pitched Ruby to Jason and then started working on Basecamp using Ruby.
Ruby ‘clicked’ for David. What he loved about Ruby was the immediacy of PHP together with a sophisticated object-oriented programming language. Over the next 6-7 months and while he was working on Basecamp, he extracted Rails. David says that ‘tools spilled out’ of the project, but that originally, there was no thought to release it to the world. He worked on it from the summer of 2003 until 2004 and then spent an extra six months polishing things up before releasing it.
Creating something unique and putting it out for the world to see can be very stressful. DHH remembers how much pushback he received when he first brought Rails to the world. For the thousands of contributions that were greatly appreciated and implemented, there was also a big number of rejections.
Do you want to watch the Ruby on Rails Documentary? Well, you can! Watch the documentary on YouTube.
The release of Ruby on Rails - Poking Java developers
The reception of Rails by the Ruby community was a rather warm and positive experience for David. But the same couldn’t be said about the reception from the rest of the programming world.
The year was 2004 when DHH went into full marketing mode and started spreading the word in a rather loud way. He made a lot of controversial comparisons between Java implementations of certain problems and the Rails implementations of the same problems and definitely shook the Java community to its core.
As expected, this approach gained a lot of followers and a lot of critics.
The Ruby on Rails community
The 2004 Ruby International Conference, is where Jamis Buck saw David for the first time. DHH got up and started speaking about why he wrote Rails, explaining why Ruby on Rails is all about giving programmers a ‘better experience’ and why people should give it a chance. For Jamis, it was David’s charisma and passion that got him excited about Rails.
Back then the Rails ‘core team’ was just a group of people who sent DHH the most patches for RoR. These people became part of an inner circle that gained access to the codebase of Rails. And amongst those people there was Jamis Buck. He ended up being the first programmer David hired at 37signals.
Jeremy Daer was part of the Ruby community for a while when DHH sent a message to the RubyTalk mailing list saying he had a plan to develop Ruby. ‘It was a provocation’, Jeremy remembers, and it sent a jolt throughout the entire Ruby community.
The core team
What did the newly-founded Rails community look like? And how did the Rails core team look after the first year of its release?
In 2004, Ruby was really having a moment. And Tobias Lütke paid attention. He wanted to build a company from scratch and was thinking about using Ruby. That’s how he first learned about Rails. Soon after, he contacted David and became part of the core team. According to Tobias, David’s work with Rails inspired him, it helped him discover what else is out there and gave him the ‘configuration of his life’ by becoming an entrepreneur.
When the time came to discuss open source, David, Jamis, Jeremy, and Tobias alongside a team of early Rails committers started debating whether Rails should be an open source framework or whether companies would have to pay for it. But for DHH, that was never even a question. Open source was essential to Ruby on Rails.
But will it scale?
One of the big criticisms in the early days of Rails was that ‘Rails can’t scale’. For David, that was more of a fud than an actual technical question.
Scalability became the ‘mantra’ of most Rails critics. How did the core team and DHH react then?
For Tobias Lütke, there was never a question of scalability. His e-commerce giant, Shopify, is the proof of just that. Shopify’s platform (which is built on Ruby on Rails) accounts for about 10% of the global e-commerce software market and has a huge codebase.
Key moments in the development of Rails
For Jeremy, Rails 1.0 was an important moment. But then, every new release was another maturity chip.
Rails 1.2 was a very stable early release that showed people what Rails could really become. And then in December 2007, the team released Rails 2.0. This release brought cookie-based sessions and named scopes.
By 2009 and Rails 2.3, the framework had everything a developer would need to build ‘small-scale, large-scale apps, and everything in between’.
After 2.3 ‘our toolbox was full’, says Jeremy. Rails developers had everything they needed, and then, a new kid dropped on the block. Merb came into the programming world as a young Ruby framework that challenged Rails.
‘Merb showed as another path forward’, Jeremy admits. Evaluating and appreciating all that Merb had to offer was the first step. Seeing an opportunity, DHH decided to embrace it instead of fighting it. That’s how the Merb and Rails core teams talked and decided to merge together!
‘Have frameworks ever merged together? That (must be a first), that’s a singular story too’, Tobias ads.
One thing everyone agrees on: ‘It’s been the experience of a lifetime’. Jamis, Jeremy, Tobias, and everyone else who worked on Rails in its early days came out as a changed developer.
‘Rails really allows you to go from Hello World to IPO’, says David. For him, the community and the codebase have never been in a better place than they are today.
Ruby on Rails works because it gives people, not seasoned programmers, but people starting out in programming, the opportunity to build something. It helps them get started.
‘I love that part about Ruby on Rails, I love the diversity of the people who have been able to build a career in programming because of this framework that we’ve created’
David Heinemeier Hansson: Ruby on Rails creator
Jamis Buck: programmer, former Rails core team member
Jeremy Daer: programmer, Rails core team member
Tobias Lütke: former Rails core team member, co-founder & CEO of Shopify
Jason Fried: co-founder and CEO of 37signals