Elm & The Future of Open Source (with Evan Czaplicki)
Summary
TLDRThis episode dives into the challenges of building a programming language, highlighting that the hardest parts are not just about how to code it, but what features to include, the supporting ecosystem, and ensuring its sustainability. Evan Chitz, creator of Elm, discusses experiences and difficulties in maintaining funding and keeping up with growth demands. The importance of a package manager, library support, and community engagement is emphasized. The future urges for full-stack integration with clear error handling to improve productivity and confidence. Potential issues in open source funding are addressed, suggesting the need for a new approach to sustain independent developers.
Takeaways
- 📚 Writing a programming language is not the hardest part; the challenge lies in design decisions and ecosystem building.
- 🎨 Transitioning from a language implementer to a language designer is crucial for success.
- 🌐 A standalone programming language needs libraries, APIs, a package manager, and community support to be considered useful.
- 💸 Sustainability in language development is essential, as passion alone can't pay the bills.
- 💡 The creator of Elm, Evan Chitz, experienced success in designing and building a language but struggled with its sustainability.
- 🌍 Open source funding and the sustainability of open source projects are discussed, questioning its current viability.
- 🧩 Elm's community engagement is not solely based on public perception but on direct relationships with companies using it.
- 📈 For programming languages to succeed, design must prioritize accessibility and immediate usability.
- 🤝 Developers should intertwine strong community support and economic plans when developing open source projects.
- 🚀 The future of programming involves seamless integration across the tech stack, allowing changes to propagate easily.
Timeline
- 00:00:00 - 00:05:00
Writing a programming language involves three main challenges: design, ecosystem, and sustainability. The first two—designing a desirable language and building a comprehensive ecosystem—are achieved through thoughtful planning and development. However, sustainability, or making the project financially viable, remains a challenge, as exemplified by Evan Czaplicki with Elm.
- 00:05:00 - 00:10:00
Evan Czaplicki, the creator of Elm, discusses the difficulty in balancing professional obligations with the growing demands of his language. He realized his work for Elm wasn't aligning with corporate assessments of value, leading him to pause on growth until he could correlate efforts with supporting resources.
- 00:10:00 - 00:15:00
Czaplicki explains his decision to halt Elm's expansion due to the unsustainable nature of open-source funding models, such as donations. He likens his strategy to farming—saving in favorable seasons to endure lean ones—to sustain Elm independently without outside pressure or unrealistic expectations.
- 00:15:00 - 00:20:00
Evan talks about focusing on backend development to enhance his skills and explore new interests. He decided on a more private development approach to avoid premature scrutiny and the pressure of expectations, aiming for readiness before public disclosure.
- 00:20:00 - 00:25:00
The conversation highlights the difficulty of balancing innovation and developer expectations in a public sphere. Czaplicki emphasizes a strategic approach by illustrating the contrast between open, community-based development and protecting independence from corporate interests.
- 00:25:00 - 00:30:00
Evan reflects on the broader sustainability of open-source models, critiquing their vulnerability to corporate outsourcing without fair recompense. He questions whether the open-source approach serves the independent creator’s interest, suggesting alternative models like Engine X’s tiered offerings.
- 00:30:00 - 00:35:00
Discussing Elm's approach to error messages led Evan to emphasize user-friendly software development experiences, drawn from personal learning frustrations. He underscores the importance of navigable error feedback to enhance productivity and user confidence.
- 00:35:00 - 00:40:00
In reflecting on open-source maintenance, Evan acknowledges the personal cost and time pressures it places on developers. He advises caution, aligning personal and financial realities with open-source contributions. He advocates for supportive partnerships in the community to balance contributions.
- 00:40:00 - 00:45:00
Evan explores the potential of comprehensive type-safety across full systems stacks to meet company needs, aiming to integrate consistent compiler analysis from databases through to front-end. This approach seeks to minimize interfacing errors, offering a seamless development experience.
- 00:45:00 - 00:50:24
The interview concludes with reflections on value capture in open source, personal learnings from Elm, and aspirations for future projects. Evan’s insights stress the importance of pragmatic strategies, community feedback, and sustainable practices both in project management and broader industry contexts.
Mind Map
Video Q&A
What are the main challenges in writing a programming language?
The main challenges include deciding on design features, building a supportive ecosystem with libraries and APIs, and ensuring sustainability through economic support.
Who is Evan Chitz?
Evan Chitz is the creator of the Elm programming language, known for its excellent design and error handling.
What is necessary for a programming language to be truly useful?
It requires a robust core library, file system API, possibly a web library, a package manager, a registry, and strong community support.
Why is sustainability important in language development?
Sustainability ensures that developers can continue their work and support themselves, as passion alone does not cover costs.
What issues does open source funding face today?
Open source funding struggles with sustainability, and there is a discussion about whether the dream of open source is viable when relying on donations or corporate sponsorships.
What has Elm achieved despite its challenges?
Elm has advanced in language design and developed a strong ecosystem but struggles with financial sustainability.
What role does community support play in a language's success?
Community support provides help, resources, and vibrancy, which are crucial for the language's growth and adoption.
How can programming improve integration across the tech stack?
By ensuring type safety and synchronization from front-end to back-end, making system changes reflect immediately and clearly.
How should developers approach open source work?
Developers should ensure there is a path for their contributions to support them economically and not rely solely on volunteerism.
What important design consideration can undermine a language's adoption?
Failing to prioritize ease of use and developer experience can hinder a language's adoption, as immediate accessibility is key.
View more video summaries
MATATAG Curriculum K to 10 Curriculum K to 12 Program Department of Education
Cara Pidato Bahasa Inggris (Tips Public Speaking)
How To Get Lean & STAY Lean Forever (Using Science)
Is Adding Your Child to Your Title a Bad Idea?
What is the Best Toothpaste? (according to a dental hygienist)
What is Stunting?
- 00:00:00there are three hard parts to writing a
- 00:00:02programming language and none of them
- 00:00:04are writing a programming language
- 00:00:07because there are plenty of good books
- 00:00:09and courses online that will teach you
- 00:00:11how to do it heck I can teach you how to
- 00:00:14write a programming language of some
- 00:00:16quality in a couple of hours now what
- 00:00:19makes it hard are one what programming
- 00:00:23language do you actually want to write
- 00:00:25what are your design ideas what good
- 00:00:27things are you planning to make easy
- 00:00:29what bad things are you planning to make
- 00:00:31hard job one is to graduate from
- 00:00:34language implementer to language
- 00:00:37designer and then the second thing is a
- 00:00:41programming language on its own isn't
- 00:00:42actually that useful you need libraries
- 00:00:45you need the core Library you need a
- 00:00:47file system API maybe a web Library
- 00:00:50whatever database apis whatever people
- 00:00:53are actually going to need in order to
- 00:00:55ship some code which in turn means you
- 00:00:58need a package manager in a package
- 00:01:00registry people are going to want editor
- 00:01:02support LSP a debugger you need a
- 00:01:05community where people can go and ask
- 00:01:07for help you end up having to build
- 00:01:10something really quite big before it
- 00:01:12even counts as a small
- 00:01:15language and then there's the third one
- 00:01:18the third one is somehow you have to
- 00:01:20make it all sustainable you've got to be
- 00:01:23able to pay the bills if you want to
- 00:01:24keep doing it you've got to put food on
- 00:01:27the table and GitHub stars are not food
- 00:01:31well my guest this week is Evan chitz
- 00:01:33he's the creator of elm which is a
- 00:01:35language I absolutely love and I hope
- 00:01:38you'd accept that he did a brilliant job
- 00:01:40of the first two the design the
- 00:01:43ecosystem and he kind of got bitten on
- 00:01:45the
- 00:01:46third being a successful language
- 00:01:49designer is not going to buy you a
- 00:01:51mansion in the Hollywood Hills but it
- 00:01:53should end up paying you more than a
- 00:01:55junior developer who's 12 months out of
- 00:01:57boot camp and it probably doesn't
- 00:02:00probably doesn't even pay that much so I
- 00:02:03knew when I got the chance to interview
- 00:02:05Evan I'd have to start with the question
- 00:02:08what's going on with Elm what's next But
- 00:02:10to answer that we had to get into the
- 00:02:12topic what's happening with elm's
- 00:02:14funding what's happening with open
- 00:02:16source funding has the open source
- 00:02:19developer dream died or was it always
- 00:02:23wrong-footed and if so is there a way to
- 00:02:25get it back on track what's Evan working
- 00:02:27on right now has he figured out how to
- 00:02:30make it sustainable and is he going to
- 00:02:32go for the hat trick let's find out this
- 00:02:36episode was recorded live at go to
- 00:02:38Copenhagen and it was an absolute joy to
- 00:02:40do live so thank you to them for being
- 00:02:42my host and I'm your host Chris Jenkins
- 00:02:45this is developer voices and today's
- 00:02:47voice is Evan chitz
- 00:03:02please welcome Evan and Chris thank
- 00:03:07you so Evan
- 00:03:09chitz who are you right I'm gonna give a
- 00:03:12quick sum you can tell me if I'm
- 00:03:13completely wrong Evan CH blitzky he's
- 00:03:14the guy who created Elm that's true that
- 00:03:17really lovely friendly typed functional
- 00:03:19programming language right thank you
- 00:03:21you're also which I think not so many
- 00:03:23people have realized you're a really
- 00:03:24good thinker about how functional
- 00:03:27programming should impact people h right
- 00:03:30you are you are you are surprisingly
- 00:03:32good at thinking hey this isn't just
- 00:03:34math idea this is a talking to people
- 00:03:37idea and as part of that I think when
- 00:03:40the big book of computing history gets
- 00:03:43written I hope there's a chapter that
- 00:03:45says did you notice around the
- 00:03:482010s programming languages started to
- 00:03:50get much better error messages like new
- 00:03:53ones worried about it and old ones
- 00:03:55started to improve them that's all down
- 00:03:58to you well you would the SP I really
- 00:04:01appreciate you saying that that's
- 00:04:03definitely been one of the things I've
- 00:04:04been most proud of in my work and it's
- 00:04:06been cool to talk to other language uh
- 00:04:09compiler authors and hear them what
- 00:04:11they're working on with their error
- 00:04:12messages and sharing techniques and
- 00:04:15stuff yeah yeah yeah so so this is a big
- 00:04:18topic we need to get into like beyond
- 00:04:20the language talking about people but I
- 00:04:22know the internet will explode with
- 00:04:24comments if I don't start with this
- 00:04:25question right you've just done a talk
- 00:04:28about success stories of that Elm Elm
- 00:04:31hasn't had a release in like 5 years
- 00:04:34that's true what's the state of elm yeah
- 00:04:36so essentially what happened was Elm I
- 00:04:39was developing it as an open source
- 00:04:42engineer um employed by a company using
- 00:04:44Elm a lot and eventually I realized that
- 00:04:48as Elm was growing my ability to handle
- 00:04:52that growth wasn't keeping up right so
- 00:04:54like if I made a contribution that a lot
- 00:04:57of people liked and was really valuable
- 00:05:00that would bring in a new wave of people
- 00:05:01but how I was assessed in my
- 00:05:03professional relationship that had no
- 00:05:05relation on whether there would be uh a
- 00:05:08colleague who could help me with that
- 00:05:10new amount of workload that's coming in
- 00:05:13and so essentially around 2019 2020 I
- 00:05:16realized that
- 00:05:17like I'm going to I'm permanently
- 00:05:20hitting this wall where like my
- 00:05:22assessment is my value to this
- 00:05:23organization and that isn't proportional
- 00:05:25to the amount of work and difficulties
- 00:05:27I'm going to run into as the language
- 00:05:30itself is more successful yeah so I made
- 00:05:32the explicit decision of like I
- 00:05:35personally I can't invest more in
- 00:05:37growing the language until investing in
- 00:05:40that growth also is correlated with an
- 00:05:43ability to support that growth does that
- 00:05:45make sense it does make perfect sense
- 00:05:47and it seems like the classic trap of
- 00:05:48open source for
- 00:05:51sure I don't doesn't sound like you
- 00:05:54found the great secret to getting venure
- 00:05:56capitalists to fund your programing
- 00:05:58language but did you look into like Okay
- 00:06:00so let's make it a community thing or
- 00:06:02let's start the elm foundation and do
- 00:06:05that I yeah I did make a foundation um
- 00:06:08one of the there are a lot of different
- 00:06:10things you can try and I went and looked
- 00:06:13at them and talked to different language
- 00:06:15creators to see like how they feel about
- 00:06:17it and so for me personally going on a
- 00:06:20donation model I felt for me personally
- 00:06:24psychologically I wouldn't be able to
- 00:06:26deal with that cuz the real issue that I
- 00:06:28was having was I had these corporate
- 00:06:30sponsors was um that my value wasn't my
- 00:06:36value to them wasn't the value of my
- 00:06:38technical work it was how they perceive
- 00:06:41me um and in a donation structure like I
- 00:06:45can do technical work that's like
- 00:06:48definitely valuable to a lot of
- 00:06:49businesses but if it's not perceived in
- 00:06:52the right way if it doesn't flow through
- 00:06:53Hacker News and Twitter in the right way
- 00:06:55like that affects my ability to run a
- 00:06:57stable organization where people are
- 00:07:00like happy and secure and feel like they
- 00:07:02have a career um
- 00:07:06so essentially I kind of always thought
- 00:07:09of elm if with like a farmer mindset
- 00:07:12which is to say like in some years you
- 00:07:14have good years you have good crop and
- 00:07:16what you do when that happens is you
- 00:07:18don't go buy a nice car is you save that
- 00:07:20away because one year it's going to be
- 00:07:23rainy one year is not going to be sunny
- 00:07:25so effectively I saved up such that when
- 00:07:28the if if there are bad times I'll be
- 00:07:31able to work through them on my own
- 00:07:33terms so that I'm not putting myself in
- 00:07:36the language in a situation that I don't
- 00:07:37feel is sustainable long
- 00:07:39term um but that like working through on
- 00:07:44your own terms from what I know of you
- 00:07:46as like the guy who makes great error
- 00:07:47messages who wants to talk to people who
- 00:07:49just gave a talk about like why
- 00:07:51functional programming matters to
- 00:07:54non-programmers I would have expected to
- 00:07:56work on your own terms to be much more
- 00:07:58public right you I would I would think
- 00:08:01working on your own terms means
- 00:08:02communicating to lots of people normally
- 00:08:05normally okay and we did have the
- 00:08:06pandemic so maybe that's a fact yeah um
- 00:08:11essentially what I ran into in 2020 was
- 00:08:14I've been working on Elm for 10 years
- 00:08:16and there were all these companies using
- 00:08:18it successfully and when I went to them
- 00:08:20and I said what are you struggling with
- 00:08:22where should I focus my energy the
- 00:08:25answer was always like well it's going
- 00:08:27pretty good we're actually struggling a
- 00:08:29lot with our back end like again and
- 00:08:32again I got that response yeah and at
- 00:08:36some point I kind of you know it's not
- 00:08:38so motivating to say this Project's
- 00:08:40going to take a year and like everybody
- 00:08:41doesn't care and so like and also I've
- 00:08:44been working on it for 10 years like um
- 00:08:48I was ready to try something outside of
- 00:08:52you know optimizing my compiler to be
- 00:08:54better and better but like can I gain
- 00:08:55more skills like can I have technical
- 00:08:57career growth as well and and so that's
- 00:09:00when I started focusing on like what
- 00:09:02would these kinds of things look like on
- 00:09:04the back end but in doing that if you
- 00:09:07say hey I'm going to do that publicly
- 00:09:09you then create this whole world of
- 00:09:11expectations of like it should look like
- 00:09:13this I think it's going to be like that
- 00:09:15and so I kind of thought of it as like
- 00:09:18it's like
- 00:09:20um if a company was going to release a
- 00:09:22new car M and then so they announced 5
- 00:09:25years in
- 00:09:27advance all the features of the car and
- 00:09:29how fast it was going to be and how cool
- 00:09:30it was going to be and then ultimately
- 00:09:33it wouldn't be exactly like that and and
- 00:09:35in the excitement that happened then is
- 00:09:37wasted in that like that excitement
- 00:09:39could have been people going directly to
- 00:09:41try it out yeah and that doesn't happen
- 00:09:43so I think just on a practical level
- 00:09:46because working on a language or backend
- 00:09:48language is such a long-term investment
- 00:09:51and because you kind
- 00:09:52of you don't want to promise something
- 00:09:55that you can't make like I was in a sort
- 00:09:57of difficult situation to work on that
- 00:10:00kind of
- 00:10:01work and meet the needs or the demands
- 00:10:06of everybody else going on and what they
- 00:10:11are looking for in the world does that
- 00:10:12make sense it does make sense and I
- 00:10:15makes you wonder two things like you
- 00:10:19sort of disappeared I thought which is
- 00:10:21entirely your right to do but that did
- 00:10:23you ever feel like you should have uh
- 00:10:26handed it like pass the bat on on while
- 00:10:29you did this other thing um I mean I
- 00:10:33kind of looked at it as I have personal
- 00:10:35relationships with the companies that
- 00:10:37use Elm that I know about and if they
- 00:10:39have anything that they're looking for
- 00:10:41we will talk about it so like the idea
- 00:10:44that uh what a language is is like what
- 00:10:48it's perceived to be online I think is a
- 00:10:51little bit of a
- 00:10:52silly understanding of it and it's like
- 00:10:55having those direct relationships with
- 00:10:57people who are like legitimately
- 00:10:58invested in it like I think works as
- 00:11:01well and so that was kind of the
- 00:11:03attitude I took okay that's fair enough
- 00:11:06so I through the past few years like
- 00:11:07I've kept in contact with these
- 00:11:09different companies and show them
- 00:11:10updates on what's going on and so I want
- 00:11:14them to know like what's happening even
- 00:11:17though it's it's not certain like okay
- 00:11:20this back ending is going to be exactly
- 00:11:21this or whatever yeah okay so that takes
- 00:11:25me to the other thread I was thinking of
- 00:11:27going to the fact that you're in you're
- 00:11:29talking about it openly now suggests you
- 00:11:32are closer to the end of that
- 00:11:33development period than the start yeah
- 00:11:36for sure what's on your mind right now
- 00:11:37what what what are you working
- 00:11:40on to the degree that you're comfortable
- 00:11:42announcing it on
- 00:11:44record basically the core things I'm
- 00:11:47working on I feel confident that what I
- 00:11:50wanted to do I can achieve and it's more
- 00:11:54now saying like Okay how do I get into a
- 00:11:57St where I can present it to people well
- 00:11:58okay um so we're kind of at the start
- 00:12:02like I've been doing little um private
- 00:12:05talks where I'll do a demo and talk to
- 00:12:09people and say hey are you interested in
- 00:12:10this and try to start to work with
- 00:12:13people privately to prove that it works
- 00:12:16and get the Kinks worked out cuz again
- 00:12:18like releasing something like this if I
- 00:12:21go back in time to when I was 22 like
- 00:12:23doing all this work in the open is
- 00:12:24different because nobody knows who I am
- 00:12:26and it's all just you know some weird
- 00:12:28guy posting on yeah and so in this case
- 00:12:33like I didn't want to I don't want I
- 00:12:36don't want the level of scrutiny that
- 00:12:37will come to me until I'm ready I feel
- 00:12:40confident that I can sustain that yeah
- 00:12:43that's fair enough an example of that is
- 00:12:46like
- 00:12:47um I think when Dart came out I think
- 00:12:50they really got slammed because it was
- 00:12:53connected to Google right like if it had
- 00:12:56just been Dart The Language by the guy
- 00:12:59who worked on a JavaScript VM and it had
- 00:13:02somehow been organizationally separate
- 00:13:04from Google I think its reception would
- 00:13:06have been really different and so these
- 00:13:08are kinds of factors that I look at
- 00:13:10what's happened and I say I don't want
- 00:13:11to get slammed like that yeah yeah
- 00:13:14that's saying it comes from Google is a
- 00:13:16really D and they got from a compiler
- 00:13:20author's perspective like people were
- 00:13:22saying really silly critiques so like
- 00:13:26they were like oh the code size is
- 00:13:28really large in the initial release and
- 00:13:30it's like yeah you don't like when
- 00:13:32you're first making a language you say
- 00:13:34well there are problems that are hard
- 00:13:35that I need to know if I can solve and
- 00:13:37there are problems that are known and
- 00:13:38easy and anyone can do anytime and like
- 00:13:41you end up getting criticized on these
- 00:13:43silly ones that from a person
- 00:13:45knowledgeable in the field would be like
- 00:13:48you can't assess it on that yeah yeah um
- 00:13:51but yeah Ian I think we've faced that
- 00:13:53work even those so AR compiler authors
- 00:13:55we have shown a feature in its
- 00:13:57prototypical state a manager and they
- 00:14:00don't get the idea of a prototypical
- 00:14:02state right and yeah and it's very
- 00:14:04particular to the particular technology
- 00:14:07like there is a time to show people
- 00:14:08stuff so okay I'm going to back away
- 00:14:10from that topic a little bit
- 00:14:13respect but I'm still going to approach
- 00:14:14it from another angle right so um I if I
- 00:14:19want to know where hascal thinks
- 00:14:21programming is going I go and read
- 00:14:23academic papers true if I want to know
- 00:14:25where Unison is going well I can pretty
- 00:14:28much guess that it's as much
- 00:14:29collaboration as it is functional
- 00:14:31programming right so my question is
- 00:14:34without detailing your personal plans
- 00:14:36where would you like programming to get
- 00:14:39to in the next five 10 years what do you
- 00:14:41think we're still
- 00:14:43missing I mean I I I have a you know
- 00:14:48somewhat provincial answer it's not like
- 00:14:50a big idea thing but it's just like for
- 00:14:52the companies that I think have seen
- 00:14:54success with functional
- 00:14:56programming having that type safety flow
- 00:14:59through the whole stack through the
- 00:15:02whole system where it's like if I can
- 00:15:03make a change in my database and see the
- 00:15:06nice helpful error message in my front
- 00:15:08end and in my server is like I think
- 00:15:11that could be really huge and that's
- 00:15:12something that a lot of the companies
- 00:15:14that I like talk to really want and it
- 00:15:18feels like there's efforts all over to
- 00:15:19try to obtain that through like we write
- 00:15:22these contracts we use these data
- 00:15:23interchange
- 00:15:25formats um and so for me having uh
- 00:15:29compilers that can actually analyze the
- 00:15:31full system uh is something I'm excited
- 00:15:34about okay yeah yeah
- 00:15:36that's there this reminded me of your
- 00:15:38talk in which you had a number of case
- 00:15:40studies was like they had Elm on the
- 00:15:42front end it was great they had
- 00:15:44something else in the backend maybe that
- 00:15:45wasn't so great and the interface
- 00:15:47between the two of them was broken
- 00:15:49that's where they would see errors for
- 00:15:51sure for sure um so you are thinking of
- 00:15:54taking your success in the front end and
- 00:15:56capturing more l
- 00:15:59well I don't I don't personally see it
- 00:16:01that way for me it's more of like I have
- 00:16:04a career as a compiler author and like I
- 00:16:08want to have career growth and do
- 00:16:09interesting work and this is interesting
- 00:16:13work that I think can be valuable to
- 00:16:14people okay are you rethinking value at
- 00:16:17all what do you mean what do you mean I
- 00:16:19mean um as a compiler author it's very
- 00:16:22easy to be poor and unheard of yeah I
- 00:16:26agree with that and you are you thinking
- 00:16:29there there's a certain amount of
- 00:16:30reputational success you have thanks to
- 00:16:34Alum is that what do you what do you
- 00:16:37think the success of your next step as a
- 00:16:40compiler author assuming it happens what
- 00:16:43would it look like will money be a
- 00:16:46factor will the ability to carry on
- 00:16:47being a compile author be a factor will
- 00:16:49number of people who use it and love it
- 00:16:52yeah I
- 00:16:53think for now the best I can say is I
- 00:16:56did a
- 00:16:57talk the strange Loop called the
- 00:17:00economics of programming languages that
- 00:17:02kind of lays out the challenges you
- 00:17:07face
- 00:17:09uh in an environment where like there
- 00:17:11are big players who can essentially
- 00:17:13whatever thing valuable thing you're
- 00:17:15doing in open source they can come and
- 00:17:17capture it and have all that money flow
- 00:17:19to them so like uh
- 00:17:24how I I Look to like
- 00:17:27database uh projects where they often
- 00:17:30have models where they're able to
- 00:17:32protect themselves
- 00:17:34from Amazon and still be able to support
- 00:17:37the database that they're working on so
- 00:17:39like uh maybe an example of this is like
- 00:17:41engine X I don't know if people know
- 00:17:44this but like engine X is open source
- 00:17:46but there's
- 00:17:47also an engine X pro and they've done a
- 00:17:51really clever thing of like basically
- 00:17:54there are certain things that only
- 00:17:55companies only large companies want and
- 00:17:58no one else would even think about them
- 00:18:00or know that they exist and so those are
- 00:18:02the things that is in the pro version
- 00:18:04and so there's ways to draw lines like
- 00:18:07that and to be
- 00:18:08clear Elm is open source it always be
- 00:18:11open source I'm not talking about Elm
- 00:18:13we're not talking about Elm Pro yeah no
- 00:18:15no no no absolutely not um and I don't
- 00:18:18want anyone to think that that's not
- 00:18:19going to happen Elm is bst3 it'll always
- 00:18:22be um front page hacking news tomorrow
- 00:18:26Elm Pro is
- 00:18:27coming don't do this to me sorry so what
- 00:18:31are you what what are you
- 00:18:34saying I did a talk a year ago that I
- 00:18:37think lays out the challenges in in the
- 00:18:40in a way that I'm comfortable talking
- 00:18:43about okay I'm not here to make you
- 00:18:45uncomfortable I'm here to pick your
- 00:18:47brains on interesting things so let me
- 00:18:49back away from that topic
- 00:18:51respectfully and talk about I I there's
- 00:18:55another way that I can say it which is
- 00:18:57like I think
- 00:19:00when you go and publish code for other
- 00:19:02people to use you're really putting
- 00:19:04yourself out on a limb to say like I
- 00:19:06trust that the people Ben benefiting
- 00:19:10from this will take care of me and what
- 00:19:13I kind of got the message with Elm was
- 00:19:16that the that's not true you know like
- 00:19:20when you have a venture back Silicon
- 00:19:22Valley company like they're in their
- 00:19:25list of priorities like taking care of
- 00:19:28you and doing the right right thing is
- 00:19:29not like that high yeah the are
- 00:19:32horrified by this thought they never
- 00:19:34considered it that yeah so that's like
- 00:19:37part
- 00:19:38of you know like for me as a programmer
- 00:19:42who's excited to share ideas like I want
- 00:19:44to just share the idea but at the same
- 00:19:46time like I also need to protect myself
- 00:19:50from you know people who say they
- 00:19:52self-identify I'm a capitalist I'm a
- 00:19:54venture capitalist who want if there's
- 00:19:58free value they'll take it you know yeah
- 00:20:00um so it's like a more complicated thing
- 00:20:02than
- 00:20:04just this old discussion of like well
- 00:20:08Eric Raymond in 1990 said d d d and so
- 00:20:11like that's the only framing we can use
- 00:20:13to analyze these projects yes yes okay
- 00:20:18it's it's reminding me of I used to do a
- 00:20:20lot of Open Source stuff and yeah one
- 00:20:24thing you realize doing open source is
- 00:20:26like people will assume your promis to
- 00:20:29maintain things forever for free and
- 00:20:31provide features for free forever and
- 00:20:33that was kind of fun when I before I had
- 00:20:35kids and when I had kids the price of
- 00:20:38one spare hour went to Infinity yeah and
- 00:20:41suddenly I realized the economic
- 00:20:43agreement yeah and I mean I saw that
- 00:20:45with as people in Elm World got older
- 00:20:48and had kids is like you start having
- 00:20:51this decision in your head is like I can
- 00:20:54handle this incoming request or whatever
- 00:20:58or I can spend time with my son or
- 00:21:02minutes of sleep and it's like on what
- 00:21:04basis can I say that talking to the
- 00:21:07stranger is more important than and it's
- 00:21:10just like you can't do that and so
- 00:21:12it's um that that's another reason why I
- 00:21:15felt like having some kind of
- 00:21:17organizational solution was important so
- 00:21:20that like I mean I at some point I
- 00:21:22talked to a CTO of a company that were
- 00:21:25using Elm and we were talking about like
- 00:21:28we can do some kind of
- 00:21:31cultural investment like get things
- 00:21:34going get blog posts going and I was
- 00:21:37like kind of had a limit of like I don't
- 00:21:39personally ask people to do open- Source
- 00:21:42work and I say specifically if you're
- 00:21:44having
- 00:21:45fun I encourage it but once you stop
- 00:21:48it's like this isn't a like people will
- 00:21:52take things from you legitimately and
- 00:21:54like you have to be able to protect
- 00:21:55yourself so just because of the
- 00:21:57experiences I've had
- 00:21:59I don't want to then turn around and
- 00:22:01walk someone else down that same path
- 00:22:03that I went down and the CTO was like oh
- 00:22:06but I think they would do it for
- 00:22:07free right and it's like and that's that
- 00:22:10was exactly the issue that I had through
- 00:22:13my career of
- 00:22:15like I I literally just heard exactly
- 00:22:18what you said about how this messes up
- 00:22:20people's lives but it's like yeah but
- 00:22:21like who cares yeah
- 00:22:25yeah we definitely see that in the
- 00:22:27industry and I don't I don't see a
- 00:22:30solution so I'm not going to spend too
- 00:22:31much time asking asking you if you have
- 00:22:34an absolute solution to
- 00:22:36it okay actually I I I would like to tr
- 00:22:41share some thoughts there so I think
- 00:22:44part of what had been so powerful about
- 00:22:46open source is that it captured this
- 00:22:49kind of like anti-corporate sentiment
- 00:22:52but when you go to the founding
- 00:22:53documents it really is from a
- 00:22:56specifically libertarian perspective and
- 00:22:59like Eric Raymond like has said in
- 00:23:01interviews like maybe this is a way to
- 00:23:04smuggle my values into these corporate
- 00:23:07structures and have them run in a
- 00:23:08specific way and so I think it's
- 00:23:11ultimately a a a politically specific
- 00:23:14analysis of our industry and for me
- 00:23:18personally I look at it a little
- 00:23:21different in the sense that like I think
- 00:23:23a family business and a publicly traded
- 00:23:27business and and um are are
- 00:23:31categorically different entities right
- 00:23:33like and so once you start doing a more
- 00:23:37thorough analysis like the energy that
- 00:23:40is against like large companies taking
- 00:23:43advantage of small people it's like you
- 00:23:46can have a more
- 00:23:48interesting um conversation than just
- 00:23:50like is the code free or is the code not
- 00:23:52free it's like are we able to support
- 00:23:55small
- 00:23:56creators or not you know yeah and I mean
- 00:24:00one classic issue when you have a system
- 00:24:03that doesn't have any kind of like power
- 00:24:07distribution analysis is that it ends up
- 00:24:09being very favorable to powerful
- 00:24:11institutions right so like if you have a
- 00:24:15open- source project with one developer
- 00:24:17and then you have a organization that
- 00:24:20can say here are six people who can
- 00:24:22replicate that or just take the code
- 00:24:24wholesale and add on to it and we have a
- 00:24:27marketing team and D D D D
- 00:24:28and it's like is that in the original
- 00:24:31Spirit of like being anti-corporate that
- 00:24:33that is like explicitly permitted in
- 00:24:38the the way that we generally think
- 00:24:40about things based on this old uh
- 00:24:44writings from 1990 or whatever yeah so
- 00:24:46maybe you're saying we need we need to
- 00:24:49kind of update the open source mindset
- 00:24:53how how I think of it is like I
- 00:24:56think we're seeing a lot of
- 00:24:59creators like get burnt out and run into
- 00:25:01these walls and I think ultimately like
- 00:25:04it's a failure of the analysis of the
- 00:25:08industry that if the goal is to have
- 00:25:11like independent creative programming
- 00:25:14work like this isn't sufficient to
- 00:25:17sustain that and make it healthy for
- 00:25:20those people and so like I think you
- 00:25:22know there's this really interesting
- 00:25:24video of Eric Raymond where he tell he's
- 00:25:27telling this story of like like I was at
- 00:25:29Microsoft for some reason and some you
- 00:25:31know stuck up looking VP got on the
- 00:25:33elevator with me and he says who are you
- 00:25:36and he's like I thought he had some
- 00:25:39pretention around him and he says I'm
- 00:25:42your worst
- 00:25:43nightmare and I I mean just watching it
- 00:25:46I'm just
- 00:25:47like that's you know this life isn't
- 00:25:50Star Wars like this isn't how it works
- 00:25:54and then you know now 30 years later
- 00:25:57like it's not their worst nightmare like
- 00:26:00they bought GitHub they you know and
- 00:26:03when you go to the original writings
- 00:26:05like he's saying look this isn't
- 00:26:08about
- 00:26:09um code should be open source because
- 00:26:13that's like the right thing he's saying
- 00:26:16it should be open source because that's
- 00:26:17better for business like I forget which
- 00:26:19essay he writes that his like here are
- 00:26:21the six scenarios where it's just better
- 00:26:23for business and like on top of that all
- 00:26:27these cultural
- 00:26:28elements are put But ultimately like we
- 00:26:32are now multiple decades later and like
- 00:26:35it wasn't the worst nightmare of
- 00:26:37Microsoft like all the big companies
- 00:26:40that are able to like take advantage of
- 00:26:41things are have embraced it and so like
- 00:26:44if our initial thing is like to be
- 00:26:45anti-corporate it's like we have to look
- 00:26:47at ourselves and be
- 00:26:48like on what level is this way of seeing
- 00:26:51the world like serving us yeah yeah we
- 00:26:53definitely hit the point we definitely
- 00:26:55made the case for all the different ways
- 00:26:56open source is better for business maybe
- 00:26:58we forgot to make the case for why it's
- 00:27:00better for us well yeah but yeah for for
- 00:27:02independent people yeah yeah yeah okay
- 00:27:05um we've talked more about business than
- 00:27:07I expected to but I did expect to talk
- 00:27:10quite a lot about getting beyond the
- 00:27:13code so the other thing I really want to
- 00:27:15talk to you about is we have this thing
- 00:27:18of value we have this thing of Great
- 00:27:20Value called functional Programming type
- 00:27:22functional programming if you want to
- 00:27:24get into that it's distinction right and
- 00:27:26we are definitely struggling to
- 00:27:29disseminate the value of that idea out
- 00:27:31to the world and I know you've got
- 00:27:33you're really good at thinking and
- 00:27:34empathizing with the other side of the
- 00:27:38wall so give me some ideas on how I can
- 00:27:42do a better job of sharing the thing I
- 00:27:44think is absolute Gold Dust with the
- 00:27:47industry well I'll say I think like I
- 00:27:52I'm always very positive towards
- 00:27:54languages whenever I look at a language
- 00:27:56I try to see what's great about it and
- 00:27:58and I try to evaluate it based on what
- 00:28:00the language author wanted to do so
- 00:28:03there'll be languages where everyone's
- 00:28:04like ah that language is suck so let's
- 00:28:07take PHP for an example like it's hard
- 00:28:09to find a real
- 00:28:11Enthusiast at least I don't run into
- 00:28:14them often but when you say what from a
- 00:28:17language design perspective is so
- 00:28:20special that made this such an
- 00:28:21influential and useful thing and it was
- 00:28:24the directness of like I want a website
- 00:28:26I have a website and I think when
- 00:28:31particularly in type functional world
- 00:28:34people can get distracted by like the
- 00:28:38particular language design details and
- 00:28:41Overlook like like in rub on Rails I
- 00:28:45think a big moment for it was like uh
- 00:28:48setting up a website in 15 minutes
- 00:28:49there's like some video where it's just
- 00:28:51like I don't have a website I have a
- 00:28:52website and so I think that immediacy is
- 00:28:56something that for cult
- 00:28:58reasons we Overlook in the typed
- 00:29:01functional world and
- 00:29:04like working more there I think would
- 00:29:06have big effects so I use has all the
- 00:29:09time and I love it and I you know I
- 00:29:11think it's great um that said I do write
- 00:29:14some of my own like core libraries for
- 00:29:17the kind of work that I want to do and
- 00:29:20there's stuff that you know I want to
- 00:29:22use the standard op SSL
- 00:29:27Library so I write C bindings to it and
- 00:29:29I do that for myself but like if we're
- 00:29:33trying to have that immediacy like you
- 00:29:35can't say well first you choose the sslc
- 00:29:39library that you prefer you learn so are
- 00:29:43you talking I thought you were going to
- 00:29:45be talking about the immediacy of
- 00:29:48understanding these ideas it sounds more
- 00:29:50like you're talking about we need to
- 00:29:51improve the developer experience yeah
- 00:29:53the the immediacy of taking like for
- 00:29:56most program it's like I'm not coming
- 00:29:59here to like be on a learning adventure
- 00:30:01it's like I'm coming here to like I'm
- 00:30:03excited to make an app or to make a
- 00:30:04website or to make a server and like if
- 00:30:08you can do that in five minutes like all
- 00:30:10this other learning becomes like an
- 00:30:13exciting side quest but like if you're 3
- 00:30:17weeks in and you still haven't made the
- 00:30:19website it's like just am I ever going
- 00:30:21to get there like it's it can be really
- 00:30:23discouraging I think I mean that was
- 00:30:26something from the beginning of elm I
- 00:30:30had a online editor and it was like I'm
- 00:30:32not going to post about this until I
- 00:30:35have that editor working so that someone
- 00:30:37can go from the idea to directly like oh
- 00:30:39I made it oh I changed it like I can
- 00:30:42actually feel what this feels like yeah
- 00:30:44yeah and I think for some of the more
- 00:30:46advanced ones like getting to that point
- 00:30:48that like you and I have experienced
- 00:30:50where it feels great takes too long
- 00:30:53basically yeah yeah there are some
- 00:30:55languages that say oh you want to use
- 00:30:56this language okay go downlo our package
- 00:30:59and it's not going to school cuz you
- 00:31:00don't have this
- 00:31:02Lipsy exactly exactly so yeah I think
- 00:31:05that's huge
- 00:31:07um and it's not like that glamorous I
- 00:31:10mean I think that you see that at Jam
- 00:31:11street it's like they ended up making
- 00:31:13their own core library and own like
- 00:31:16separate from the standard one um and
- 00:31:20it's like it is a big investment and I
- 00:31:22understand like if the core developers
- 00:31:25are academics or you know having some
- 00:31:29kind of industry relationship or
- 00:31:31consulting or to support themselves then
- 00:31:34it's hard to do that but also I feel
- 00:31:37like that's the path I don't know okay
- 00:31:40yeah in that case let me ask you a more
- 00:31:43specific design question because you're
- 00:31:44also a very good language designer I'm
- 00:31:47going to frame it as the Ruby on rail
- 00:31:49I'm going to frame the Ruby on Rails
- 00:31:51problem right the amazing thing about
- 00:31:53Ruby on Rails is you type a few lines of
- 00:31:55code and you've got website thing I
- 00:31:57always hated is you type a few lines of
- 00:31:58code and you've got a maintenance
- 00:31:59problem sure right and you have to make
- 00:32:02whenever you're trying to design for
- 00:32:04accessibility and simplicity you have to
- 00:32:07make some really good decisions or all
- 00:32:09you do is dumb it down and lock people
- 00:32:11in and I think Elm has made some good
- 00:32:13and hard decisions about what to worry
- 00:32:16about and what not to worry
- 00:32:18about
- 00:32:21so I I want your design thoughts on how
- 00:32:23we can
- 00:32:25like which parts of how do we do a
- 00:32:28developer experience that gets easier
- 00:32:31without getting sure toy tank yeah so I
- 00:32:35think python is a great example of this
- 00:32:38because the python that everyone thinks
- 00:32:41of is like a small subset of all the
- 00:32:44things you can do in Python and how
- 00:32:46inheritance works and all these kinds of
- 00:32:47things but when you come you say oh it
- 00:32:50looks really nice and light and there's
- 00:32:52a fort Loop and there's a if and that's
- 00:32:54kind of it you know oh there's an array
- 00:32:56okay um and so I think just because of
- 00:33:00the historical development of that
- 00:33:02language the initial resources that
- 00:33:04everyone goes to are talking about like
- 00:33:06an early python that was quite minimal
- 00:33:09features and then as they as someone
- 00:33:12gets deeper into their path with it
- 00:33:14they'll find out about this other stuff
- 00:33:15but by and large people stay in that
- 00:33:17simple area and so I think having
- 00:33:22something like that in a language like
- 00:33:23hasel where it's like look you don't
- 00:33:26know about
- 00:33:28monads or applicative down we're gonna
- 00:33:31put that aside as like an expert area
- 00:33:34and say if you're just here to make a
- 00:33:36website you're just here to make a
- 00:33:37server use these libraries don't think
- 00:33:40about any of these extensions like these
- 00:33:43are
- 00:33:46for specific scenarios you know which
- 00:33:49isn't to say to be judgmental of them I
- 00:33:52mean I use weird ones but like if I was
- 00:33:54saying hey I'm going to I'm now employed
- 00:33:57to
- 00:33:58uh build a organization of hle
- 00:34:02programmers I'm going to specifically
- 00:34:03say like here are the boundaries of what
- 00:34:05we do in a like business environment and
- 00:34:09we can get these benefits but like for
- 00:34:11the purposes of when people come and go
- 00:34:14we need to onboard people like we can't
- 00:34:17have that level of complexity here and
- 00:34:19you see that in like uh C world where
- 00:34:23like there every feature you want is
- 00:34:25there but every company has their own
- 00:34:27style guide of like this is what we use
- 00:34:28and this is what we don't and so having
- 00:34:31like a basic default of
- 00:34:33like if you're here for the immediacy of
- 00:34:36get it up don't have a maintenance
- 00:34:39burden be here and don't listen to other
- 00:34:42people um and as you build that
- 00:34:45expertise maybe venture
- 00:34:47out so he saying have a small subset
- 00:34:50that's definitely immediately accessible
- 00:34:52with that but but you can keep that one
- 00:34:55yeah you absolutely I mean Within my own
- 00:34:58code so like me and my wife are both
- 00:35:00programmers and so when she writes hll
- 00:35:03code for the work we do um she does so
- 00:35:06in a server system that I wrote where
- 00:35:10the routes are done a nice way and it
- 00:35:13has this immediacy like she she learned
- 00:35:15has scho before but she's like feels
- 00:35:18really happy and productive in that
- 00:35:20setting this is an aspect of marriage of
- 00:35:22no
- 00:35:24experience yeah it's also like if you
- 00:35:26say your wife like hey I want to make
- 00:35:29this like multi-year investment in
- 00:35:32something that may or may not work
- 00:35:34out I'm lucky that my wife is like
- 00:35:37that's going to be cool let's do that
- 00:35:39that's pretty nice that sounds like more
- 00:35:42support than you ever got from the ven
- 00:35:43[Laughter]
- 00:35:46capital okay so uh I I want to I want to
- 00:35:50come with that from another angle as
- 00:35:52well cuz um there is definitely a sense
- 00:35:55that more immediately accessible
- 00:35:58languages get success in disseminating
- 00:36:01ideas but I also it makes me think of
- 00:36:03another language which doesn't have
- 00:36:05immediately accessible ideas and yet is
- 00:36:08being very successful and it's rust
- 00:36:11right what's
- 00:36:13your not what's your take on Rust but
- 00:36:15what's your take on why rust is
- 00:36:17succeeding in mind share so going back
- 00:36:22to my personal analysis of Open Source
- 00:36:25when you go look at the history of what
- 00:36:26happened there is
- 00:36:28Netscape was this like huge internet
- 00:36:31company big success story wall Street's
- 00:36:33paying attention they have this IPO it's
- 00:36:36super high and it falls off and part of
- 00:36:40what happens is they have this web
- 00:36:41browser that has all these bugs and it's
- 00:36:44totally bug written internet explorers
- 00:36:46coming for them um and so they say hey
- 00:36:49there are these like nerds online who
- 00:36:51are talking about open source and free
- 00:36:53software and the main thing they're
- 00:36:56talking about is like
- 00:36:58open source is better because all bugs
- 00:37:00are easy if you have enough eyes on them
- 00:37:03and so when you go to those old
- 00:37:06documents you find people explicitly
- 00:37:08saying we're going to open- Source uh
- 00:37:11Netscape as
- 00:37:12Firefox um specifically to get that Free
- 00:37:17Labor you know and they there's some
- 00:37:19documentary where they actually bring in
- 00:37:21someone who's like been working for free
- 00:37:24in some midwest state and so it's like
- 00:37:28explicitly a cynical how do we use these
- 00:37:30people for their expertise to solve this
- 00:37:32business problem that we have and it
- 00:37:34turned out it didn't really work for
- 00:37:36them but the organization that came from
- 00:37:39it I don't I I'm just going to keep
- 00:37:42going is Mozilla and so they kind of
- 00:37:44became the Arbiters of like what open
- 00:37:47source should look like what it should
- 00:37:49be while at the same
- 00:37:51time like they're getting paid by Google
- 00:37:55to so Google can be default search
- 00:37:58so they're saying like open source
- 00:37:59should work this certain way but for us
- 00:38:03these guys pay the bills because they're
- 00:38:04kind of like paying us off to be default
- 00:38:07like it could be anybody right but for
- 00:38:09for for you we don't talk about that for
- 00:38:11you here's how it's going to work and so
- 00:38:13I think there like again going to the
- 00:38:16dart story like a big part of why that
- 00:38:18release was really traumatic and
- 00:38:21difficult was because the CTO of mosula
- 00:38:24came out and like slammed it like mult
- 00:38:27multi paragraph of why it was a horrible
- 00:38:30thing and so I think they have a lot of
- 00:38:33weight in culturally in terms of Open
- 00:38:37Source stuff and they're very trusted
- 00:38:39and the fact that it came out of there
- 00:38:41and that it follows all of the
- 00:38:43guidelines that they Define as what open
- 00:38:46source should be like it on all these
- 00:38:48levels it culturally aligns with what it
- 00:38:52should look like and like no one has to
- 00:38:54worry about where the money comes from
- 00:38:56because no one ever talks about it
- 00:38:57everyone has to think about you know
- 00:38:58what I mean it's like you're an American
- 00:39:01but you've moved to live in Denmark were
- 00:39:03you thrown out for not being capitalist
- 00:39:06enough they they're my wife is Danish
- 00:39:09I'll say that okay okay but there's
- 00:39:10self- selection
- 00:39:13okay so let me ask a couple more
- 00:39:15questions before we turn it over to the
- 00:39:17crowd
- 00:39:19um here's another thing I think about
- 00:39:22you right I have many I have too many
- 00:39:23thoughts about you it's not right
- 00:39:28we can delete that from the recording um
- 00:39:30it's like so you are very much as a
- 00:39:33designer and you're a good design like
- 00:39:35there are some people who are good at
- 00:39:37building compilers there are some people
- 00:39:38who are good at design it's rare you see
- 00:39:40both as a designer it seems to be part
- 00:39:42of your Technique as a designer for good
- 00:39:44systems is to disappear and think and
- 00:39:47then come back when you've got a good
- 00:39:49answer which I Know Rich key would indor
- 00:39:51going to sit in the hammock right
- 00:39:55um but given that you're someone who
- 00:39:58hides away until you've got a really
- 00:39:59good solution why are you so good at
- 00:40:02like human affordances in your designs
- 00:40:05shouldn't you be out there talking to
- 00:40:07people and like doing system there is a
- 00:40:10life accident that happened which
- 00:40:12is what I should have done is gone and
- 00:40:15get a PhD and try to be a professor
- 00:40:17because I love teaching and I love
- 00:40:19sharing my excitement
- 00:40:20about technical things or things I'm
- 00:40:23excited about and by circumstances
- 00:40:26that's not what what happened to me um
- 00:40:30so I think it's just like I really love
- 00:40:33sharing ideas and talking about them and
- 00:40:35that's
- 00:40:36just a baseline true thing so whenever
- 00:40:39I'm feeling sad about things it's like
- 00:40:42oh like being able to talk about
- 00:40:44interesting ideas really always livens
- 00:40:47up but yeah I don't know if that answers
- 00:40:49the question it makes me wonder if in
- 00:40:51order to get more releases out of you we
- 00:40:53should make you more sad cuz when you're
- 00:40:55happy you disappear I mean I think a lot
- 00:40:58of effort's been put into that and i'
- 00:41:00would say it didn't
- 00:41:01[Laughter]
- 00:41:02work okay on that wonderfully note I
- 00:41:06think we'll turn it over to the audience
- 00:41:07for questions has anyone got any
- 00:41:09questions for
- 00:41:14Evan yeah your point about the um error
- 00:41:17handling in Elm and particularly you you
- 00:41:20talked about um your desire to see that
- 00:41:24flow throughout the whole stack um
- 00:41:26immediately resonated with me and made
- 00:41:29me remember an experience I had I know
- 00:41:30where I was and what you in in 97 I was
- 00:41:33working on a Java RMI system and I got
- 00:41:37an error in which is so we have a client
- 00:41:40in a server and the client failed but
- 00:41:43sent me the exception of the client and
- 00:41:46the server that had been marshaled
- 00:41:48through and I almost fell off my chair
- 00:41:49because the previous it was you'd get no
- 00:41:53response and then you'd see um you'd go
- 00:41:56to the logs and you'd see the server had
- 00:41:57crashed and you do Stoke up a debugger
- 00:42:00and so it was such a big jump and I feel
- 00:42:02that perhaps we've gone back to um
- 00:42:05Telemetry and having to sit through logs
- 00:42:08again so kind of so thank you for kind
- 00:42:10of re kind of presenting the importance
- 00:42:13of error handling in terms of human
- 00:42:16productivity but also kind of like
- 00:42:18stress levels and everything like that
- 00:42:20but I would would just wanted to ask if
- 00:42:21there was any influences to you that
- 00:42:24made you consider errors more than
- 00:42:27perhaps other people what were your
- 00:42:28influences yeah so because I learned
- 00:42:32standard in O camel at school and then
- 00:42:35learned Haso kind of as a
- 00:42:37hobby um I faced these like learning
- 00:42:40challenges where I ultimately felt
- 00:42:42really betrayed where like it it had the
- 00:42:46sound of it being complicated and so
- 00:42:49even when I felt I was like I can do
- 00:42:51this I wasn't confident that I
- 00:42:53understood it and so it took like a year
- 00:42:55before I was like oh that's what was the
- 00:42:57whole time and then like 3 years later
- 00:43:00it's like okay Monet Transformers that's
- 00:43:02what it was the whole time and so I
- 00:43:04legitimately was like on a personal
- 00:43:06level I felt really betrayed um
- 00:43:10about my time being or my confidence
- 00:43:13being
- 00:43:15suppressed um the other thing is that
- 00:43:19when I was working at nting one thing we
- 00:43:22thought about a lot is we always kind of
- 00:43:23had to apologize we're like okay the
- 00:43:26error messages are a little
- 00:43:28you get used to them you know and I
- 00:43:30think anybody who learned a camel or
- 00:43:32Haso at University knows like after some
- 00:43:36number of months you look at it and you
- 00:43:38just you kind of get it you know it
- 00:43:40doesn't make sense to you but it's like
- 00:43:41I know what to do now yeah yeah um and
- 00:43:44we really were annoyed that we had to be
- 00:43:47like it'll be fine um so weirdly what
- 00:43:52happened is I was at a conference in
- 00:43:54Beijing weirdly and I was just like ah I
- 00:43:57have some free time I'm going to work on
- 00:43:59getting my error message to go to Json
- 00:44:02and as I was doing that I was like you
- 00:44:03know I could actually this could be a
- 00:44:06lot better and I start just like
- 00:44:07tinkering with the particular
- 00:44:09engineering details of it and it all
- 00:44:12came from that like side route and so
- 00:44:15that's another reason like I'm not so
- 00:44:20giving road maps is that like the road
- 00:44:23map would have said I'm delivering this
- 00:44:24Json feature but what I realized as I
- 00:44:27was going through the code it's like oh
- 00:44:29we can actually give really excellent
- 00:44:31error messages and like I don't want to
- 00:44:33close those possibilities off by making
- 00:44:36Promises of
- 00:44:37like which is more important ultimately
- 00:44:39you know like so I hope I hope that
- 00:44:44answers any more
- 00:44:52questions if you uh had to start over
- 00:44:55what would you do different
- 00:44:59so I
- 00:45:01think it was hard for me to come to
- 00:45:05understand this but like I think I was
- 00:45:06naive about thinking people would take
- 00:45:09care of me and so like I knew um the
- 00:45:13creator of python and I kind of saw his
- 00:45:15path of like he's sort of naively making
- 00:45:19a language some company support him
- 00:45:21before the 2000 Tech bubble and like
- 00:45:25yada yada he works at Google he works at
- 00:45:29Dropbox and like I kind of yada yed the
- 00:45:34what would happen to me and like to
- 00:45:35think like oh what happened to the
- 00:45:37python guy that's going to happen to me
- 00:45:39too is like stupid like why would I and
- 00:45:42I didn't think like oh yeah that's me
- 00:45:44but like I didn't question that that
- 00:45:46path was of a specific moment of a
- 00:45:49specific technology all that and so I
- 00:45:52think I when I had situations that were
- 00:45:55working I wasn't I was too trusting and
- 00:45:59I wasn't like doing what I needed to do
- 00:46:01to be in a good situation long term soes
- 00:46:05that make
- 00:46:09sense one final question
- 00:46:12yes so um just linking to that question
- 00:46:17then what's the number one
- 00:46:19recommendation you would give to some
- 00:46:21fellow developer who's getting into open
- 00:46:24source software and would love to keep
- 00:46:26going that that way just that like don't
- 00:46:30yeah just that
- 00:46:35um a lot of companies who use open
- 00:46:39source use it as a t a business tactic
- 00:46:42right so like they have a
- 00:46:44premium thing but that's a pipeline into
- 00:46:47a paid service and so and that's when
- 00:46:51you go back to the original documents
- 00:46:53about it like that's what it's supposed
- 00:46:54to be according to Eric Raymond and so
- 00:46:57if you really making sacrifices in your
- 00:47:02life and there's no path for that to
- 00:47:04come back to you
- 00:47:05like that's that's serious like you have
- 00:47:08to solve that otherwise you're not going
- 00:47:10to get to things you love to do and so
- 00:47:13like from my own experience like I was
- 00:47:16never the person who should have been in
- 00:47:19charge of a Consulting organization like
- 00:47:22I can be talent but like I should have
- 00:47:25pursued finding a partner who can do
- 00:47:28that other side where we both bring
- 00:47:30something valuable and also I also
- 00:47:34should have had the confidence of like
- 00:47:36you know I'm like well what do I bring
- 00:47:38like I'm just some guy who works on
- 00:47:39compilers I'm not even that good at Elm
- 00:47:41I don't use it I mostly WR H you know um
- 00:47:45but like when you bring a reputation or
- 00:47:49people who believe in you and you bring
- 00:47:51the expertise that's like so valuable to
- 00:47:53a consulting firm that you know you
- 00:47:56can't let yourself be taken advantage of
- 00:47:59and a lot of business people like will
- 00:48:02do it if you if you are naive
- 00:48:07about how they
- 00:48:10operate y on that note I think we're at
- 00:48:14time so Evan jitz thank you very
- 00:48:19much thank you Evan you know listening
- 00:48:21back over that interview I feel like at
- 00:48:24point maybe I crossed over into fanboy
- 00:48:26territory if so I admit it take it as a
- 00:48:30sign of how much I've enjoyed using Elm
- 00:48:32over the past few years and how much
- 00:48:34I've enjoyed teaching it it's a very
- 00:48:37nice clean design to work with and that
- 00:48:40translates into a very clean design to
- 00:48:42teach people functional programming with
- 00:48:44which is something I've greatly
- 00:48:46enjoyed what I take from that interview
- 00:48:48is I think Elm has a future a good
- 00:48:51future perhaps in a larger somewhat
- 00:48:54different form but I'm left optimistic
- 00:48:56for evans's
- 00:48:57Creations I'm also off the back of that
- 00:49:00discussion I am somewhat looking to my
- 00:49:02own future there are similarities I see
- 00:49:06between what he describes as an
- 00:49:08open-source software developer and what
- 00:49:10I've experienced as an open source
- 00:49:13software content creator if that's what
- 00:49:16I am it's got me asking questions I
- 00:49:19don't have answers but it's the end of
- 00:49:21the year it's coming to the end of 2024
- 00:49:23and it's a good time to be asking those
- 00:49:25questions thinking what's next in
- 00:49:282025 but for now thank you very much to
- 00:49:31those of you who are actively supporting
- 00:49:34the channel on patreon and YouTube
- 00:49:36memberships I really appreciate your
- 00:49:39support and your active support of the
- 00:49:41future of developer voices we'll be back
- 00:49:43next week with another episode and then
- 00:49:46things are going to get a little bit
- 00:49:47tricky because I'm going on a speaking
- 00:49:49tour I'm going to Melbourne Brisbane and
- 00:49:52Sydney at the start of December I'm
- 00:49:54hugely looking forward to it but it's
- 00:49:56probably going to disrupt the publishing
- 00:49:58schedule so bear with me and if you
- 00:50:01happen to be at the ya conferences in
- 00:50:03Australia I'll be there please come and
- 00:50:05say hi in the meantime I've been your
- 00:50:08host Chris Jenkins this has been
- 00:50:09developer voices with Evan chitz thanks
- 00:50:12for listening
- programming languages
- Elm language
- language design
- ecosystem development
- sustainability
- open source
- type safety
- community support
- developer experience
- future programming