RailsConf 2016
Turbolinks 5: I Can't Believe It's Not Native!

Turbolinks 5: I Can't Believe It's Not Native!

by Sam Stephenson

In the video "Turbolinks 5: I Can't Believe It's Not Native!" presented by Sam Stephenson at RailsConf 2016, the focus is on how Turbolinks 5 can significantly enhance the efficiency of web application development using Rails. • The speaker begins with a brief introduction about his background, including his contributions to open source projects and his work with Basecamp. • He shares his experience of leading the development of Basecamp 3, which was built in just 18 months on multiple platforms with a small team. • Turbolinks 5 served as a crucial tool in achieving this rapid development across five platforms—web and native applications for both Android and iOS. • Stephenson addresses common misconceptions about Turbolinks, often seen as a feature that needs to be turned off in new projects due to its perceived complexities and issues with jQuery. • The presentation discusses the evolution of web development since the introduction of Rails, contrasting it with more cumbersome options available before its advent, such as J2EE and PHP. • By explaining the benefits of Turbolinks 5, he aims to illustrate larger philosophies about streamlined web development. • Stephenson concludes that Turbolinks 5 is not just a tool but promotes a mindset that can lead to more efficient and effective web applications, encouraging developers to embrace it fully for better project outcomes.

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