Yehuda Katz is a member of the Ember.js, Ruby on Rails and jQuery Core Teams; his 9-to-5 home is at the startup he founded, Tilde Inc.. There he works on Skylight, the smart profiler for Rails, and does Ember.js consulting. He is best known for his open source work, which also includes Thor and Handlebars. He travels the world doing open source evangelism and web standards work.

Here’s to the Next 3 Years

I officially joined Engine Yard on January 1, 2008, about a week before we announced our Series A funding, becoming its twenty-second employee. I was Engine Yard’s very first “Engineering” hire, and I would spend the next year working on Ezra’s Merb project, finally releasing Merb 1.0 at MerbCamp that October.

When I joined Engine Yard, I had already been working on the jQuery project for a couple years, having started visualjquery.com at a time in jQuery’s history before jQuery had version numbers. I learned a lot from John Resig about building and motivating open source communities, and I did my first professional work writing jQuery in Action.

The Merb project was my first full-time open source work, and I met some of my earliest open source friends while working on it. When I first met Carl, he was working on a rewrite of the Merb router, the one part of Merb I was still scared to work on. I met Andy Delcambre, who now works on Engine Yard’s AppCloud, after he volunteered to help with Merb.

I met Loren Segal, well-known for the YARD documentation tool, while working to give Merb documentation I could be proud of. And I became the first Github user outside of Chris, PJ and Tom in order to get the Merb project on git. If you’re paying attention, that made me Github user nil.id, and was the source of some hilarious bugs.

In Hampton Catlin’s first Ruby survey in 2008, about one in eight respondents said that they preferred Merb, and by the end of the year, the Rails and Merb teams were coming to blows. During this same time, Engine Yard had taken on a Series B round of funding (this time for $15 million), and had grown from a small company of a couple dozen to a company pushing 100. We had Sales and Marketing departments. We also had an Engineering department, which had spent a large part of the year on our first fully automated product, Engine Yard Solo.

On a personal level, I started getting heavily involved in Open Source other than Merb, especially DataMapper and Rubinius. I started speaking at conferences, starting with a talk on DataMapper at MountainWest RubyConf in 2008. Engine Yard also threw its first Hackfest at that event, an event we would repeat in 2009 and again in 2010. This event, and the work our great community marketing, Open Source and support teams would do over the next several years elevated Engine Yard’s reputation as a team of experts that would keep your app running no matter what.

As Engine Yard grew, a lot of people asked us why we were supporting Merb when so much of our business depended on the success of the Rails community. By late 2008, it was probably the most common question I got when speaking at conferences. In truth, the best I could tell was that Engine Yard was worried about the future of Rails, and wanted to make sure that Ruby remained successful. What we didn’t realize at the time was that the one full-time employee (me) that Engine Yard had on Merb was more than the total number of worldwide full-time developers on Rails. In short, Rails was a fully volunteer project, and that had something to do with some of the issues that drove people to Merb in the first place.

At the end of 2008, Tom Mornini, the CTO of Engine Yard, recognized that if we could join forces (and this was definitely a big if), we could help shore up Rails into the future. I remember the first time Tom asked me about it in the stairwell of our South Park office. I thought he was off the wall to even suggest it. After all, it didn’t seem like the teams could get along at all. But the Merb team had adopted so much of the Rails philosophy that at its core, the only question that remained was how aggressive the Rails project would get to clean things up.

In the years since Ezra first announced Merb, Rails had gotten thread-safe, Rack support, and some improvements to the internals. After hashing out the details (in some very contentious conversations), we decided to give it a try, announcing we would merge the projects on December 23, 2008. That announcement quite literally changed the trajectory of my life. In the almost two years since that announcement, I have worked harder than I have ever worked before, and am more proud of the work I have done than I have ever been before.

Perhaps more importantly, I have worked with some of the best open source developers in the business without whom Rails 3 would have been a pale shadow of itself. Including me, Rails 3 brought on eight new committers. The Rails 3 project did more than improve the quality of the codebase: it reinvigorated the community of developers actively contributing. And by moving toward a model that allowed Rails to have more dependencies, Rails became the center of a thriving Ruby community, where anyone can reuse the code that makes Rails tick for their non-Rails projects.

In the summer of 2009, José Valim became a Google Summer of Code student dedicated to rewriting the Rails generators so that users of DataMapper, RSpec, and Haml could use the standard Rails generators. A lot of people thought it was too optimistic to do in a summer, but José finished the job well before the end of the summer, giving him time to continue his contributions.

Around the same time, Mikel Lindsaar decided to write a ground-up mail implementation, releasing the imaginatively named mail gem in October 2009. This project, which involved writing a parser that could parse the gigabytes of mail in the Trec and Enron email databases, strained credulity, and would enable us to give ActionMailer the facelift it needed for Rails 3.0.

Santiago Pastorino showed up out of nowhere, with a level of pluck that is rarely seen in the Ruby community. Despite a noticeable language barrier, Santiago went from a warning fixer to a Rails committer. This month, he became an official member of the Rails core team. While working on Rails, I learned a lot from a lot of people, but Santiago’s raw determination and skill should stand out as an example to the Ruby community.

Everyone knows Aaron Patterson, and I was just as surprised as everyone else when he started the long, dedicated task of improving the performance of the Arel library. He already has quite the reputation in the Ruby community, and even has commit access to Ruby itself, so I’m personally gratified to work with him on Rails. If you haven’t yet watched it, watch his Worst Ideas Ever presentation from RubyConf last year. Be prepared to laugh.

Xavier Noria has been a one-man documentation machine, helping to grow and maintain the Rails guides, and constantly reminds everyone that documentation is just as essential to the codebase as tests. Without him, Rails 3 might have been great internally, but nobody would know it. Documentation folks often get little love in open source projects, but to me, the work Xavier does is key to our success.

More recently, I’ve been extremely impressed by Piotr Sarnacki’s work (for Ruby Summer of Code) on finally delivering on the promise of truly mountable engines. His work is already merged into Rails master, and will ship with Rails 3.1. As with the rest of the guys I’ve talked about, he took on a pretty complicated and entangled task, and managed to get more done in less time than people expected. Keep an eye on him!

In short, the Rails 3 project was about more than code; it was about reshaping the Rails community. I’m proud to have been a part of growing the Rails ecosystem, and humbled by the number of people who have worked so hard for so little.

Now that we released Rails 3, I have had an opportunity to think about what to do next. I could, of course, continue full-time work on Rails for Engine Yard, which has been a fantastic place to do Open Source for the past several years. I am still extremely interested in open web technologies, and want to do my part to help the open web succeed. Having robust, mature server side frameworks that are easy for anyone to use is certainly one large piece of the puzzle, and I’ve really enjoyed helping to bring the core of Rails up to date with modern web technologies.

But as Avi Bryant pointed out last year at DjangoCon, the technology of the open web is shifting toward the client side. That doesn’t change the need for robust, mature server-side frameworks. Even the richest web applications get and sync their data with servers, mostly over the HTTP protocol. And although a lot of people have opined that rich clients can simply wire directly into something like CouchDB or MongoDB, applications with rich clients tend to have the same kinds of complex needs (like authorization) as more tranditional document-based applications have. I see Rails remaining an excellent server-side solution even as clients become richer over the next few years.

There’s still a lot to do for Rails in the future, and I want to be a part of that. On the other hand, the field of rich client development is just getting starting, with new mobile devices like the iPhone, Android and iPad giving us an almost blank canvas to work on. Unfortunately, a lot of the really big bets in this space are on selling licenses to either entire libraries or the development tools needed to efficiently work with the tools.

What the open web needs is a robust, easy to use framework with development tools that are trivial to get started with and awesome to work with. And both the library and the developer tools need to be offered for free, like Rails or jQuery. Since 2008, I have poured my soul into helping to build an amazing open source Ruby web framework and the ecosystem that powers it. Now, I want to bring that same energy and enthusiasm to building great tools that leverage the power of the modern open web and a free and open source community around them.

That’s why I was so excited when I saw that Charles Jolley, who worked on Apple’s Mobile Me product, announced that he was leaving Apple to form a new company dedicated to those same principles. Charles had helped build Mobile Me on SproutCore, a free and open source framework, and had managed to make sure that Apple continued to contribute back to the open source project under the MIT license.

In his blog post announcing that he was leaving Apple, Charles said “SproutCore is now and will always be totally free and open source. I think this business of charging for a commercial license is not an effective way to grow a project. Sure you make a little cash, but at what expense to the community? My goal is to make SproutCore and all of the developer tools that surround it totally free to everyone. All I ask is that you participate in the community somehow to make things a little better for those who come after you.”

This philosophy closely mirrored my thinking on the future of client-side development, and seeing a mature client-side framework open a permissive open source philosophy really excited me. Since the beginning of 2010, I was starting to think that if I wanted a permissively licensed client-side toolkit, I was going to have to build it and its community myself. I already knew about SproutCore–early versions of its build tools were built on Merb, and had met Charles a few times. After reading his blog post, I emailed him to find out what he was thinking about doing and he told me about his plans for SproutCore.

The SproutCore library itself, today, is definitely recovering from having been developed almost exclusively inside Apple. It comes with a number of amazing low-level primitives, and you can build a large, complex application on it. That said, it never had a big enough new user community to get a very friendly public API. Thankfully, it’s much, much easier to build a great public API than it is to build the core of a web application toolkit. Starting this week, I will be joining Charles’ company, Strobe, and will get right to work on the next generation of the SproutCore tools.

I have to say, I’m excited about what comes next.

Postscript

Because you’re probably wondering, I will still be active in the Rails community, and will be doing work for Engine Yard on Rails 3.1. I plan to use Rails 3 and Engine Yard for the server-side elements of the projects I will be doing, and really want the new Rails 3.1 features I talked about at Windy City Rails. I will also be helping Engine Yard start a new Technical Advisory Board, which will help provide community feedback for its cloud products, and guidance about what open source efforts could use the Engine Yard bump. I forsee being part of both the Rails and Engine Yard family for years to come.

76 Responses to “Here’s to the Next 3 Years”

Good luck my friend!!!

I wish there was an ‘emoticon’ for thunderous applause. This would be the perfect place to use it.

Thanks for everything and best of luck!

Thanks for all that you’ve contributed to open source, Yehuda!

I think you’re going exactly into the right direction. Wishing you a lot of fun there!

You know, I tweeted “good luck” to you, but, in hindsight, I retract that. You do not need luck; you lead by example – and are kind enough to give back and educate with great knowledge, experience, and patience. Thanks for all of the hard work making my life and the lives of many others more fun and exciting. I can’t wait to see what else you have in store for us. – Frank

Congrats and good luck! I’m looking forward to being amazed by your contributions, again.

Good luck! I can’t wait to see the awesome stuff you’ll be building!

Yehuda, thanks for all your work on Rails over the past couple of years. Client-side frameworks is an exciting place to be right now and even more so into future. I look forward to seeing the fruits of your labor with SproutCore!

Congrats dude. You’ve obviously done a ton for both the Rails/Merb and jQuery communities and I’ll be excited to see what comes out of your next effort :). Best of luck!

Like I said on freenode.. congrats. I’m looking forward to the amazing work you’ll be doing with SproutCore.

Yay! This is great news for SproutCore!

Thanks and fare thee well Yehuda!

A lot has changed in the Ruby world since we first began talking, and you and Carl have been near the heart of much of the change. I know you’re not going anywhere particularly, but reflecting back on all that’s happened is interesting, given how far we’ve collectively come!

I hope that SproutCore benefits as much from your attentions as Ruby web frameworks have.

Good luck man,

-T

Congratulations! You’re quite right that SproutCore is “recovering” from being a primarily internal Apple tool. The core is strong though. Now that it’s free and people like yourself and Charles are championing it, SC’s future is looking very bright. If all goes well, I’ll be in there with you guys making some great stuff with it very soon.

Hey, it’s been quite an interesting 3-4 years. When was it… 2006 or 2007? I can’t remember…

I was in SF with Tom and Tem and others, I think it was the holiday season, and I was speaking with you on my cell about a job in Santa Barbara thru QHI. I think you were in Brooklyn.

Fast-forward thru years at Engine Yard, working on Merb, then Rails Core, etc, and now whatever the future holds.

Thanks for all the hard work, and good luck!

Congratulations, but you clearly don’t need any luck. Rails3 turned out better than most of us could have imagined, I can’t wait to see where this goes.

Great news! I have been dancing with sproutcore for quite some time. Thanks for all your contributions to Rails. Can’t wait what you’ll do to Sproutcore next!

Can’t wait to dig into a new version of SproutCore. I know you’re off to a bigger thing Yehuda. Thanks for giving so much to our community!

Congratulations on the move, Yehuda. Can’t wait to see what you do with SproutCore!

Congrats Yehuda!

I have always found you to be a talented, motivated, selfless and inspirational person – and wish you all the best with the new project… they are very lucky to have you on board!

Good luck!

Congrats and good luck!

I’m sure that we’ll see even more awesome open source stuff from you in the future.
Thank you :-)

You are a good friend and an inspiration! Wishing you the best success!!!

Thumbs up, Yehuda! I’m really looking forward to seeing what you can offer to the SproutCore project! :)

Congratulations Yehuda. I look forward to seeing what comes out of your new venture.

Hooray Yehuda!

You are an awesome inspiration for a generation of developers. I know you’ll do well where ever you go. Hopefully you don’t let Rails fall by the wayside. I have something for you, and since I believe I’ll be seeing you this week, I’ll make sure to give it you.

Congrats! Instead of just resting on your laurels from the great things you did with Rails 3, your first question was “What’s next?”. It’s great to see people who have a genuine interest and drive to improve the web and its developer communities, and not just getting famous.

Also, given what you’ve done in ultimately turning Merb into the next Rails, I’m now excited to see what will be happening with SproutCore in the coming future :)

- Loren

Good move. Keep up the good job

Good luck brother. You’ve been highly influential in my life and an ultimate inspiration.

Congratulations Yehuda! Wishing you all the very best!

Congrats Yehuda! I am very much eager on how thing going on SproutCore from now. It will also give me chance to observe carefully and learn from you!! I am really excited :)

Without you Rails 3.0 would not be were it is today. I am very grateful for that. May the force be with you!

Good luck!

Great move. I agree with you 100% about the future. Have you considered using Node.js? Javascript everywhere makes more sense. One could hypothetically run code on the server and/or optionally run the same code on the client if the client is rich enough. You could offload template processing, etc …

Good luck Yehuda, and thank you for your inspiration :)

awesome?
confirm!

Nice hear you are back on a JavaScript project!

Congrats!. I wish you all the best on the SproutCore project!

Wow, awesome. I can’t wait to see the progress.

I raise my glass to you Yehuda. Cheers! I wouldn’t be half the man I am today without you.

Congrats! looking forward to seeing what you do next!

Yehuda, Thanks for all you have done, not only at the code level, but in the community. Your presentation at RailsConf (2010), was really inspirational to me, and motivated me to make an effort to contribute to open source, speak at conferences, and just ‘give it a shot’.

Thanks for everything!

Congrats Yehuda! You’ve done awesome work in the past and I look forward to seeing what you will do in the future.

Great news. I’ve been plugged into the Sproutcore group for a number of months now, listening. I was pleasantly surprised just two days ago when I saw you posting there.

This is a huge endorsement to SC.

Major props on the 3 years at EY. Your passion and determination is inspiring. Wishing you much success at Strobe!

All the best, Yehuda! +1 for Sprout Core!

thank you so much for detailed explanation of what you do and future plans.

You have always done your best for Ruby Community. I am confident, you’ll carry on with that tradition, where ever you go. Congrats and best wishes for your futuristic vision.

Thanks for all the work you put into rails! I hope you will enjoy working on SproutCore.

These are great news for all web developers, having great frameworks for both client and server side will rock! :D

Fantastic news all around the horn! SproutCore has the tech chops, as seen by what comes out the other end of the sausage factory (mobile me etc). The developer ergonomics on the other hand…. need some help. I am passionate about developers and APIs, and when I think of someone who cares deeply about these things I think of you Yehuda. So, great news for all. :)

Saw your keynote at this years RailsConf and whow, how inspiring! I don’t know how you get so much awesome stuff done while the rest of us complains about “not having time”. Congtrats with the move and thanks for everything!

I’m really looking to see what you do at Strobe. Good luck thanks for everything you do. You’re a peach of a man.

Congratulations on your move, Yehuda — and thanks so much for your amazing contributions to the jQuery and Rails communities — and the countless people impacted by them. Best wishes for your new venture.

Leave a Reply

Archives

Categories

Meta