List

Looking Backward: Ten Years on Rails

Looking Backward: Ten Years on Rails

by Luke Francl

In the talk titled "Looking Backward: Ten Years on Rails", Luke Francl reflects on the profound impact of Ruby on Rails (Rails) on web development over the past decade. He draws a parallel between his experience as a programmer in 2004 and the advancements in technology and methodologies by 2014. Francl compares web development practices between these two years, emphasizing the improvements in development environments, frameworks, and community support.

Key points discussed include:

  • Initial Skepticism: Francl recounts his early skepticism regarding Rails, coming from a Java and Python background before eventually embracing the framework, similar to the protagonist in Edward Bellamy's novel "Looking Backward".

  • Web Development in 2004: He paints a clear picture of the limitations faced by developers in 2004, such as slow development cycles with technologies like Java and the difficulty of creating dynamic web applications without modern frameworks.

  • The Rise of Rails: Francl discusses the features of Rails that distinguished it from other programming frameworks, such as simplicity in building web applications, live reloading, an integrated development console, and the Active Record pattern for database interactions. He highlights how Rails became popular not just for its functionality, but also due to effective community promotion and the packaging of best practices into a single framework.

  • Impact on Modern Development: By 2014, Francl notes dramatic shifts in web development practices, including the rise of AJAX, the importance of front-end development, and the accessibility of cloud hosting services. He underscores how Rails adapted over time to these changes while maintaining its core strengths.

  • Future Challenges: Francl expresses concerns about Rails facing challenges in a rapidly evolving technological landscape, particularly with the rise of front-end frameworks and mobile apps that communicate primarily through APIs. However, he remains optimistic about Rails' ability to adapt to these new paradigms.

Conclusions: Francl concludes that while Rails has a lasting legacy due to its community and the lessons it imparted about simplicity and usability, the framework must continue to evolve to remain relevant. He emphasizes the importance of community engagement and the responsibility developers have to share their tools and knowledge to improve the broader programming environment. This talk is a celebration of Rails' journey and an encouragement for developers to foster simplicity and ease in their own work.

In Edward Bellamy's utopian novel "Looking Backward", a man from the 1890s awakens after 100 years and sees the wonders of the new age. What would a programmer from 2004 think if they woke up in 2014's web development utopia?

When you work with Rails every day, it's easy to forget how much it changed web development. But the influence of Rails is still being felt today in the Ruby world and beyond. Let's rediscover the Rails revolution by looking backward at its impact on how we work now.

Luke Francl is a developer at Swiftype, which provides search engines as a service. His career has focused on web application development using a variety of technologies, including Tcl (seriously). He has been working with Ruby on Rails professionally since 2006.

Help us caption & translate this video!

http://amara.org/v/FG0T/

RailsConf 2014

00:00:23.199 good afternoon uh i'd like to get started if i think everybody's ready
00:00:28.840 cool cool thank uh thank you for joining me this afternoon uh i'm excited to be
00:00:34.160 here and thanks for uh thanks for choosing this talk so it's been 10 years since the first
00:00:40.640 public release of rails so i think that's a good time to think back and reflect on
00:00:47.280 where rails has come from where it might be going and what the future has in
00:00:52.559 store so i've been thinking a lot about the early
00:00:58.480 days of rails lately because the company i work for swift type makes site search software
00:01:04.239 so i use my own website for testing so i index my site and then have to do
00:01:10.400 searches on it and i'll search for rails uh just because i'm not super creative and i need to search for something right
00:01:16.159 and in doing so i found some old blog posts that i wrote in early 2005 when i first discovered rails and it was really
00:01:23.280 interesting for me to read because back then i was i was working as a java developer
00:01:29.680 and i was uh really interested in python and rails was neither of those things so
00:01:35.759 i was pretty skeptical of rails like i was impressed with it but i wasn't sure it was worth learning ruby over
00:01:42.880 so i thought i'll just sit back and let the python people catch up and
00:01:48.399 i waited and i waited and i waited and that never really seemed to happen and so after a few months
00:01:55.439 i jumped into rails and started learning it and i started learning ruby so that i could use rails
00:02:01.600 and then that fall i got wind of a new group starting in my hometown the ruby users of minnesota and
00:02:08.239 so i was i was there at the first meeting when there was 12 people talk who were just really excited about ruby
00:02:13.680 and really excited about rails and at that point i joined the the ruby community and became a part of
00:02:21.040 that and really have not uh have not looked back since then and i've been working with rails professionally now
00:02:26.640 for about eight years so this made me think about a book i read
00:02:31.680 once called looking backward by edward bellamy so in this book which was written in the
00:02:36.959 late 1800s and takes place at that time uh a rich upper class man uh is
00:02:42.959 hypnotized and he falls asleep for over a hundred years and when he wakes up uh
00:02:48.319 everything has changed uh america is now a socialist utopia and so you know he had it pretty good
00:02:54.879 before right uh he he was wealthy he had servants and now everyone is
00:03:01.040 equal and so he's pretty skeptical of this new order so
00:03:06.879 it takes him a while but as he's shown the new way of doing things he becomes convinced that this is actually
00:03:12.560 a better way and that made me think of uh
00:03:19.280 think of my situation where i was i was skeptical of rails and uh but eventually
00:03:24.560 won over um so today
00:03:30.400 what i'd like to talk about is the idea of what would a programmer from 2004
00:03:36.159 think if they could time travel forward to today and experience our web development utopia what would that be
00:03:42.799 like for them to see how we work today so what i'd like to do today is first
00:03:49.680 talk about what web development was like in 2004 then i'd like to jump forward to the
00:03:55.439 present and think about what a programmer from 2004 would think about our web development utopia of today
00:04:02.400 and finally i'd like to take a look at what the future might have in store for rails and what the
00:04:08.959 uh what the legacy of rails might be so first let's talk a little bit about
00:04:15.760 what development was like in 2004 so if i can set the stage for a minute um i
00:04:22.880 see a lot of macbooks here today uh there were no macbooks in 2004. the
00:04:28.560 top of the line apple laptop was a power mac g4 and
00:04:33.840 you know apple had not completely penetrated the web development community like it has now uh there were only
00:04:40.960 i use linux at work myself and uh windows at home actually
00:04:47.120 and the most popular phone number not the most popular but the hottest phone in 2004 was a motorola
00:04:54.560 razer so right so things were pretty different there
00:05:01.199 things were pretty different then and i was working as a java developer at the time and i was pretty excited about
00:05:07.360 that because i graduated in 2001 right after the dot-com bust and
00:05:13.120 things were pretty sketchy there for a while it was hard for me to find a job and so i was excited that i was able to
00:05:19.680 work as a java developer in the hot language of the time and i was i was glad that i was able to work at a software development company where i
00:05:26.960 could work on software for sale instead of uh working in the cost center at a
00:05:33.120 big bank or something like that right so i was working as a java developer and
00:05:40.080 if you've ever done any java web development you know that it can be pretty painful right um
00:05:46.400 at the time the the best way to do java web development was struts and uh
00:05:51.680 hibernate but we didn't use either of those we used raw java servlets and
00:05:57.759 hand coded jdbc queries to our database so
00:06:04.720 the the real problem with java as a as a web development platform at least in those days was it it has a really long
00:06:11.759 edit compile debug loop or in the case of of java web
00:06:16.880 development it's the edit compile deploy debug lube
00:06:22.240 because you have to restart your app server and we used websphere so that took a long time so if i needed to write a new page for
00:06:30.240 for our app it was a pretty involved process so we used raw servlets so that's sort of like
00:06:36.240 using a raw cgi library where it's very low level um and if when you work in java it's
00:06:42.080 very verbose and you have to read from input streams and write to output streams and it just doesn't have the
00:06:47.840 conveniences of ruby or scripting language so i'd have to write my servlet then i'd have to write a bunch of xml file or xml
00:06:54.880 code in the web.xml file to map it up and then you'd compile everything and
00:07:00.319 get it working and then restart your app server which would take several minutes and then
00:07:06.160 browse to the new page to to see what it what's going on there and that's where the fun would start
00:07:12.240 because that's when the jsps came into play so jsp is just like erb right you
00:07:18.880 instead of ruby it's java but java is a much more heavyweight language and it doesn't
00:07:24.720 have you know friendly looping constructs or mapping constructs like ruby does so writing view code in ruby
00:07:31.039 or in java is not very much fun but worst of all the way that jsps work is that it takes the java or the jsp code
00:07:38.000 that you write and it compiles it into a java class file and then that java class file gets compiled into code
00:07:44.639 so when you get an error when you're debugging you'd get us this stack trace
00:07:50.639 and it would be like null pointer exception online 12075 of line 20 082
00:07:59.360 and you'd sit there and you'd think
00:08:04.720 what was i doing in my jsp that could cause a null pointer exception and you'd
00:08:09.919 look at the jsp and you look at the stack trace and they had no correspondence whatsoever right
00:08:16.879 so it's really painful and if you were smart you would there's a setting like a secret setting you
00:08:22.479 could use for websphere to keep around the compiled java files so then you
00:08:27.599 could open that up in your web browser and look at line 12075 and be like
00:08:32.800 oh that's what i was doing in the jsp so
00:08:38.080 web development in java especially in 2004 not very much fun but there was there was also at that
00:08:45.120 time a glimmer that something better was on the way that
00:08:50.240 the web could do more um there was a new sense that the web was a
00:08:56.000 powerful platform for delivering software and i think that the earliest uh glimmerings of this come from
00:09:02.800 microsoft's outlook web app this was the first application to use what we would today
00:09:09.600 call ajax without requiring any kind of browser plugins so
00:09:14.800 that that came out in 2001 and people people didn't pay much attention to it
00:09:20.480 because it was i.e only and it wasn't clear how it was working right
00:09:25.920 and then google launched google suggest and people dissected that and they saw how it was working and
00:09:33.120 they also launched gmail which gave people a new sense of what was possible in a web app that that web apps
00:09:39.600 could automatically refresh as uh things were changing on the server so there was
00:09:44.959 a new sense of what was possible that maybe there was a better way of writing web apps
00:09:51.040 and in 2004 i was also looking for something better because and i attribute that to a book i read
00:09:57.680 early in my career the pragmatic programmer by dave thomas and andy hunt and in that book which is a terrific
00:10:04.480 book about becoming a better software developer a better software software craftsman in that book they talk about the
00:10:11.040 importance of learning a scripting language and that's because if you're working in a language like
00:10:16.640 java there's often things that are too uh too small of a task to make it worth writing a java program to do and but a
00:10:23.680 scripting language you can you know knock that off really easily so things that you might do manually you
00:10:28.720 can instead write you know a script to do for you and so i took that to heart
00:10:34.480 and i went to the bookstore remember this was the early 2000s there were still bookstores
00:10:40.640 and i looked at all the books that they had about scripting languages so there was a bunch of books about pearl
00:10:46.800 there was a bunch of books about python and there was one book about ruby by
00:10:52.000 those same guys dave thomas and andy hunt so i immediately discarded the books
00:10:57.120 about pearl because i'd worked with pearl before and i thought it was terrible
00:11:04.480 and i looked at the books about python and i'm like this looks okay i can see myself using this and then i looked at
00:11:09.680 the book about ruby and unfortunately what i saw in the book about ruby was a lot of dollar signs and
00:11:15.920 dollar sign underscores and at signs and at signs
00:11:21.360 and i thought this looks just like pearl i don't i don't want to learn this this
00:11:27.519 this is this is this is crappy so i decided then to become a python
00:11:32.560 programmer and i was actually able to use python for a number of things in my job in my
00:11:37.760 personal uh programming i wrote a script to migrate from one bug database to the other
00:11:43.600 i wrote a script that tied our subversion check-ins to our bug database so you could reference bug numbers and
00:11:48.640 link up the commits and stuff and i i wrote some personal scripts
00:11:54.880 but what i really wanted to do was write web apps because that's throughout my career that's always what i've been most
00:12:01.040 excited about because i've always loved the potential of the web as a platform for enabling communication
00:12:08.480 it's the most powerful and widely distributed way that you can connect people
00:12:14.320 and so every time i would have an idea for a web app in python i would
00:12:19.440 start thinking about how or i would start thinking about how it should work and what it should do and i'd get excited about it and want to
00:12:25.680 build it and then i'd start reading about how to build web apps in python and get really frustrated because then there was no
00:12:32.959 clear way there was no django there was cgi in the core library but
00:12:38.639 you know who wants to write at that low level there was then a myriad of templating options and
00:12:47.440 uh different object relational mappers and different ways of publishing your objects to the web and different
00:12:52.639 database drivers and there was no clear way of deploying the software either so
00:13:00.399 i would have this idea for what i thought would be the next great app and then i would start reading about python
00:13:07.519 how to implement it in python and get frustrated and give up but i didn't know it at the time but
00:13:13.760 there was something better on the way so let's turn now to
00:13:19.880 2014 and think about what would a programmer from 2004
00:13:26.320 think about how we work today and i think if you could take someone from then and bring them forward to now
00:13:32.800 i think they would be amazed because it's truly a great time to be a programmer
00:13:38.480 uh we are all walking around with a computer in our pockets that's more powerful than the desktop i had in 2004
00:13:46.720 and it has a a better web browser too so think about what's different between now and then in
00:13:53.760 2004 ajax was in its infancy the the term hadn't even been coined yet
00:14:00.880 uh today a rich ajax framework come with every web
00:14:06.639 uh application framework so you can you can build rich interactive applications much easier
00:14:12.959 and you can even write your entire front end in javascript if you want to web browsers are immeasurably more
00:14:20.079 powerful now than they than they were then deployment is much easier too
00:14:27.199 in 2004 it was really hard to figure out how you should get your app up on the web uh you could colo but that was
00:14:34.079 expensive uh you could use shared hosting like dreamhost or something like that but
00:14:40.480 those servers were underpowered and kind of weak today you can spin up a server with the
00:14:46.880 click of a button you can manage everything yourself if you want to use ec2
00:14:52.399 or you can rely on platforms services like heroku or google app engine
00:14:57.519 and this is really great for programmers because you don't have to be a great programmer
00:15:03.120 and a great system assisted men now to launch a web application you can let other people handle that
00:15:09.760 part and that's terrific another thing that i think is really powerful about
00:15:14.880 how we work today is that in
00:15:20.399 today we have access to all of these uh web service apis with a simple http request uh you can extend the
00:15:27.360 functionality of your app really easily by leveraging these services there's everything from search like myself my
00:15:33.120 company provides to payments from companies like stripe and even telephony from companies like twilio
00:15:39.360 so with just an http request you can add that kind of functionality into your application super easily
00:15:46.240 and best of all you're using they use json instead of xml so there's no xml sit-ups like there was back in the early
00:15:52.880 2000s but what about rails like what would a programmer from 2004 think about ruby on
00:16:00.240 rails well i think if you could bring someone or talk to somebody in 2004 and say in
00:16:06.639 10 years the best way to make a web app is going to be this thing called ruby on rails i think what they would say is
00:16:13.120 what on rails it's difficult to overstate how marginal the ruby community was in
00:16:20.320 2004. when david publicly demoed
00:16:26.320 uh rails at rubyconf 2004 there were probably less people in the
00:16:31.839 room than there are right now then there were about 60 people at that
00:16:37.759 conference today there's dozens of conferences around the world and thousands of people
00:16:44.079 make their livings using ruby and rails the community has grown tremendously since those days
00:16:55.680 but what about the features the features were really what made rails succeed
00:17:01.839 and if i think back on what i first thought about rails when i saw it like what impressed me
00:17:07.839 things that that really stand out in my mind are things like live reloading
00:17:14.480 compared to how i was working in java where it was a really long cycle to get anything up on the screen in rails you
00:17:20.559 could edit any file you could edit your model your your views even your database
00:17:25.839 schema and reload your browser and it was right there and that was tremendously exciting and
00:17:31.679 if you had an exception in your in your view you would see exactly which line of code caused it and not have to wade through
00:17:39.120 uh these huge stack traces that had nothing to do with what you were working on
00:17:44.480 and that was tremendous for developer productivity another thing that was a real big win
00:17:50.080 for developer productivity for me anyway was the development console rails let you just type a single command
00:17:57.280 and get full access to all the code that you've been writing so for me i keep that open all the time and
00:18:02.640 i'm always constantly trying out things and experimenting and trying to figure out how different apis work by using the
00:18:09.120 developer console this is something that i'd been able to get working in the java world using a
00:18:15.200 tool called bean shell which is like a javascripting framework but it was nowhere near as good as the rails
00:18:20.480 console and uh you know it just was a lot harder to to get working
00:18:27.280 related to that is just the idea of having separate development environments rails came right out of the box with
00:18:33.840 development production and test and has separate databases for all of those things so you didn't have to worry about
00:18:39.280 mixing your code together you could have separate configurations for testing and production and development and that
00:18:45.440 really helped with the software engineering side of rails
00:18:50.480 finally the the the last big feature that i think uh really stood out to me was active record and migrations active
00:18:57.280 record was super exciting because here this this this code is sort of magically intuiting the
00:19:03.120 fields from the structure of your database you didn't have to write any code at all and for someone who is writing sql statements by hand that was
00:19:10.640 really exciting and migrations were awesome too because you always need to transition the state
00:19:16.160 of your database in your in your application and again this is something that we had built at my job
00:19:23.280 but ours was not as good it it used raw sql so you would write sql
00:19:29.039 statements to to transition the database and it was tied directly to the app version that that we had so when you
00:19:36.000 would release a new version of the app you would have to sync that with the database the database version would have
00:19:41.600 to be synced with that so there was there was no way to independently migrate the database and there was no way to go down so you
00:19:48.000 had to get it right rails was better than that but why did rails win why
00:19:55.200 why was rails exciting to people because all these features were available elsewhere
00:20:00.799 i think there's three reasons first of all while each of these features was something that you could get in other web programming frameworks
00:20:08.720 rails brought them all together rails was the whole package
00:20:13.840 so rails took things that were possible and made them easy it even that
00:20:20.880 it made them the default so rails took a lot of best practices and put them together in one thing that you could use
00:20:28.000 super simply and that was really exciting to people even even for me because i was able to to do
00:20:35.120 some of the things that rails had having it together in one package was super exciting
00:20:41.120 the second reason i think rail succeeded is the triumph of hype if you go back and read the early blog
00:20:47.200 posts about rails it's really interesting because it really caused a furor in the java and
00:20:53.360 the python worlds because people were like well why can't we do this and in the middle of all that you saw
00:20:59.600 dhh he was constantly promoting rails and getting into discussions and
00:21:05.360 arguments with other people and blogging about it and he he was relentless in promoting
00:21:12.159 rails and the early rails community was relentless in sharing their enthusiasm for this new thing
00:21:18.159 and i think that that matters a lot because it's not enough to have great code and just put it up on the internet
00:21:25.200 that that never works you need to tell people about what you're doing in order
00:21:30.400 for them to know about it and you need to explain clearly and concisely why
00:21:36.400 it's better than what they're doing now and rails david and the rails community really
00:21:41.840 succeeded at that third another reason that rails succeeded is
00:21:48.400 the triumph of community from really early days rails had the ability to be extended with plugins and
00:21:55.520 so people wrote plugins that would take care of default areas or not default areas but but common areas of your
00:22:02.320 application like logging in or uploading files these are things that you needed in your app but they weren't core to
00:22:09.919 your app and so knowing that you could take advantage of these these plugins and later gyms really made
00:22:16.640 picking rails an easier choice
00:22:24.640 so ultimately rails was successful but what about the future what does the future have in store for
00:22:30.720 rails i think that rails does face challenges in the future
00:22:36.480 because because the web is changing what people want to do on the web
00:22:42.559 is becoming different and indeed the the future of the web i think is even in question
00:22:48.640 so let's look at two challenges to rails first of all
00:22:53.679 now that browsers are more powerful people are able to write more of their app on the front end and so when you do
00:23:00.480 this you don't need the uh kind of classic web app that rails is rails is really
00:23:06.720 good at generating a lot of html and shipping it down to the client
00:23:12.320 kind of a classic web app like like basecamp but when you're writing your entire app in
00:23:18.480 javascript in the client what you need is the ability to talk to the server with an api
00:23:24.080 and when that's all you're doing people can question why do i need rails why do i need all of
00:23:29.919 this extra stuff that rails does i'm maybe i should just use node.js and then i can write
00:23:36.480 you know the same language on the client and the server similarly
00:23:42.400 mobile apps are becoming increasingly popular because you can do so much more with the mobile app than you can with a
00:23:48.240 web app you the the user interaction is much richer and uh and faster and and
00:23:54.080 just cleaner and again these kind of apps talk to the server with an api and so
00:24:01.840 people think well i don't need rails then and i think that this this is a threat
00:24:07.279 to rails but there's two key things to remember about this one
00:24:12.960 rails is great at this kind of thing in our application we serve hundreds of
00:24:18.400 millions of api requests a month using rails and the way that we do that
00:24:25.440 is uh not using action controller but rails makes it easy to pick out only the parts of rails that you need to use and
00:24:33.760 so you can you can take rails much further than many people think i i believe
00:24:39.840 second even if you are building an api heavy app not all of your app is going
00:24:45.279 to be api based you are going to need a management console to handle the back
00:24:51.679 end of your application pretty much every app has this you need a way to look up your users and
00:24:58.799 you know change their account status and things like that and are you going to build an ipad app
00:25:04.159 for that i don't think so because it would be too expensive and slow the web is still the
00:25:09.600 best way and the easiest way to distribute an application
00:25:14.880 so rails has a real i think has a place for that or there's a place for rails even in an api
00:25:21.760 driven application but even if the web as a platform and
00:25:27.039 rails as a framework can't adapt and fall by the wayside i think the legacy
00:25:32.400 of rails will really live on for a long time because this idea of taking
00:25:39.120 things that were possible and making them simple making them easy to do
00:25:44.559 was really powerful and it inspired programmers in many different programming languages to to copy rails
00:25:50.960 and to uh to try to get those benefits for themselves
00:25:57.840 so i think no matter what the next platform is people will be inspired by that aspect
00:26:03.200 of rails and they will want to write the rails of whatever
00:26:08.720 i'd also like to look at the reaction against rails because that's part of rails legacy too
00:26:14.000 uh there's two examples that i'd like to talk about here first of all there's django so django can't be
00:26:21.120 considered to be uh inspired by rails because it was developed at the same time or even
00:26:27.440 earlier than rails but sin the the two frameworks have been uh
00:26:33.760 really similar and have have learned a lot from each other i think but the way that django works it is
00:26:40.559 really driven by the python philosophy of explicit is better than implicit so
00:26:46.400 in in django when you uh when you like want to map up a url on your server you think really
00:26:53.440 hard about what that url is going to be it doesn't happen automatically
00:26:58.480 and your database models tell the database what its fields should be instead of the
00:27:04.720 other way around in rails of course we follow convention over configuration right
00:27:10.880 but if you've ever tried to teach someone rails you know that this can be a double-edged sword
00:27:17.360 convention over configuration lets you write less code but it also makes it less clear what's happening
00:27:23.200 when you're teaching somebody rails it can be really confusing that you edit a route in this file over here
00:27:30.080 and therefore your controller over here needs to be named this and it has these methods available to it that respond to
00:27:37.360 these http requests or http methods that is not at all obvious and so it
00:27:43.840 takes time to learn all those conventions um and
00:27:49.520 i mean i don't think one is better than the other they're just uh you know different different sides of the same coin different ways of looking at how
00:27:56.320 programming should work kind of related to that is the second example which is micro frameworks
00:28:03.679 like sinatra these have been incredibly influential and i love using sinatra it's just it's
00:28:09.360 like such a thing of beauty when you can have your whole web app in one file and the the urls that are that are in your
00:28:16.480 web app are just tightly connected to the code that's going to run when someone goes to that url uh
00:28:23.600 that is like a really wonderful feeling i think and sinatra has been probably even more
00:28:30.159 influential than rails there are copies of sinatra or sinatra inspired
00:28:35.679 micro frameworks anyway in just about every programming language you can think of anything from java to php
00:28:42.799 to closure go javascript even haskell
00:28:48.080 all of these have a version of sinatra and
00:28:53.600 in some languages these micro framework the micro framework inspired by sinatra is the
00:28:59.440 default way people write web apps it's the best way that they have
00:29:04.960 and i think that that is kind of a problem because while i love using sinatra
00:29:11.120 when an app gets above a certain size i find myself pulling in more and more of rails and
00:29:16.960 at some point i feel well i might as well just switch to rails and so in the i feel bad for these
00:29:22.960 programmers in these other languages because they don't have the choice to switch necessarily to something as good
00:29:28.159 as rails so i think i think rails actually has a bright future ahead of it because it's
00:29:33.440 shown the ability to adapt and respond to change think about
00:29:39.360 rails 1.2 and the addition of rest and making that the default way that we think about
00:29:45.200 controllers and resources on the web so i think that if people want to use
00:29:51.760 rails to back javascript based applications rails will get better at that and if people want to use it to
00:29:57.679 back mobile applications it will get better than at that but you'll still have the ability to use rails for what
00:30:03.520 it's good at when you need to all right
00:30:08.720 so we've talked about what programming was like in 2004
00:30:14.080 we've talked a little bit about the features of rails that made people want to use it and made it win
00:30:22.559 and we've talked about what could happen in the future what is the what's the legacy of rails and will it
00:30:29.120 be able to adapt so a hundred years ago or actually more
00:30:35.679 than 100 years ago when edward bellamy was frustrated with the way things were going with how
00:30:41.440 society was working he took up his pin and he used his imagination to create a
00:30:47.360 new world this this utopian novel where he could explain how he thought things
00:30:52.399 ought to work now that may seem kind of pointless because it's the 21st century
00:30:58.399 america is not a socialist utopia but that book was incredibly influential
00:31:04.960 in the years after its publication hundreds of bellamy clubs were started across the country and millions of
00:31:11.200 people were inspired by the ideas written in the book and
00:31:17.200 those people and those clubs formed the nucleus of the progressive movement in the early 20th century that broke the
00:31:24.240 trusts and monopolies and ultimately paved the way for social security and
00:31:29.440 the american welfare state so the book did have a huge influence on on the world
00:31:35.919 programming on the other hand is a little more concrete so when dhh was frustrated by
00:31:42.399 how programming web programming worked in 2003 or whatever he
00:31:48.240 was able to do something about it he cracked open his text editor and got to
00:31:53.600 work and built something that people found inspiring and when they saw it they wanted to meet other people who are
00:32:00.159 interested in that and that was the genesis of the rails community and so today
00:32:05.840 uh you know we're all here today because of the rails community and because of what uh
00:32:12.320 what developed over those those last 10 years so i'm really uh really pleased to
00:32:18.000 be a part of that community and really honored to be speaking to you today about that
00:32:24.559 and it's made a huge impact in the direction of my career
00:32:29.760 and i just find it inspiring i find it inspiring that as programmers we can see something that's broken
00:32:35.519 and we can fix it we can create a new reality for ourselves with
00:32:40.640 code and i think that that's a really powerful really powerful notion and we
00:32:45.679 also shouldn't forget the lessons of rails as we do that because rails didn't just win because it was
00:32:51.279 because it was better though i i do think it was it won because of the community around it and because of the
00:32:58.000 the their passion for for telling people about what was so good about rails so
00:33:04.399 most of us probably are not going to write the next great framework um i i i
00:33:10.480 don't imagine that i will but i think that we can take to heart the lessons of rails in our in our own work
00:33:17.200 and in the the libraries that we're writing don't forget to to
00:33:22.240 to try to make things easy to try to make it easy for your fellow programmers and don't forget to tell people about it
00:33:28.880 and and explain why they should use what you've written and i think if you do that you can help make
00:33:35.200 the world a better place thanks
00:34:03.360 you