DHH - Ruby on Rails, 37signals, and the future of web development

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
sometimes you can get cooked in a certain complexity that feels inherent to the platforms that you're in but they're not inherent at all they're temporary bridges that we need to get from A to B and once we arrive at B it requires a certain distaste for accidental complexity to go like hey guys that bridge we can blow it up if we want hello welcome to the dev tools FM podcast this is a podcast about developer tools and the people who make them I'm Andrew and this is my co-host Justin hey everyone uh we're really excited to have DH hron so David is the co-owner of 37 signals uh and CTO it's really really exciting to have you here you are sort of very famously known for creating rails which has been such a tremendously impactful uh tool for the the ecosystem so before we get started is there anything else you'd like to tell our listeners about yourself no I think that's a good introduction I mean it is my life's work ruby and rails been working with both things for over 20 years now and we just celebrated the 20th anniversary of the very first rails application base camp this is also the thing I still work on today so yep the focus of my career it's a huge milestone congrats on that thank you yeah like just to recap like rails is definitely one of the most influential Web projects of our time I mean it's really hard to understate the impact that it's had what was the origin of the tool and when you were first creating it did you have any inkling that it was going to be such a big thing yeah so it got started as essentially hey I can do whatever I want on this project question slash inquiry I had been working with PHP and ASP and a bunch of other tools back in the late 90s early 2000s always as an instrumental thing never as I am a programmer I like to program it was more uh programming is the thing I have to do to get the things I want and that's a fine approach to programming I find no fault in that but after I discovered Ruby in early 2003 and then really put it through its Paces in 2003 building base camp my career just took a completely different trajectory I found out that programming could be more than just a tool it could be evocation a passion a love and all of that really was unlocked through Ruby and it led to the creation of rails as I was trying to use Ruby to create web applications and finding that at the time this is 2003 there a were not a lot of programmers in the west using Ruby for anything commercial and B there weren't a lot of programmers using Ruby period and most of them weren't using it for the web so if I wanted to use Ruby for the web I had to build a bunch of the tooling myself which is exactly what I did and I spent about six months or so packaging all that up creating that as part of the base camp project we first released base camp in February February 5th 2004 and the first version of rails was released just a few months later Ruby on Rails is like famous for being like a complete solution like you want to generate things you got generators you got a whole bunch of features that make your application development like move really fast uh in every other like programming Paradigm I feel like developers are trying to create the uh Ruby on Rails for X experience uh so do you think that any other projects have captured the magic that uh you captured with Ruby on Rails it's funny because in the early days of Ruby and rails before I registered the trademarks and just kindly nudged everyone people literally called their thing Pearl on Rails python on Rails PHP on Rails so there was certainly a lot of interest in trying to recapture some of that magic I'll say there's been a ton of really good Frameworks web Frameworks and web Technologies made over the past two decades that I've worked with Ruby and it's been inspiring to see the different directions people go for me though there all none of them are rails and the reason they're not rails is because they're not Ruby they're not ridden in Ruby Ruby is just uniquely suited for the kind of magic that describes rails this extremely lean text editor friendly IDE not required approach to programming really is a forcing function for getting rid of every ounce of line noise every single character that is not absolutely required to describing the solution to the problem that you're facing and Ruby can do that due to its very convoluted to implement syntax but very easy for programmer to understand syntax this was the reason I originally got introduced to Ruby Dave Thomas and Martin Fowler were using Ruby as essentially the pseudo code language to describe a bunch of programming techniques in the early 2000s for a variety of magazines and I saw this code and said where are all the semicolons where are all the where all the uh parentheses where is all the line noise that I thought you had to have to be a real programming language this looks like something I would write down in English before writing the actual program and I just have found that taking that translation layer away that the programming language actually looks like how I think about programming is an incredibly powerful technique and it's something that's surprisingly difficult to replicate even from a lot of web Frameworks and even languages that are heavily inspired by what we do I mean I love the stuff that going on with elixir with Phoenix and so on but you look at a phoenix program it it just doesn't look like a a rails program it doesn't look like a ruby program it's got a lot of things in it for all sorts of I'm sure very good reasons there's always good reasons for these things right but that's what makes Ruby so unique that Matt's placed in his hierarchy of needs the programmer joy and happiness is number one no other programming language I've ever seen has been That explicit and that determined to put the programmer first most program languages would be like well it's a tradeoff if yes maybe we could do without the semicolons but then there's going to be these edge cases where it's necessary I'm just taking one example here I mean every little bit of line noise or or even large bit of line noise anyone who's done generic programming in in typescript or any type language will go like well yeah it looked like a dog barfed it up but it's really necessary for the compiler to understand that da da and that's all true but it uh it also is why Ruby is so special that Ruby was willing to skate to where the puck was going to be I adopted Ruby when computers were what did I have at the time a G3 800 megahertz iBook something do you have any idea how slow that computer was I mean it's just insane how slow that computer was and it was good enough to run Ruby in literally 2001 right now now what have we've had what have we've been gifted through the advancement in forming sand into these little miracle chips just orders of magnitude more performance orders of magnitude and as we are now facing perhaps an existential um tussle with AI I think it's never been more important that the way we design programming languages is designed for the human first the human needs all the help the human can get if we're going to have any chance to remain not only just valuable but relevant as program and maybe that's a loss cost anyway but at least in the last 20 years that I've been working with Ruby and rails I've seen that bet just pay out over and over again I did a um sort of back at the envelope funny math example a while back several years back actually because someone kept telling me Oh yeah but if you didn't use Ruby you could do with fewer machines and you could save a bunch of money blah blah blah it turned out at least for our company that the cost of running Ruby the over head of running rubing and even the most extreme case I think I compared it to C or something no one's actually going to write a goddamn web application in C but even if they did right it was something like 15% so the cost Delta of using the most luxurious programming language I've ever encountered was just 15% of our engineering budget that seemed like such a no-brainer I mean it's kind of like well you could either get the Toyota yarus or for 15% more you could get a Rolls Roy wraith which would would you rather have the Rolls-Royce has diamonds in its ceiling and it wafts along the road as though you can't hear anyone else but like the yarus is 15% cheaper um that to me I take the Rolls-Royce yeah I I definitely appreciate your sort of aesthetic approach to this so it's like it's the feel as much as everything else and uh there is a real value and terness because there's just the general thing of like the more the more characters there are in the screen the more code you write the more you have to maintain the more opportunity there is for mistake for sure we'd like to thank our sponsor for this week Cod Crafters Cod Crafters makes programming challenges for experienced software Engineers if you're looking for something to do on the weekend and you want to make your programming abilities better they're a great choice they're way better than choosing something like leak code or any of those other challenge platforms on codec Crafters you get to build popular modern Dev tools while learning at the same time you en code in all of your favorite languages they have rust go JavaScript and many more the cool thing about codec Crafters is you build real modern projects so they have things like build your own HTTP server rebuild grep rebuild sqlite I've recently been going through the build your own git Challenge and one thing that I find really cool about the platform is it's not like college like if you are struggling to get the answer it's not like you can't go and look at other people's work so as I've been working through the build your own git I've been reading a lot of the other python code to see what they're doing and how I can translate that into JavaScript I'm still learning and I'm not being blocked so it's a really great experience and it really makes you feel part of a community when you can go see what your peers are doing besides the content even the user experience is targeted towards experience software Developers for example instead of tying you to a custom editor and a browser experience code Crafters just repos you just push code and it runs the test for you you work completely in your own IDE with your own terminal and really just codec Crafters is another origin to push to you get instant feedback and can see how all the tests run against your code it's pretty cool to try out codec crafters for yourself visit codec crafters. deev tools- FM there you'll get a 40% discount and you'll help out the podcast a little bit too do you want to sponsor the podcast head over to Dev tools. fm/ sponsor to apply and with that let's get back to the episode you'd mentioned typescript here so y'all had moved off of typescript recently and you'd sort of written a post about like why you made that decision and it seems like you know in a similar way it's just getting to the to the sort of root of the the core aesthetic the joy that you find and and you know the simpler version of these is that kind of like the the motivation it's funny because that whole debate which blew up for a hot minute as these things do on the internet baffled me that anyone could be surprised that I wouldn't be the biggest fan of typescript I mean I've been declaring my love to Ruby for literally 20 years been one of the biggest boosters of dynamic duck type languages and you're surprised I don't like the Dog Bar it up generic code that you have to write in typescript if you want to create a framework but how is that surprising um so I just thought that was just such a fascinating thing but it came essentially down to that like I do not enjoy writing typescript I actually rather like JavaScript JavaScript as I've said many times is my second favorite programming language it's a distant second but second is still highly rated in my book I've tried a lot of programming language over my 30 years with computers and JavaScript is number two that's pretty good in my book in fact I enjoy writing JavaScript most of the time when I get to write it the way I like to write it which is Manila preferably without a bundler transpiler written directly for the execution context I care about which is the browser and without the nonsense that is the 5 million packages most projects include from npn if you take all that stuff away which is what I would say there was a book famous book I don't know 10 15 years ago JavaScript the good parts the good parts right the good parts for me is modern um JavaScript like es6 esm import maps running it all in the browser without anything but a text editor to prepare that code for execution that is a truly joyous experience typescript spoils a lot of that for me first of all now you're introducing a compile step second of all as I said the code itself ends up being again this is my aesthetic talking here but nasty I find a lot of typescript code nasty to look at nasty to interact with nasty to program in now I understand why there are a lot of people evening I'm a few people but clear there's a lot of people who really like typescript some of it is because they like to program with an IDE they like to have autoc completion they like to use vs code they like to have all of these things and I go like yeah I can totally see how types help that I think language server Protocols are going to sort of bring a lot of that usefulness for the people who want that two dynamically type languages but let's just even take it a face value and say the choice is between Auto completion or not the choice is between using an IDE or text editor and I'm just proudly a text editor person this is why I love Ruby so much because Ruby can be programmed with a text editor with no Bells no whistles and be immensely enjoyable now I've used a lot of IDs in my time the first one I remember just feeling in awe about was intell for Java intellig is a really nice still is a really nice IDE and I completely appreciate why there are folks who sort of like that but to me it's a way to write the Bose code with higher productivity when my main opposition is not so much the productivity part but the vibess part I don't want to look look at it and Aesthetics for me is is right up there near the very top of what brings me joy as a programmer it is to design a piece of code that when I lean back in my office chair and just look at it I go like that is delicious oh I love it I can't move a comma I can't align a equal sign any better than what I have wow this is nice I like that that's I derive so much of my joy it's not just about the outcomes and I think this is where we end up talking past each other there's classes of programmers who will laugh at the idea of placing Aesthetics that high on the hierarchy of needs and like why does it matter the user doesn't see it anyway who cares um I care I care a lot and that care I've put into open source contributions for 20 years my flavor of it I don't Proclaim this is a delicacy for everyone I don't Proclaim that my taste and programming language should govern how everyone programs everywhere um certainly I've I've at least acquired The Taste to realize that that was a bad Instinct even if I perhaps had it in the early days of of advancing Ruby un rails but the magic of working with the webon particular is that the web doesn't care what you write it in which means you have complete freedom which means you can find the perfect programming environment for you the perfect editor the perfect programming language the perfect framework and maybe the perfect framework for you is intellig j2e jbos whatever that is maybe it's vs code and typescript and react and Redux and whatever for me I was just going to claim something that's actually a little up in the air I was going to say it's textmate it's Ruby it's rails now the textmate part is up in the air and maybe we can talk about that in a in a second but finding something that resonates with you it's not frivolous it actually matters to a lot of people to me I credit finding Ruby literally with the infliction point of my career if I'd stuck with PHP or whatever I mean this is counterfactuals but I don't think I would be sitting talking to you here now it would just turned out a different way maybe that would have been fine too I don't know but what I do know is where I've ended up with Ruby with rails has been a two decade plus enduring love affair based in large Parts on the mutual respect for Aesthetics you know I think there's a kernel of a thing here because a lot of folks I mean it's sort of a knowledge thing that we we often write code to be read or we should write code to be read because you do a lot more reading of code than you do writing of code and there is something about that that you know even in the community we see different waves of this um and it may be like language choice and framework popularity but you know even in like the JavaScript typescript world we have seen people as like okay well we'll move away from typescript and we'll just use like js. comments as a way of like giving type hints for libraries and stuff and that's you know a very that's still like a pretty popular thing it's like spelt which is a front and framewor move to that that Paradigm uh so you know I do appreciate your uh approach or I I appreciate where you're coming from with the Aesthetics as being like a really important thing by the way let me let me just arrest that for one hot second JS dog works for you great I hate JS dugs me too I mean that's as warty to me as the rest of the code maybe it's worse to some extent like I find that the Declaration of the comment itself um is just as much a part of the recipe now again that doesn't take anything away from you if you like J Ducks that's wonderful that's great and I particularly appreciate I saw that I forget the guy's name but whoever made swell once um we got this L we're moving off topic he's like this is just your responsible blah blah blah and then you went like well we also did it but we went to JS do and then the thing came out like why because typescript is a pain in the ass to write framework code in it can be and is for a lot of people relatively Pleasant or maybe entirely Pleasant to write client code in I don't think anyone is actually I've have not heard the argument uh typescript generic code is awesome I i' never that is not a sentence that has ever left anyone's lips that I've been priview to where I have heard a million people maybe not a million but a lot of people say Ruby's metaprogramming is awesome I would say that every day of the week I'd credit actually the metaprogramming power of Ruby as perhaps the single most important element of why Ruby looks so amazing why it's so good at writing domain specific languages in because the metaprogramming is so intuitive straightforward and approaching um anyway just as to say all the flavors to me are they're fine I'm expressing my preferences my passion for certain variety of it and I'm finding it odd that that resonates from certain Corners as as as somehow a transgression that like we're not allowed to have that unless that we arrive with the one language the one framework the one approach like we've done something wrong we've gone a off the path like what are you talking about you think all chefs enjoy exactly the same knife made by exactly the same manufacturer no they don't they have their own particular do you think every painter enjoys exactly the same brush and the same formulation of the paints no they don't um so this idea that we can't in good faith argue on behalf of the tools that we like and then let someone's own eyes tell them what shines back brightly to them is an odd one to me and I partly get it I partly get that this whole thing has been and maybe always was a battle of attention and this is what's going on like all these different communities they're all jockeying for attention they're all jockeying for the appreciation of newcomers is they would come in and you get the life BL and I get that and there's also something to it there is a minimal viable Community size I think where it's easy to get things done now I personally don't care at all I mean I care but as a secondary effect I wouldn't choose any different if it was any different evidenced by the fact that I literally was I was going to say the first person who did Ruby commercially for the web in the west that's not literally true um but almost I went literally to the first Ruby conference um that I attended it was the third international Ruby conference which was held in 2004 or 2003 I go to that right this is the Gathering of people who were excited about ruby in America there's 42 people I asked the room how many people work commercially with this language I raised my hand one other person raises as their hand right I would use Ruby whether we were a lot or a little or mediumsized Community because I like like building my own tools now I understand that's not for everyone everyone's going to go like oh I'm I'll just going to start building my in whatever new thing is and I'm going to build it all from scratch so it does matter but I think it matters less than people get it credit for they give it credit as like it's a stack ranking and if you fall out of the top five oh my God what are you GNA do the top probably 50 programming leg maybe that's overstated 40 I don't know exactly where the cut off is somewhere around there they're all viable choices for you to program for the web with and that's why the web is so amazing that's not true if you program native applications for iOS or Android there are absolutely blessed environments when it comes to those closed ecosystems and as it was with Windows the web is different and this is why we should not just appreciate it we should embrace it and we should celebrate it and we should shout from the rooftop how amazing it is that the very first computer I ever owned an armstr 464 is probably connected to the internet somewhere in the world there's a weird freak who get their nerd juices going by connecting a an arcade computer to the internet and having it respond okay 200 to an HTTP get request isn't that just marvelous yeah it's pretty cool we'd like to thank our second sponsor for the week runme dodev when it comes to Cloud infra we live in a fractured and complicated world it's 2024 and we're still storing op stocks and wikis and relying on a bunch of scripts and markdown and fractured repos to facilitate our releases runme wants to put op stocks in your repo directly on alongside directly alongside the rest of your code with runme you can Empower your whole team to be in charge of your infra with simple notebooks create Mission Control dashboards interactive external docs or even operational run books to get started head over to runme dodev so while we're on the topic of kind of like modern takes that you kind of go against we've talked about the aesthetic nature of code but one thing that is the same for all of those types of languages is how it's delivered to the browser and as you said you're an advocate for no builds and to go without bundling so what are the benefits of this way of operating and is there still a place for bundling or is it just no bundling ever so for me I'm done with bundling I bundled uh I came I saw I bundled and I left that is basically the trajectory of the last what is that going to be what was the last bundler like 12 years 15 years you added it in 2019 to Ruby I saw well I mean we go even further back with with webpacker and even before webpacker even before the JavaScript World woke up to bundling we did bundling for JavaScript in the Ruby world with sprockets um and there was a need for that in the early days it was performance with the number of HTTP requests that you could make at one time you had I think four channels so you could basically only open four connections and you had to wait for each of those four connection to download something before you could s the next thing so it really mattered how few requests you asked the browser to make if you could cut it down from 20 requests to those four requests there was a huge performance Advantage so that's what led to the bundling part of it at least in those early days performance now hdp2 has solved that question now there are minute details where sometimes you can argue that the cashing performance is a little better in this regard because it compresses better but then there are other advantages to having many small um files because they expire on their own timelines I think maybe that's just a wash I'm not even going to claim it's better let's just say it's a wash that means you no longer need bundling you no longer need a small number of files to get great performance out of HTTP HTTP basically solve that then the second thing that happened which is I think what we all thought wished for should happen browsers caught up all of the Innovation that happened with pushing JavaScript forward and having polar fills and all the other stuff that was going on we did that because the browsers weren't at the edge right like they weren't ready they didn't have the latest JavaScript application they do now it's really good the the all the Evergreen browsers Safari Firefox and chrome and all the derivatives like Edge and brave and whatnot they all ship with an awesome JavaScript implementation that supports import Maps so you can have full um modern State modern day module management without a transpiler without a bundler I think that's incredible it means that when I write my JavaScript I'm writing into a text file which means again I get to use just a text editor I'm just moving characters around I don't have anything else going on there's no step with that's a performance step I don't actually think for me that was never the main thing and it's it really isn't with es build and Bun they're both super duper fast I think it's awesome that they're super duper fast but the complexity I get to compress from leaving all of that behind is really substantial and I don't think you truly appreciate it until you give it a try especially if you've been cooked in the bundle transpiling world for so long that you forgot what the world looks like outside when you forgot what was or maybe you never knew I mean actually that's perhaps a fairer point the vast majority of programmers who are working with the web today never knew a time before this they weren't around in 2005 six seven8 whatever before all this stuff took off so it is one of those things where sometimes you can get cooked in a certain complexity that feels inherent to the platforms that you're in but they're not inherent at all they're temporary bridges that we need to get from A to B and once we drive would be it requires a certain distaste for accidental complexity to go like hey guys that bridge we can blow it up if we want you may want to keep it and there are cases where it does make sense to keep it but you absolutely don't have to all the new stuff we're building with at 37 signals including the latest product we just released which is a uh campfire a chat tool installable software available at once.com entirely no build not just no build from the JavaScript no build for the CSS there's no SAS there's no post CSS none of that stuff and on the JavaScript stuff there's none of it either now that's me that's what I prefer that comes with a bit of a tradeoff I don't think that model works well if you want to depend on 10,000 P packages in npm you know what that's not super compatible with that I like to work with the web using Hotwire which is I was going to say a minimal JavaScript approach but that's not even true I write a lot of JavaScript stimulus which is the main framework in Hotwire that you use to write new JavaScript in we have a lot of stimulus in campfire thousands of lines actually thousands of lines of JavaScript in campfire because that's how you get like the little minute finate uh Fidelity when it comes to something like a real-time chap I there's a lot of applications who don't even need that who could just go with turbo and write absolutely minimal amounts of JavaScript still get a great uh application out of it but what is true is I don't depend on a ton of other stuff and I totally get actually I don't I was going to say I totally get I don't fully understand it I don't fully understand I was going to say modern but I'm not even sure it's modern the programmer proclivity to want to depend on so many other Solutions like in the abstract it makes sense to me why would I reinvent the wheel someone else already did it and so forth I find that to create the kind of applications that I do I really want to understand what's going on now we can make this a slippery slope into absum and like well you're building in Ruby and that compiles into this and then it's C and do you also want to write it in assembler or even better ones and zeros dude I don't know what to tell you if we're going to get that absurd I just tell you that using a package manager like npm that's not even about the technology of npm it's about the culture of npm it's about is Odd as a package that like half of the ecosystem apparently depends on um I don't think it got it right on the scale of like how many dependencies should we have a few or should we have a many I think I think it's admirable actually to try to push the envelope and see like how many could we have I'm sure there are JavaScript projects out there that probably have tens of thousands of package transitory dependency which it's actually amazing when you think about like that kind of works like I don't know if I want it to work but it does and and that's amazing I don't really like that this is why if you look at our gem file which is what we used to manage dependencies in our applications in Ruby there not that many dependencies I'd say campfire probably has what 20 30 something like that again there's some transitory dependencies too so again not totally fair but it's the orders of magnitudes less than what's going on in the JavaScript World which is again wonderful let's have the variety let's try different things let's uh let's have whatever is it C that still doesn't have proper package managers that everyone agrees on or or whatever they're also that extreme right like I will literally write every compare function I need by my own hands otherwise I don't trust the performance of it and then there's something like Ruby that's certainly further along and then there's like JavaScript 400 miles north of that um that's great but to get back to your PO who still needs a bundler I think if you um if you're writing an entirely uh JavaScript based application both front end and back end you're using react you're using all of npn and you have all these transitory dependencies that's good all right great you use the whole setup you have wonderful tools ESU es bu for me was the first one that really just went like oh man this is so awesome I love it because I've been using weback for a long time right we built it into rails and we even shipped it as part of the default setup and I want to be kind not because it's the kind thing to do but because it's the real thing to do webpack was first weback paved the way weback deserves a tremendous amount of respect for getting us to where we are it was one of those early bridges all this other stuff I don't think he has built what ever excessed if it wasn't for whip pack all the people involved with that should just get our our plaws and our Kudos right now that doesn't mean you have to love it or where the end destination was and I didn't love where weback ended up and in fact no build exists at least in part because I tried to get one of my own applications using my own framework and integration with webpack to work on a new machine after not having worked with it for like a year and a half and I spent literally half a day and was about to throw my computer out the window I like I couldn't get the to work and I just like this is ridiculous if I who build whip Packer Integrations who' been KN deep in all this if I can't make my own project work five minutes after it was written something is deeply deeply wrong and I just went like you know what still works an HTML file from 1995 you take that HTML file you drop it into a modern browser it renders damn near perfect maybe the blink tag no longer blinks but everything else is there that's the enduring quality of no build it's it's the 30-year Vision does anyone even the most Ardent fans of the JavaScript world as it exists today believe that a project made with the most modern techniques as of this moment would still be easy to run five years from now three years from now even think it's possible to get it running 30 years from now come on come on now it's fair to say I don't care like who cares I'll just update all my dependencies and I'm always on it and so on that's fine that's fair it's a tradeoff I kind of care about the other trade of and do you know why I still have applications that were built 20 years ago not only making me money but I keep For the Love of it for the love of Legacy For the Love of Heritage we have a free application called tadalis that was introduced in 2005 it was right at the cusp of early Ajax I think it used maybe the first version of jQuery or something I I forget but it's like it's a Heritage specimens that belongs in the museum except people actually running it today it has something like a last time I looked which apparently was a little bit ago there was a thousand weekly users on this thing we discontinued signups in 2009 that's 15 years ago it still works it still works not only does it work we maintain it I I mean to me that's just amazing and it's amazing in part because this I think is what happens to old people they start appreciating like trees oh my God this tree is like 300 years old Isn't that amazing and I think that's just the natur I didn't care about Legacy when I was 22 I was like new new new right give me new and then you get older and then I think it's that's the circle of life and it's it's it's good I think but then you start caring about Legacy maybe because you realize you're going to die and it won't take that long so you started thinking like you know what um I could like not be around in I don't know X number of years it'd be nice if the things I made were still able to be run this is one of the reasons why I so love Retro Gaming I've spent about I don't know how much money I've spent on retro gaming consoles and setups and whatnot and I actually like the archival part of it better than the actual gameplaying um I wish I like the gameplay a little more but whatever I appreciate the fact that the very first computer game I can remember Yia Kung Fu on the Commodore 64 a machine with 1 mahz CPU in 1984 or I can play that game today do you know what I can't play or use ass sass tool funded by VC's like 18 months ago that is out of business that's closed down every us have been evicted and the data is gone and there's no way for you to run it no way that doesn't seem like a good Paradigm for software development it really doesn't so all right I'll I'll end my monologue no no that's great you know you remind me I read an article just the other day about like there was this racing game that Ubisoft put out and it wasn't even out that long and then they just like oh we're shutting down the servers and like nobody can play it anymore because there was no there was no like access locally so it's just like a game that they released at people ball and now it's gone and it's like that is wild especially because it's like I don't know games have only what feels like recently been getting into the category where you don't own the thing you know you don't own the cartridge anymore but like now it's like you really don't own it you know in a in a real way yes and I think do you know what I this is where we can appreciate modity and also reject it and hate it yeah like I like the fact that when I go to Denmark like my Xbox has all my games and I don't have to load them up into my suitcase and that's good but it's also clearly not good that games not only exist in a way where you don't own them where they don't even like literally exist five minutes late like if Game Pass tomorrow decides to yank one of the games or they lose the contract with whoever's supplying that game is gone I mean the early indication of this was the Kindle I think they unpublished a handful of books they just disappeared could you even imagine that you're buying a bunch of physical books and you're like looking at them go pixelate like Back to the Future Style with the photograph you're like it's just gone like what kind of way is that to live how do we progress as a culture if we have no sense of History if we have no Moorings to what we've made and what we built if it's all just ephemeral and it disappears I think these are just they're not easy questions they're not even easy questions because there are trade-offs there's a reason why SAS became so utterly popular there's a reason why Bas cam made hundreds of millions of dollars as a sass solution for decades because it's got properties people like but I think it's worth interrogating which parts of it don't we like how can we mitigate the parts we don't like or at least provide some modom of Alternatives this is what we're trying to do with ones which is installable web software which kind of sound like an oxymoron except if you remember that like what 40% of the internet runs on WordPress which is installable web software that people run their own server but outside of that little domain and a handful of others most people think of web software they think of SAS they think of something you sign up for and then there's some another company that runs and so forth um and that I think that's out of whack it shouldn't be like 99 .9 versus 0.1 maybe it's 8020 maybe it's 7030 maybe it's 5050 I don't know um but I want to find out and I want to help it get off the 0.1% I want to restore the idea that you can own software maintain it and like it'll still run 40 years from now now maybe this is the time to to do a call back to when I said like what do I really like I like textmate I like Ruby I like rails well the textmate part has come a little bit up in the air um because unfortunately it's the kind of software that works on like one specific operating system it works on the Mac and I've um I've been a huge Apple fan for the longest time I've been Big Mac booster I adopted OS X as it was called with Puma I think that was 10.1 two September of 2001 I think it was like the second release or maybe the third release of it and I evangelized that to the hilts for 20 years and then what happens is like things change over 10 years or 20 years people change companies change Apple changed and Apple has become the kind of company that I would not volunteer to promote these days preferably I'd like to depend Less on Apple so this gives me a problem right I my favorite editor of literally 20 years only runs on this one platform what do we do well one thing is to just realize all right too bad I I love text made more than I dislike current day Apple I'm leaving that option open um the other option is to realize there are other ports of software that have outlived both apple and Microsoft and the Wayan and wax of Empires coming and falling intact and bi is a great example of that literally traces its Heritage back to before I was born I think the earliest was the XE editor started becoming VI in 197 six and it's not just still around and still runs but there's a huge passionate community that have updated it first with BM now Neo Vim talk about Heritage using a damn editor that traces it lineage back like nearly 50 years to the dawn of modern Computing that's a testament that that might be around in 50 years I think that's cool and again it's cool perhaps in part because I'm getting to be an old but I clearly knew Vim is also cool to people who were not just like old um and I think you should always be skeptical about like who's boosting this if it's just a bunch of overly nostalgic old folks who can't move with the times all right that's something but if it's a broader Coalition of people who realize that the same values have enduring content maybe that's something else and I think VI emex 2 for the people who were into that but I've actually used VI so it seems a little easy easier for me to contemplate moving back to VI that's something that all fits inside of this Paradigm of like Heritage software software is a culture a culture we take care of where we don't just throw out all the P what Mona Lisa that is old man someone made a new painting like la like let's put an nft up on the wall that'll last about 45 seconds before that is out of date right yeah I don't think you can build a good culture like that you need you need something you need renewal and you need preservation they the yings and yangs of of moving things forward so yeah you've been posting a lot about like moving off of Apple products uh Apple's done a lot of things recently what do you think's the most egregious thing that they did that kind of like prompted this full move off of their platforms nuking pwa support in safari in Europe or at least announcing that they would that to me was the straw in much the same way that I started collecting the B I really care about in paper after the Kindle incident it was the same thing that made me interested in Bitcoin after Canada did their insane Crackdown on protesters the trucker protest where they were freezing the bank accounts of even supporters where I went like whoa whoa whoa whoa whoa I have a broken mental model of what societies are willing to do in relative peace time uh I don't know what's going to happen if it's not even so relative peace times like things could have gotten a lot worse and I won't legislate all that and I know there are plenty of Canadians who feel otherwise and that they deserved it and whatnot let's not even get into all of that but just let's get into the idea that I realized that I had mental models that were not correct Bitcoin Canadian trucker protest oh my mental model is not right um I'd actually like some digital cash I'd like some cash that can't be confiscated I like the bank account that can't be shut down by the government and now here I have like a modern Western Society proving exactly why that is not just like an abstract concept but like kind of feels real um the Kindle example when those books start disappearing I was like we just went through quite a Troublesome time let's say that in the United States were all sorts of books teetered on both sides perhaps however you want to legislate that as being something that should be memory hold or not even exist like I don't see it as that far of a hop that what got kicked parlor of the internet could get like some unpopular book about some sensitive topic kicked off my Kindle so this disappearance which connects exactly to this discussion we just had about Heritage and culture and permanence and being able to hold a photograph that doesn't disappear in your hand Back to the Future style was what was invoked when Apple nuked something that was already out there that people already depending on and I mean this one feels extra special and personal to me because we literally just launched a product campfire which has a pwa component and for the people who use that on an iOS device in Europe which granted is not a majority of our customer base or whatever but still an important one suddenly saw the rug pulled out from under them and they had no recourse well they had ultimate recourse they could throw their iPhone into the river I hope hope at least two of them do that just for shock effect most of them won't most of them won't That's The Power of modern tech ecosystems incredibly insanely sticky um designed to be so and I saw Apple in its most smug most demeaning most dictatorial entitled image and I went like how is that the company that I evangelized for so long how did it become this villain now some Foss purple person or Richard stallman will see see this is what I literally told you for 40 years unless you have total freedom of everything and you have the source code to all your drivers you are damned to go through this and maybe he was right but I think living that austere of a life with that level of dedication I can have tremendous respect for that again don't even have to litigate the person Richard stalman and all the stuff that's in that category just go to like hey here's at least in its car caricature a person who lived their beliefs with the caveats that are always true with every significant historical figure you can ever dig out of History there's always asteris right it the idea that Apple just controls my world to a degree where things can just disappear out of my hands things I already had not things I asked for I would have liked to see them do but things I actually held and they just went yo this thing no longer exists and and you if you care about it it's just a few years there a few it's unfortunate but uh these things happen what um that was just such a triggering moment now of course had that been a soul isolated incident that had just happened in the vacuum and it was the first time I would have just like that's weird but it wasn't right like Apple has been on this trajectory for quite a while now I mean personally I've had like two major fights with them over App Store access not even App Store access I don't give a about the App Store iPhone access the access for customers that I find to be able to install the software that I make on the devices they paid $1,000 to own the fight over that AIS has been going on for a long time and here comes the final straw where I just go like do you know what I could also just retire like if I don't enjoy what I do this goes to the aesthetic thing if you forced me tomorrow that the only way you could make software going forward was to do typescript in like an IDE with a shitty font on a low DPI display in an open Office I'm planting potatoes that sounds better than that right I don't want to live like that and maybe Again part of it is is is a old and I'm fortunate enough to to do that I don't want to live like that and the Apple thing has brought me much closer to like I don't want to live like that I don't want to live in that realm like that for the rest of my time here let's try some different things even if those different things are worse and they will be apple is really good at what they do they make exceptional computers really good phones now what I found out I switched to Android first that Delta is quite small like it was a little bit shock I've always had an Android phone I've actually have I don't know 20 Android phones testing them and using them um after fortnite got kicked out of the App Store it was the main way I've been playing fortnite with my kids I bought everyone Android phones which is like now my kids love Android phones and think apple is this main villain whenever they see like oh Apple that's the people kicked out fortnite I was like do you know did you like account for that somewhere in your investor perspective that you pissed off an entire generation of Young Folks by kicking out fortnite anyway so I've had Andrew for a long time right I've not had my personal phone number in an Android phone for 10 plus years maybe I think the last time I tried it was a Motorola one of my favorite phones of all time was Motorola for a short moment I think maybe 2010 had this thing where you could build your own phone with literal actual wood I think it was called I forget what it was called it was so damn cool it's like I've owned maybe I don't know 50 phones 100 phones since phones kind of became computers that one phone that Motorola with the oak no it wasn't even Oak it was like a dark wood back that you could design and they had like this studio that were putting together still one of my favorite phones of all time anyway not since that day have I had my primary phone number in an Android phone and and now I do and I'm like oh this is totally fine I I the difference now to an iPhone there's some things I like slightly better about the iPhone there's a bunch of things I like slightly more about the Android including things that surprised me that you don't really learn unless you put your primary phone number into it like Android auto is better than carplay I was like didn't carplay come out first like I that I wouldn't have thought that like the UI dynamics of Android auto would have been better but like okay turned out it was um I really um I don't know if we have video on this but I use this um Samsung um s24 plus awesome it's 192 G which is almost exactly the same as an iPhone 15 Pro but it's a a 6.7 inch screen that gets like 25% brighter which makes it so you can actually play fortnite out on the deck um it's awesome so that part was easy the the other part switching off the mag is hard yeah I'm not gonna lie I I've been trying I mean this is before we started I said I have just computer gear scattered all over my room I have a framework 13 laptop here I have a uh Dell PC there I have two different monitors behind I just have everywhere because I'm like you know what I would like to get off the Mac I really would because we're just not we're not going in the same directions that doesn't mean for eternity I got off Windows back in like 2001 when I got that first iBook right and like now I'm and I've tried windows again I'm like oh windows doesn't suck as much as I thought it did it is still harder and it does kind of suck in some ways but it's also better in other ways like you can actually run real Ubuntu under vsl like encapsulated by itself at almost full Pace full speed that's cool um so anyway I'm in that process of at least locating the exits right sitting in the theater like you know what this might burn to crisp any minute now I need to know where the exit are and one of the exits is like you know what I'm 44 maybe this was a good run time to retire that's a little bit depressing the other exit is like do you know what other people make computers than Apple in fact apple is so Keen to remind everyone no there's no lock in what do you mean you can just switch like virtually no one ever does it maybe like there's some instructiveness in that that is not that actually easy um but I am determined to at least find out whether it was or maybe find something new across the way let me let me show another thing for the longest time my favorite keyboard of all time was this I know a lot of people hate it I love it it is the Apple standard keyboard is the ultra lowest um sort of thing that still works but now I've been trying this look at that mechanical keyboard I've been making fun of people using mechanical keyboard here here I am clicking and claggy listen to that listen to that um so anyway it's a time of upheaval which is also good in itself I just finished a major project and you need to have a hobby and sometimes your hobby is like let's just throw everything you know up in the air and try something new maybe maybe I should use Vim maybe I should uh maybe I should use a PC maybe I should use like Linux let's let's try it all let's try it all well there's been sort of two themes here uh one is sort of Aesthetics and one is ownership uh and uh just a side note I really love framework laptop it's it's a great laptop but generally like you know there is a sense of like we want to own more of our stuff um because of a lot of the things that you've highlighted is because like the the fact that you can just lose access or something can be just deprecated not even nefariously people just like stop supporting it because it gets too old or whatever and then you can't use it anymore um so recently y'all had announced that you're moving off of the cloud um so this was a big thing for me because I used to work at oxide computer company who is trying to build uh a better on Prim computer because it's like feel like that industry has been behind a little bit but could you talk a little bit about sort of the motivations for that and uh where you're at with that decision yes so first there is the direct philosophical line to everything we've been talking about for about an hour that all this sense of Independence the permanence the freedom all these things are so much easier if you're not renting other people's servers managed by other people's admins but you actually own the computers and you own the software that's put on it and you understand the services that run with it if that's the case you just have options you have options to move you have options to do a lot of different things that may you don't have to ask anyone for permission I brought up the Parlor case again not because I have any interest in discussing the politics of it just the overall trend of the idea that the death kneel to that service when was was when AWS kicked them off and if you go back and read like for why that happened I think you have to be rather captured by ideology at least in the year 2024 to read those justifications and go like yeah that's right that seemed Fair they should lose access to the internet what again it's one of those traits are bullets right like one of those uh canaries that just drops debt like the Frozen accounts and Canada the pwa in Europe the books disappearing from Kindle parlot getting kicked off AWS was one of those things where you just like wait wait wait the infrastructure level is not even politically neutral like I get that like you can get banned from Twitter you can get banned from threats or whatever but like your servers get evicted and not for committing a crime but for committing an ideological transgression holy don't those uh those guidelines they could change quite quickly in fact I found myself for a hot minute on the wrong side of those ideological guidelines when we did something controversial some years back and I just went like I don't like that Vision at all I don't like that Vision at all if we're going to be a nation of laws where people can predict like what's going to happen in terms of codes of conduct if you will that are actually written down and passed by legislators this the this is the upside world upside down world this is Bizarro land this is I don't want to be there so there's that that was already simmering it was cooking and then as it always says the spice that makes the reaction go with something as base as money seeing the bills come in months after month from AWS and going like this can't be we got to be just getting over a hump and we will just we will reap the advantages of the cloud in like about 5 minutes and we will find some ways and we will use all the mod just never happened the bills just kept getting larger and larger even as computers are getting faster and faster cheaper and cheaper AWS just goes the other way and you go like how what the what the how's this happening and then just realizing all right all right no no I forget what it was oh it was translating how much money we spent on a weekly basis that's what radicalized me it was taking like an abstract number like we spend $3.2 million on cloud every year to how much that is every week and I just went like those numbers don't mix weak that much what to rent a bunch of computers that number that Weekly number is a very large number that could buy some very large computers like that week that week if we just took that week's number and spend it on Hardware we would get a lot of Hardware a lot of Hardware in fact we spent $600,000 on our Cloud exit um let's do the math here that's two months of rent at 3.2 million now the numbers whatever this is just rough math here right but imagine in two months of rent you're like yeah or you could just own all of it and it'd be yours and you could run it for like five seven years and then not pay anything for those machines like you'll artize them you pay for the the the power and you'll pay for the internet and so on those are not insignificant cost but you wouldn't pay for the hardware and it'd be yours and like kind of no one could take it from you I mean you could get kicked out of a data center I guess but then you could wheel those computers over to Across the across the street to another data center wasn't that what they did with Twitter or something just in the middle of the night a truck pulled up and they just like took pallets and pallets of servers and they moved them somewhere else um so it was money it was philosophy and it's done that's the crazy thing too so we started this we announced that we were going to do it like for real in the beginning of uh 2023 six months later that summer we celebrated pulling out the last major application we had seven that were on the cloud including hey.com our email service that was born in the cloud never lived on Prem all of it got out what's left now is some file storage in S3 and that's basically it and now just those servers we spent $600,000 on like whatever is that going to be like eight months ago or just it's like they're sending us a royalty checks for what a good decision that was every month like hey look at all the money you're not spending with AWS this is yours you could buy ice cream for everyone you could buy a Lamborghini for everyone you could do this you could do that here's a bunch of money you get to keep instead of sending it um this other way in our rough back of the envelope C calculation we were going to save $7 million over five years now I don't know know if you're some huge company that doesn't sound like a lot I realize of course everything is relative so if it's 7 million to me and my scale it's probably two million 200 million to you at your mega scale or some other figure that is proportionately relevant to you um now does this mean cloud has no value everyone should move out of the cloud no it doesn't I think cloud is still wonderful when you want to rent when you don't know whether the thing you're working on is even going to be around in like six months right maybe no one wants this application should you then go out and buy a ton of expensive Hardware like it used to be back in the 90s you know that would be kind of dumb and the cloud is awesome for allowing you to rent a bunch of stuff but it's also really expensive just like renting anything is like imagine you're like hey I I need to um commute 200 miles every day I could either rent a car um for the next 10 years or I could buy a car how much more are you going to pay to rent the car you're going to pay a lot more it's B B rent versus buy economics and I wish more people saw it that way but the cloud marketing has been so incredibly successful I mean Hall of Fame one of the best campaigns ever pulled off anywhere that the cloud providers convince everyone like no no no you're actually too stupid to turn on a computer and connect to the internet don't you worry your pretty little head about that let let Let's us take care of that for for fee for you what do you mean a computer to the internet in this age do you know how dangerous it is to connect a computer to the internet like what we like all did it five minutes ago literally the entire internet as you know it today was a bunch of people bought computers and connected them to the internet like this whole Cloud thing is very modern very recent again because of the way the senority of the tech industry Works a a generation or three of developers had never known anything else and find idea of running their own Hardware is like this uniquely scary I don't know how they built the pyramids like what do you mean plugging in computers to the internet that's just something an API does isn't it yeah so we're out of the cloud we're saving a bunch of money I'm loving it I wish more people would do the math I don't hate the cloud I think the cloud makes sense with very spiky traffic patterns Amazon's original purpose with this was very very spiky traffic patterns or early days stage things where renting is a sound financial decisions and you shouldn't buy but as soon as you have anything even approximating steady state growth and that can still be like hundreds of percents a year not talking about anything just as long as it's like oh maybe it's 100,000% or maybe zero percent yeah okay if you have that variance stick with the cloud as soon as you've been around for like five minutes you're not g to have that level of variance or literally you're one in a billion company start thinking about whether it would make more economic sense to own the computers that you run and then realize all the benefits all the philosophical benefits we haven't even talked about the fact that if Us East one goes down tomorrow like a third of the internet is oops offline like what didn't DARPA design this's amazing wonder that if the Russians nuked DC like the rest of the command structure would still operate because we distributed our Computing and distributed our Network so that individual nodes could disappear and wouldn't take the whole thing down with it yeah they did we should be like lighting scented candles in front of that Eighth Wonder of the world on a regular basis yet we got just go like that's stupid let's just give all our computers to Amazon and put them in Virginia yeah I agree with a lot of points there and I know Justin does too uh we know you got to go soon but we have one question that we like to ask all of our guests we always like to ask a future facing question and I think the question here is obvious what do you think the future of web development is simpler simpler we've gone through 40 years in the desert not literally but metaphorically 40 years in the deserts of needless comp not needless complexity actually that's wrong of necessary but temporary complexity we built Bridges to get from A to B and now we're at B and people haven't realized the bridges aren't necessary in a lot of cases not in all of them let's not be declarative about everything but like where's the pendulum swinging the pendulum is swinging I am banging on that pendulum to swing towards Simplicity that individual programmers can understand the entire system that they're working on that new businesses can start with like one programmers two programmers and build the whole thing that they need without these massive teams of minute specialization well I'm a frontend performance design expert cool all right I hope that's just one of the things you do because otherwise that's not going to fly here um full St in its most glorious sense which basically just full stack is just a buzz word for the whole system can you understand the system did you build or do you need like five brains to even grasp what's going on that's one of the arguments I have with people sometimes over kubernetes for example it seems like yeah it's either a five distributed brain problem to solve a one very smart PhD I don't have any of those two things to throw this problem so I need something simpler that's how we ended up with Kamal built on top of vanilla duck uh something so I say could say dumb this is what people often do they like oh that's just dumb no no simple is not dumb simple is sophisticated it takes hard work and insight to get to simple getting to complex is actually usually the shorter path it is writing the longer letter when you didn't have time to write a short one I want to write short letters I want to compress complexity and I think this damn industry deserves it we need to get get to a simpler place because we're still doing the same thing this is what brings me to tears if we were living in some Space Age VR we're all just flying around floating Matrix simulation where I can't tell the difference between the lady in the red dress in the simulation and reality okay you can make it however the complicated you want but we are rending rendering forms text Fields H1s paragraphs and it is virtually indistinguishable from 19 95 like it's a little prettier the corners rounder at a better Alias translucency layer um there's a little bit less uh back and forth to the server but we're doing the same thing please please it's not it does not have to be that complicated it really does not and we should actually and I include myself in part because that's always a good thing to do when you're part of industry we should be embarrassed that we've let it get this far again I say that and then I also want to respect the bridges and maybe you need to go through embarrassing awkward phases of growth where everything just sprawls out the wooo and no one can understand the whole thing to arrive at the Final Destination maybe there is no other path that it's like one of those adventure books where you can't just go around the Enchanted Forest you got to go through it if you want to get to the castle you want to slay the dragon you want to get the treasury You Gotta Throw go through the Enchanted Forest gotta you gotta wrestle with some goblins here like there's no other way um if that's true I will say the journey has been worth it but we gota we got to get to the goal man I mean it's all dragon and and a shocking number of people in this industry are like dragon's actually kind of nice like if you just take some time to get to know him I mean he'll burn your village to a crisp every now and then but like come on it's a dragon he could fly well I I like the answer Simplicity definitely hearkens back to a lot of your ideals we talked about at the start and I I hope we slay those dragons but that's that's it for uh Dev tools FM this week thanks for coming on David this was a really fun conversation and I had a blast just getting to see your point of view like this thank you for having me on this was really fun yeah thanks [Music] David I
Info
Channel: devtools-fm
Views: 12,677
Rating: undefined out of 5
Keywords: technology, rails, ruby, web development, 37signals, DHH, podcast, dev tools, javascript, typescript, html, software engineering, programming
Id: rEZNbM4MUdo
Channel Id: undefined
Length: 69min 56sec (4196 seconds)
Published: Mon Mar 18 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.