Elm & The Future of Open Source (with Evan Czaplicki)

00:50:24
https://www.youtube.com/watch?v=0SUM4869ODc

Sintesi

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.

Punti di forza

  • 📚 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.

Linea temporale

  • 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.

Mostra di più

Mappa mentale

Video Domande e Risposte

  • 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.

Visualizza altre sintesi video

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