00:00:10.920
Hello, can everyone hear me?
00:00:17.840
Hi, I'm Sam Stephenson. You might know me from some of my open source contributions.
00:00:25.160
I work on a lot of projects, including RBN, Po, and Tricks. Most recently, I was one of the original Rails Core members.
00:00:30.599
Though I think nearly all of my code has been deleted or replaced by now, I hope I work for Basecamp.
00:00:41.520
Last year, we launched an all-new version of Basecamp called Basecamp 3. We created it in 18 months from the initial concept through dozens of designs, iterations, and changes.
00:00:53.520
It's a big app with over 200 screens, and we shipped it in 18 months on five different platforms simultaneously: desktop web browser, mobile web browser, an Android native client, an iOS native client, and email.
00:01:08.479
We did all this with a tiny team at Basecamp. We have six Rails developers, two Android developers, and two iOS developers. During that time, we also built three open source frameworks: Tricks, which is our Rich Text Editor; Action Cable, which I'm sure you're familiar with from Rails 5; and also Turbolinks 5.
00:01:35.000
This all sounds kind of unbelievable when I say it—that we managed to do all of this—but really, Turbolinks 5 was a secret weapon that led us to accomplish it.
00:01:54.600
Turbolinks 5 is an entirely new version of Turbolinks, and it's one of the banner features of Rails 5. It's what I'm here to talk about today.
00:02:10.039
So, how many of you are familiar with Turbolinks? Anyone? It's that thing you have to disable every time you start a new Rails project.
00:02:28.760
But seriously, it's also that thing that breaks all your jQuery plugins. Turbolinks is unfortunately misunderstood, and to understand it, you need some context.
00:02:48.760
I hope to provide that today because I believe it represents a philosophy of web development that deserves our attention.
00:03:03.799
I've been at Basecamp for ten and a half years now, which is a small eternity in tech years. Being at the same place for a decade has been really interesting.
00:03:19.319
I've had the opportunity to go deep on a lot of interesting problems and observe the effects play out over many years. Every once in a while, it can help to take a step back and look at where you've been and where you're going.
00:03:40.159
Things were really different when I started. Do you guys remember what web development was like before Rails? The only way to create real software was with J2EE. I found this diagram of 2004-era best practices—it's beautiful in its simplicity.
00:04:01.680
Then on the other end of the spectrum, you had PHP. But Rails came along and changed all of this for J2EE developers; it threw out all that ceremony and said, 'Hey look, this can be a lot simpler.'