Placeholder Image

字幕列表 影片播放

  • [Music]

  • Back in 1999 or 2000 I had this web design company  called 37signals and I had two partners in the  

  • business, and we were doing some web design for  people, but I had this side project that I was  

  • also doing called Single File which was this bookonline book database thing that I was trying to  

  • build. And I was building it out of PHP, I didn't  know how to program but I picked up a book on PHP  

  • and I started making this thing. And I got pretty  far, but then I got stumped. So I wrote this post  

  • online asking for help, it was a general call  for help, "there's my problem -- anyone know how  

  • to do this?" you know, this is way back before  StackOverflow and all the places you could get  

  • answers, there were no answers, so help! SomeoneAnd it turned out this guy wrote me from Denmark.

  • Back then I was here in CopenhagenDenmark working in the web industry,  

  • and I was just a big fan of the company. Right  from the inception there was a web blog, Signal  

  • vs. Noise, that I followed religiously right from  the get-go. It was just such a weird company,  

  • this was a design company that was focused more on  writing than it was on pretty pictures or graphics  

  • or anything else that I associated with design at  the time. So I was following this company for a  

  • couple of years and then in 2001, Jason Fried, one  of the original co-founders and still my business  

  • partner to this day, posted on the blog a question  about programming. I saw this question and I went  

  • like "Hey, I know the answer to this!". This isway for me to give something back to someone I've  

  • enjoyed reading and learning from in the past two  years. So I did just that, I wrote up an answer  

  • explaining how to do this thing he wanted to do  in PHP with great detail, the best as I knew it,  

  • I wasn't an expert programmer really  but I knew the answer to this question.

  • His answer and his help was so thorough and there  was this quality and this character to his answer  

  • that made me feel like he really wanted to help  and not just respond, but he really wanted to  

  • help. And so we started talking back and forth  about this help, and then we got deeper into it,  

  • and he's like "Can I see the whole thing?" and  I said "Sure!", and I showed him the code and  

  • he's like "This sucks, we should really start  over, let me do this for you" and so that's how  

  • my relationship with David actually began: he  telling me my work sucked, and me going "Okay,  

  • let's do something better then". And it wasperfect partnership from the beginning there.

  • I got my first computer when I was 6 years oldthis was in 1985. It was an Amstrad 464 and that  

  • was my first exposure to programming, typing  video games in from the back of a magazine. I  

  • wasn't very good at them, I only made a couple  of them work, but this was how I got started.  

  • Next up was trying to learn programming  once more when I was around 10, 11 or 12,  

  • a programming environment called Easy AMOS. It  was not easy for me, it may have been Amos but  

  • it wasn't easy. So I failed once more to learn  programming, I had a hard time with even the  

  • basics of variables and loops and conditionals  and all the basic constructs you need to learn  

  • how to program. So I gave it up once more, and  it wasn't until I discovered the internet in  

  • 1995 getting involved with making HTML that  I thought "Hey, here's another opportunity  

  • for me to be able to create something!". And  in 1999 I started working on a gaming website  

  • with another programmer in PHP. and that was  really the first time things clicked. At that  

  • time I'm 20 years old, this is my third attempt  at learning to program but now I understood it.  

  • And that was really the prep I had beforeyear later I would write Jason that email.

  • So the first time I met Dave was in  Chicago, we were working together,  

  • we had been working together for quitewhile actually but we never met in person,  

  • just on Skype you know. So I'm at the John  Hancock building in Chicago, which is a famous  

  • building in this big plaza waiting for him  to arrive. We agree that we're going to meet  

  • in the morning and so I'm waiting there and I'm  looking around like is that him?, is that him?,  

  • is that him?! and then no, it wasn't him, but  then this guy shows up and it comes around the  

  • corner and he's wearing all white rail thin  like white T-shirt, really short sleeves,  

  • white capri pants, white shoes. I'm like "there's  Denmark right there, that's David". And I think,  

  • actually you know, I'm thinking he had white  shoes but I think he may have had rollerblades  

  • on now that I think about it, I'm not exactly  sure. But it was so obvious that it was him

  • After we'd worked on this book thing forwhile, we worked on another client project,  

  • then actually a few because we were a web design  firm so we were just doing web design, we did  

  • a few more things together and then we started  getting really busy and needed a way to manage our  

  • projects. And so we had this idea to build this  project management tool for ourselves. Now, David  

  • was still a student at this time, he was still in  Copenhagen at business school there so he didn't  

  • have a lot of time, he wasn't a full-time employee  or anything yet. And I hired him to do this right  

  • the back end of Basecamp, and at the time he's  like "I don't want money, I want laptops, I want  

  • computer equipment" because it was very hard for  him to get modern Apple stuff in Denmark. So every  

  • time he came to the US - this is probably illegalbut anyway - every time he came to the US I gave  

  • him a laptop or I gave him a, you know, whatever  he needed at the time right. And that was payment  

  • for Basecamp, and he would only give us like 10  hours a week cause that's all the time he had.

  • 2003 is when we decided to start on Basecamp. We  had worked together in these consulting projects  

  • and most of the organization around that had  been over email, an experience everyone feels  

  • I think if they try to organize projects over  email. So we thought, do you know what? we know  

  • how to make web applications, can't we just  make an application that'll make this easier  

  • for us to do so we don't have to deal with  all these email threads and which version  

  • of the file is the latest and what's left to do  before we can launch?. And that's what we did,  

  • and I had just earlier that year discovered  Ruby through the writings of Martin Fowler  

  • and Dave Thomas who were using Ruby to illustrate  programming concepts that they were writing about  

  • in programming magazines. I just thought, this is  a really interesting programming language. First  

  • of all I hadn't heard about it before, and I'd  been working with the web for quite some years  

  • at that point, that was intriguing. It was out  of Japan, that was intriguing. I saw the code  

  • and it looked just like pseudo code, you know how  if you're trying to explain a programming concept  

  • sometimes you won't write the exact right syntaxyou'll just write something that more looks like  

  • English. And that's exactly what Ruby looked likeAnd I thought, this is just really interesting.  

  • And here are these two titans of the industryDave Thomas and Martin Fowler, who were clearly  

  • very enamored with the language, expressing that  they would wish to write systems in this language  

  • if they could only get permission to do so. And  I thought, you know what? Here's a project where  

  • we can choose to do whatever we want, so I got to  make the choice and the choice was let's try Ruby.

  • I remember in the early days of building Basecampyou know, I didn't have any input on the backend,  

  • but David's like "you know, I'm going to use  this thing called Ruby to build Basecamp",  

  • cause we've been been working in PHP previously  and I'm like, "What the f()c% is Ruby?!?" I've  

  • never heard of this. He's like, "It's  this thing out of Japan". I'm like,  

  • all right, I mean really I truly I didn't  care because it's his part of the project,  

  • it's not my job to tell him  what to use, and I trusted him.

  • When we started working on Basecamp in 2003, I  was getting proficient enough in programming to  

  • start to develop a taste for what I liked in  programming, but I hadn't found yet somewhere  

  • to express that taste. It really wasn't until  I discovered Ruby that I found the programming  

  • language that simply clicked for me. And what  I loved about Ruby was this sense of combining  

  • the immediacy of PHP being able to get Hello  World onto the web with a minimal amount of  

  • fuzz together with a really sophisticated well  thought out coherent object-oriented program  

  • language. That was the appeal I found in Java  that there was all this intellectual rigor the  

  • software pattern and all the other stuff that  serious system development engineers were all  

  • about. And Ruby to me brought both of those  things together, or at least could bring both  

  • of those two things together. And that's wheresaw an opportunity. It started out really simple,  

  • I had a two week window that I gave myself  of could I build just the basics of a web  

  • application, could I get HTML up in the screen  that was rendered from Ruby, and I was talking  

  • to a database and could I simply make those things  happen. So there wasn't a lot of libraries, there  

  • were not a lot of frameworks, there were certainly  not a lot of things to help you with database  

  • access or with the web development in generalAnd that's how Rails came about, that I simply had  

  • to build the tools myself in order to be able to  use Ruby as my programming language for this new  

  • system we were creating. It wasn't because I had  already looked at a bunch of other things in Ruby,  

  • I had looked at other things in PHP, I looked at  things in Java, so I had a good idea of what I  

  • wanted. But Ruby was the language that gave those  ideas wings, where I thought I could write code  

  • that wasn't just functional, but it was beautiful. Over the next six-seven months, we created  

  • Basecamp, and during that process I extracted  Rails. Not as a big upfront design that I want  

  • to create this grand web framework and release  it to the masses. There was not even a thought  

  • of releasing it originally. I simply needed  these things, so I did that. In the period  

  • between the summer of 2003 and the release of  Basecamp in February of 2004, that was the main  

  • gestation period for the framework itself. Butdidn't really release Rails until later in 2004  

  • because I had this vision right from the get-go  that here's something that could be special,  

  • the first version of Rails needed to be good and  good not just in terms of the code, but also good  

  • in terms of the documentation. So I spentgood six months I think it almost was after  

  • the release of Basecamp, polishing things uppolishing the documentation before putting it out.

  • Right here behind me is where I lived  when I started working on Rails.

  • So when Rails started to take off, it was  pretty wild. And was a bit of a two minds  

  • about it. On the one hand, it was great to see  that something I had created was creating this  

  • much excitement. And at the same time I was  also highly protective of the integrity of  

  • the vision I had put into Rails. More and  more people were interested in Rails, and  

  • some of those people were interested in pulling  Rails in one direction or another. I think it's  

  • very easy to lose control when something like  that happened, be so enamored and just pleased  

  • with other people's contributions that you put  it all in and you have a hard time saying no.  

  • If you say no to someone, you are riskingconflict. And I said no to a lot of things,  

  • I said no to certain things I did not want  Rails to be. There was this infamous slide  

  • at a early Rails conference in Canada where  I simply just put up the words "F()c% You",  

  • and I put up those words as a way of expressing  my at times frustration when someone would show  

  • up with what I considered an unreasonable demand  for me to put something into Rails, then followed  

  • up with a threat: "Unless you put this thing into  Rails, you will fail" F()c% you! That's just not,  

  • you don't get to tell me what to do. I'm working  on Rails because I want to work on Rails,  

  • and I will solve my problems, and I will protect  the integrity of the framework. I'm not here to  

  • be your servant, I am not allowing you to buy  anything from me. This is one of the main reasons  

  • I love open source so much, it is not a commercial  relationship, you don't get to tell me what to do,  

  • you don't get to tell me the direction the Rails  has to take. I'll make those decisions on my own,  

  • thank you very much. I'll take input, absolutely,  I'll take feedback. And Rails is what it is today  

  • because thousands of people contributed really  great work that I had no hesitation saying yes to.

  • [Music]

  • I arrived in the Ruby Community cause I thought  Ruby was cool. I liked programming languages,  

  • I would dabble in them and just try things out in  them. And when I tried Ruby I really liked it. It  

  • just it stuck with me in a special way that I kept  coming back to, just felt close to my heart and I  

  • didn't try to analyze it too much at the timeAs the years went by and I did web development  

  • in Java and PHP and Pearl and other languages, I  kept thinking about feeling that little tug of why  

  • isn't Ruby here?, Why isn't Ruby showed up?. Here  comes this guy announcing on the Ruby talk mailing  

  • list, "I've got a plan". It's like, are you coming  down from Mount Sinai with your tablets of... who  

  • gave you these commandments?! The way to develop  for Ruby and the way it developed for the web,  

  • we haven't seen you before! So it was it was  a provocation and there was some spice to it,  

  • I was like: "Is this guy an $%/&!* or does  is there something to it?!" And it was a  

  • little bit of both: hear this guy with like  a kind of well-carried arrogance about having  

  • the right ideas and willing to set those ideas  out for everybody to see and they were great,  

  • they were good ideas. Sure, some of them were  like old ideas reconfigured but they weren't  

  • pitched as anything but that. The active  record pattern says it right on the tin,  

  • now it took it from a pattern to being a framework  and that added a it was a jolt of energy and kind  

  • of electricity and a Ruby community that was  very generous, very kind, and now had this kind  

  • of aliveness like, what's going on here? How do  we channel this energy, what are we going to do  

  • with this person?!, and it varied from tolerate  this person, to embrace and see what he brought.

  • [Music]

  • I first heard about Ruby on Rails at  the 2004 International Ruby Conference,  

  • I was working for Brigham Young University at  the time and not using Ruby, but I received  

  • permission to go to this conference becausehad I was very excited about the Ruby programming  

  • language and was doing a lot with Ruby on the  side and even sneaking it into the system,  

  • so to speak. And I went, I was actually presenting  about something that I had been working on,  

  • on the side. It was not a big conferencethere was maybe just 30 or 40 people in  

  • total. But I remember sitting there and one of  the presenters was David Heinemeier Hansson,  

  • who I' had never heard of before,  I had never heard of Ruby on Rails,  

  • it was brand new just barely released. And  he got up and was talking about why he wrote  

  • Rails. He really was pushing a better experience  for programmers, and I remember him standing up  

  • there holding an imaginary piccolo to his lips and  talking about how like the Pied Piper of Hamelin  

  • he was going to lead programmers to a better  a better experience, a better way of living.

  • For about the first year, there was no one else  but me making commits directly to the code.

  • I took patches from people, we took patches over  email, I think we even used a Wiki at the time.  

  • This was well before GitHub was created and made  everything so easy. But I didn't expand the access  

  • to the code itself until I think almost a year inAt that time we instituted the Rails core team,  

  • which were basically just a group of people who  had sent me the most patches, who had sent me the  

  • best work. Those people got access to the code  base, and amongst those people was Jamis Buck.

  • I remember being struck by just how excited he  was about this project, he was very passionate  

  • about it. He never showed a line of Ruby or Rails  code that whole presentation, it was all about  

  • why he wrote it, what he was hoping to accomplish  with it, which I think disappointed some people,  

  • especially those who had heard about Railsmaybe played with the very early releases of  

  • it. I think there were some there who were hoping  for a little bit more of a technical presentation,  

  • but his was all about the charisma. His excitement  and passion about the project was contagious,  

  • it was easy to see that this was something  he was really excited about. And even then,  

  • I mean this was 20 years ago almost, you could see  his idea that this was going to change the world.

  • Jamis ended up then being the first programmer  I ever hired at 37signals as Basecamp was taking  

  • off. And I remember reading Jamis's  Ruby code and just thinking "Wow,  

  • this guy is really good!". He just had suchmethodical approach to it that I was an off,  

  • and I was eager to be able to work  with him at Basecamp on Basecamp,  

  • and that's how we got started, that we hired  the good number of the early people at 37signals  

  • were all hired out of the Rails core team or  other folks who had been contributing to Rails.

  • Something that was exciting about the Rail's  pre-release announcement is that it was coming  

  • from 37signals. I knew about 37signalsand just the fact that they were dipping  

  • their toes into Ruby, it was interesting. Like,  I was really curious. Why are they showing up  

  • here? This wasn't just somebody coming up  with their favorite way to build web apps,  

  • it was somebody doing something in a 37signals  way and that the mark 37signals had made on the  

  • design world was showing up to the Ruby world of  all places, it felt different and kind of odd,  

  • a neat interesting curious kind of odd. So it  gave it kind of an instant reputation. If you  

  • didn't know what it was yet, but the fact that it  could power something like that spoke for itself.

  • That reception was of course very warm and  loving, this was a bunch of Ruby enthusiasts  

  • seeing something interesting happening in RubyThe reception from the rest of the world was a  

  • bit more mixed. Of course it was, in part because  when I went into full marketing mode for Rails,

  • I was a little brash about it. I knew that the odds  of creating awareness from something like Ruby,  

  • such an unknown programming language, couldn't  just be a whisper, it had to be a shout. And I  

  • went out shouting! I did a bunch of controversial  comparisons between Java implementations of  

  • certain problems and Rails implementations of the  same problems, that at the time were characterized  

  • as poking Java developers in the eyes. So of  course part of that reaction completely expected  

  • was push back and this was why it was so helpful  to have this one-two punch: a real application,  

  • with real success and growth and paying customers  in Basecamp, and just the code speaking for  

  • itself. Things like the 15 minute Blog Video and  other writeups contrasting what does it take to  

  • solve this problem in Ruby on Rails, what does it  take to solve the same problem in something else.

  • Here we go, I hope you can read the text. The  first thing we do is called the Rails command...

  • 2002 I moved from Germany to Canada, I tried to  work for local companies in Canada right after  

  • and found out I couldn't because I didn't have  a work permit, and I had to work through these  

  • kind of things. So I found myself with time. My  now wonderful wife suggested like, "You know,  

  • you've been talking about starting a company  and like this seems like awfully good time to  

  • do it". I didn't feel that spark anymore during  those times, and what I decided I needed to do  

  • was reclaim programming as that passion hobby  again. So what I was looking for is like some  

  • opportunity of "I'm going to build something  that would allow me to make money while I go  

  • snowboarding and while I go program for fun".  That was my plan. I've been extraordinarily  

  • unsuccessful on that particular plan, because  here's the way things happened. I decided,  

  • because of all the snowboarding I was  doing, I knew a lot about snowboarding,  

  • I just like you know online storesThis seemed like the right thing to do,  

  • whereas I couldn't find a good online store. It  turned out that there wasn't good software to use,  

  • I tried to use different packages they all  horrible so I just sat down and said okay,  

  • well, if I can use anything, like I don't have  a boss anymore, what I can use? Any technology,  

  • no matter what it is, it just needs to respond to  web requests. I remember thinking "Man, I would  

  • just love to use Ruby!". Like, it's just this  moment. I think the way I best explain it is like,  

  • I just realized my brain was running on Ruby since  I started first programming. Shortly thereafter I  

  • got just very lucky, that I was paying attention  when David must have for the first time started  

  • talking about him doing the thing I wasn't brave  enough to do, right? Like building from scratch  

  • everything that's needed. This may well have been  me sending a private message and him sending a zip  

  • file back, the details are little bit hazy at this  point, but like he he gave me access very early,  

  • I tried it and I just fell in love with it. I was  building Snowdevol, it took two/three months. I  

  • was certainly the only engineering team on planet  Earth during this time who was doing this alone.  

  • Everyone else who was building online stores  had a team of 100 people, and yet I was more  

  • productive. Simply because it's hard to for people  to understand this these days, but that is the  

  • difference of effectiveness, of what Rails did and  it made it possible to build systems alone. Again,  

  • it just became a very natural thing based on  just what I was seeing to take Snowdevol and  

  • turn into Shopify afterwards. It just seemed  like the right thing to do, and you can clearly  

  • see the influences in it, right? I loved  working on Rails, I love working on the tool,  

  • I love working on the technology. Being inspired  by the tools that you use to reach higher than  

  • you thought you could, or you were allowed to, or  what would be possible, is rare and possible and  

  • underexplored, and in fact literally what Shopify  is attempting to do right at the end of the day.

  • I don't remember us calling it a core team  right away, but it kind of became that,  

  • from those beginnings of Jeremy and me  and David committing to the repository.  

  • It wasn't long before there were more  committers: Marcel Molina, Scott Barron,  

  • Sam Stephenson, some of these others, Michael  Koziarski, these early Rails committers.  

  • And it really was a wonderful thing. I had  never really been part of a team like that,  

  • but there was something about all of us having  this the same vision and working at such an  

  • early stage on something that felt like it was  going to change the world, it was exciting.

  • Being part of her core team meant that you  had David's trust to build something on  

  • the quality bar that he owned. We had  an IRC channel specifically for that,  

  • that's where the real conversations were aboutlike what was Rails, what would Rails become,  

  • what would be the next features. And this is  like, been going on for the last 20 years,  

  • and it's still active. We have muchmuch better tools these days with GitHub,  

  • thanks to another thing that grew out of  Rails. But like, when we started Rails,  

  • there was no GitHub. The concept of having  multiple people work on a code base was a  

  • much higher trust affair back in those days. That  was a 10x environment, and I think David made it,  

  • created it for us. Like we, a lot of us, came  out of those early years as completely changed  

  • programmers afterwards. Rails compelled me to  realise what my potential was there, and it also  

  • gave me the ambition to reach high, because a lot  of people's potential limitation is learned rather  

  • than inherent. And it gave me the configuration  of my life, by allowing me to be an entrepeneur.

  • When I first released Rails it wasn't  even a consideration not to make it open  

  • source. We had been building our businesseverything that I had worked on for the web  

  • had been with open source tools. These were  cornerstones of what enabled me to be able  

  • to work with the web, so when I finally  had something, my own toolbox to share,  

  • I didn't even think twice about itOf course this had to be open source.

  • I remember one of the most fascinating  conversations that I've had a pleasure  

  • to be part of in my life, was a conversation  definitely David, I think Jeremy, I was part of it  

  • and definitely a few others, and it was one where  we said like "Hey, we are building companies,  

  • we're building important companies, they  are working. We are clearly more effective  

  • with small teams than larger teams with lesser  tools. Is open source the right model here? like,  

  • A) Shouldn't we charge money for Rails? B) Should  we even share it at all, or just like use it as a  

  • comparative advantage?". These were ideas that  people were sharing, and David said "No. Open  

  • source is important, in fact MIT license open  source is important, and we're going to make  

  • Rails extraordinarily successful". And I'm  like, I remember pushing saying "Hey David,  

  • that's not something you can just sort of decideLike, you can't just decide something is going to  

  • be successful, that is like an outcome that happen  that requires luck and all these components".  

  • And he said "No, we can decide this". When this  discussion happened David must have been like 24,  

  • right? I'm just like, I'm trying to figure out  where you get that from at that age, it seems,  

  • still seems remarkable. Because you know, and  now we are in our 40s and I still don't run  

  • in a lot of people who have kind of that kind of  conviction and out-of-the-box meta understanding  

  • of market dynamics, attention, drama, and franklybusiness development. I think I've got a business  

  • degree during those years accidentally, playing  out right in front of me while I was just trying  

  • to get work done that I wanted to get doneAnd it's just remarkable, honestly. Remarkable.

  • When I was first hired by 37signals, they asked  me one of my first tasks was to create a way to  

  • deploy Basecamp. At the time, Basecamp was  deployed to a single server database and web  

  • server all on one machine, which is laughable nowbut shortly afterwards they grew and now we needed  

  • two machines, and we had to figure out how to  deploy Basecamp to more than one server. And this  

  • became my baby, Jason and David actually told  me you can have ownership of this product even  

  • though you wrote it for us, this is your babyyou can do what you need with it. And that was  

  • extreme fulfilling, to be able to work on this  product, called it Capistrano, and that stuck.

  • There were some really key moments in early  Rails development. And Rails 1.0 was a big one,  

  • but it was the starting point of what makes  a 1.0. There were some key moments after that  

  • that really kept the sense of momentum. Rails  1.2 was a watershed for me. I still love that  

  • release. It was a very stable early release  where we started having those glimmers of this  

  • is what it's like to be a kind of mature web  framework. And I still feel excited thinking  

  • about like the audaciousness of we're just  going to switch the way we do development  

  • and everybody's along for the ride, and everybody  wanted to be along for the ride. And it was that 

  • same year, December 2007, when we  released Rails 2.0. Rails 2.0 brought  

  • cookie based sessions, brought things like named scopes. So it started to change the way that,  

  • well, it was a look at what it looks like  to see our products and applications mature.

  • One of the big criticisms of the detractors  of Rails back in the day was that "Rails can't  

  • scale". That was their mantra. They  would chant that at us all the time,  

  • and we could point at Basecamp and say, "This is  non-trivial". I mean, it's not we're not doing a  

  • million requests a day, but we're serving  people's needs. We're providing value.  

  • Isn't that at the end of the day, isn't that the  important thing? And so, even though at the time  

  • people pooh-poohed our accomplishments, they were  accomplishments nonetheless, and we never reached 

  • a point where we're like, "Oh, well, I  guess Rails can't scale. We've reached a  

  • number where we can't go beyond it. We're done." We continue to be able to scale.

  • It actually became a bit of a meme joke, "But will  it scale?!". This was a serious thing that people  

  • said in the early days of Rails. But that question  wasn't so much about technology as it was about  

  • FUD: fear, uncertainty, and doubt. People who  saw an interest in putting Rails down would often  

  • bring up scalability, because it was something  you could throw out there before Rails had major  

  • applications like Shopify, like GitHub, or even  like Basecamp at the scale it's at now, it never  

  • really had a foundation. In reality, Rails was essentially scalable from day one.

  • Various people took this pretty seriously, some  people so seriously that they would rewrite their  

  • system at some point as well documented in  some cases. I, you know, making things fast  

  • is pretty fun. It's like, if you used to write  algorithms, data structures. Like, computers  

  • are really fast. From personal experienceShopify is a significant percentage of internet 

  • traffic. It's about 10% of e-commerce globalIt's a large code base, a very large code base,  

  • by the way, if you would look at it, same folder  structure as any Rails application that you would  

  • just generate on your laptop right now. It's on  the latest version of rails. So most of the lines  

  • of code of Shopify are in Ruby. We are not like  religious about using Ruby. We use the best tool,  

  • and Ruby is the best tool for a lot of  types of problems that are being solved  

  • by the thousands of engineers in around Shopify. Shopify is pretty fast. It's totally doable to  

  • build. Like, I don't know who is supposed to  see the kind of scale that you couldn't handle  

  • with Shopify? Like, we have uniquely complexunique complexities that most people don't face

  • You know what's harder to scale than performance of web service? Finding foundational ideas that  

  • scale for 20 years and still feel goodThat requires a level of foresight. You  

  • don't get it--like, that do-over is  very, very hard to, like, to get.

  • On the security side, it was a bit more  tricky because there were things we needed  

  • to do explicitly to prevent common attack  vectors, and we made a bunch of concerted  

  • efforts to ensure that security was a thing  you could just rely on Rails being good at.

  • The next big release for me was rails 2.3 in March  2009. A little bit longer and a lot more depth as  

  • the release that felt like Rails was kind of had  arrived. This framework had everything a modern  

  • web developer needed to develop small scalelarge scale apps and everything in between. At  

  • that time, jQuery was coming on the scene and  we were bound and determined to make room for  

  • it. There were energy happening in the JavaScript  world, and Rails wanted to meet it where it was  

  • arriving. After Rails 2.3, we had everything  we needed. The toolbox was full. We were happy  

  • with the way all the tools behaved. There weren't  gaps among them. We didn't have too many tools.  

  • It felt like we were at the sweet spot for web  development. Where do we go from here? There 

  • was a new Ruby web framework  on the scene called Merb.

  • Rails 3.0 was that, that was like that  was a merge with Merb, right? Holy hell,  

  • that was a, that took some doing. Oh my godBy the way, has this ever happened?! Like,  

  • have frameworks merged ever and became  just better? That's a singular story too.

  • We had a competitor. Merb came on the scene asyoung upstart Ruby framework that challenged Rails  

  • by being faster, lighter, slimmer, doing lessKind of the Rails to Rails itself. And it lit a  

  • fire under us as Rails developers, we wanted those  things too. And we felt like we had those things  

  • to offer, and it was a competitor that really  showed us another path forward. And Yehuda and  

  • Carl from the Merb core team showed us the wayWe put a a significant effort into re-engineering  

  • the internals of Rails to be configurablerecomposable, modular, so that you could build  

  • a framework like Merb from it. The Rails and  Merb teams talked and decided to merge together.

  • This Ruby approach, this Rails  approach, for some people 

  • not all, not most, it's not better. But for  some people it is a hundred times better.  

  • It's not a bit better. And this is why you  see the bifurcation of this thing, this is  

  • why you see the love and the hate, and very little  indifference. Most technologies that exist in the  

  • world is like a small group of people who really  like it, because they have a type of problems  

  • that are being solved. And most of the spectrum is  indifference because not relevant to you that this  

  • exists or is good or bad, doesn't matter. Railspeople have very strong opinions about it, because  

  • it just it comes from a different place. I think that's precious, and exciting. It's been,  

  • you know... honestly like an honor  to be part of. It's just like, again,  

  • it's been important. I know these terms are so  weird. It's so weird to talk about an honor to  

  • hang out in a IRC channel that you got invited  to, but, man, it was! Like, this is the most  

  • special. I would be a completely different human  being, at a completely - my life would not have  

  • gone the way it did if I wouldn't have, if some of  those dots I'm now looking at and can connect in a  

  • rearview mirror would have gone any which other into another way. So, deeply thankful for that.

  • Just the the community that we were building,  

  • the friendships that we shared. And it's  like, we had always been this team. It  

  • just felt so natural and so exciting. And  I had never had anything like that before,  

  • to that degree. And it was really fulfilling  in a way that nothing had fulfilled me before.

  • Seeing the Rails community  grow and seeing everybody,  

  • seeing others have that kind of experience  of it's all it's theirs. It's individual.  

  • Each person has the opportunity  to be in a place where I was,  

  • and I can help create an environment that's there for them and supports  

  • them and respects them. But that's all  I can do. And, I have just I have a deep 

  • appreciation for others being able to share in  that with me, and whatever small part I've had,  

  • it's been the experience of a lifetime.

  • Things like Rails, things like Basecampthings like 37signals. You can't plan these  

  • things. These things don't happen  because you set up a business plan  

  • or something in advance. These things  unfold and like anything that unfolds,  

  • it needs time to unfold. And I think that  time proves these things out to some degree.

  • As it says on the website at the moment, Rails  really does allow you to go from Hello World to  

  • IPO with a tiny team. As you get started, we have  a one person framework where a single developer  

  • is able to make a huge amount of progress in  a minuscule amount of time. The community,  

  • the framework, the code base has never  been in better quality than it is today.

  • I have so much respect for what David has builtand what David's approach to leadership. Love it,  

  • hate it and do not deny its effectiveness  and, do not -and this is important- ever,  

  • ever think that Rails is what it is despite  of anything David does. It is what it is,  

  • it's as successful as it is, as good as  it is because of everything David does.  

  • These things are not separableThere is no Rails without David.

  • Ruby on Rails is full of people who were  not trained to be computer scientists,  

  • who are not trained to be programmers, who came  from all walks of life, who simply developed an  

  • interest in creating web applications, were able  to learn how to do it with Ruby on Rails because  

  • it was easy, because it did not require this  extensive background training to get something  

  • going. Ruby on Rails has, from the outsetfocused on making it simple to get started,  

  • because if you can't get started, you  can't keep going. That initial wall for  

  • so many people is so tall. I faced that wall  myself when I was trying and failed to learn  

  • programming several times in my life. Ruby on Rails has to have this kind of slope. You start  

  • down really low, really simple, having to learn  very little, and then you can go all the way  

  • to become the top person programmer in your  company, in your industry, even if you don't  

  • have the credentials. I love that part of Ruby  on Rails. I love the diversity of the people who  

  • have been able to create a career in programming  because of this framework that we've created.

[Music]

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

B1 中級 美國腔

Ruby on Rails: The Documentary

  • 4 0
    daiki takaya 發佈於 2024 年 03 月 04 日
影片單字