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