Elm in Production: Surprises & Pain Points

Поділитися
Вставка
  • Опубліковано 10 лют 2025

КОМЕНТАРІ • 68

  • @jackgenewtf
    @jackgenewtf 4 роки тому +2

    At 7:19, what you're describing is a "record", not an "alias". The code is defining a type alias to a record (giving the record a name, so that it is easier to work with), but type aliases doesn't have to be to records, you can define type aliases for tuples, other algebraic types, or even basic types (like give Int another name, though there's typically no good reason to do so).

  • @renedonner240
    @renedonner240 7 років тому +26

    One of the best tech talks I have ever seen - concept, content and presentation.

  • @serenity_zero
    @serenity_zero 7 років тому +6

    thank you for addressing pain points of Elm in production: most videos and articles on Elm I've encountered are about toy projects and examples and/or generally only praise the language, making an impression of a _perfect_ front-end technology

  • @markli7641
    @markli7641 7 років тому +31

    I really like the tone and the voice.

  • @PietroGrandi909
    @PietroGrandi909 7 років тому +43

    Hiring: I've been actively looking for remote Elm positions during the last 7 months. I met some good developers willing to work with Elm.
    In my opinion, Elm might reduce the number of devs you can address with your job opening, but it will also filter only the first class people: are you going to build a team of 70 clockworkers or a team of 10 high performers? That's the question.

    • @AkosLukacs42
      @AkosLukacs42 7 років тому +7

      for some reason, this article from 2004 feels current: www.paulgraham.com/pypar.html

    • @Yetipfote
      @Yetipfote 5 років тому +4

      I worked with Elm in a company over 3/4 of a year and I can say this: while runtime errors can be completely omitted, your codebase WILL become much more verbose vs the same functionality implemented in pure JavaScript. A good IDE can help you to work much faster with shortcuts and Elm-plugin tho! Also you need to have a good understanding of static functional domain modeling with Elm's type system because, while providing a lot good stuff, it has its restrictions (e.g. no type classes) which make modeling complex business logic very verbose and tedious (e.g. you if you have a union type with a couple of members which are processed by algorithms A, B and C and some members which should be processed with A, B, D, E. So similar behavior sometimes but completely different other times). This actually _increases_ the amount of work instead of reducing it because you are in *statically typed land*. But by the time you HAVE a good code base maintenance and extensions with new features become much easier, provided you don't need to refactor high-level types first, which can be a pain in the bottom!
      Elm imho is a good choice for businesses which have a clear vision of what they want to achieve with their software and have patience and money to build a long-lasting, high-quality code base without runtime errors, which can be easily extended if well-planned/-modeled.
      It is NOT a good choice if you don't know exactly what you are going after and you want to rapidly prototype and test lots of different stuffs on the market.
      Other than that, from a developer perspective, Elm is a very nice language and Ecosystem

    • @bluesprodeep2079
      @bluesprodeep2079 4 роки тому +2

      Always go with 10 high performers if available. So it's not a question.

  • @BrendanWeibrecht
    @BrendanWeibrecht 2 роки тому

    Great talk, Kevin! This exactly matches my experience with Elm in creating my game, PathFinder, which you may have seen the beginnings of at an Elm hack night you hosted (aside from not using CSS modules in it). I loved the experience of writing in Elm, so for recruiting, Elm is definitely a big selling point for me. In an introduction to Elm talk I gave at GreenSync, the part that really made it click with the audience was that compiler-driver refactoring confidence you covered.
    I heard recently that Culture Amp is moving away from Elm, and I was quite surprised and disappointed to hear that. If true, I'd love to know why. I'll have to watch your follow-up video next to see if that's mentioned.

  • @TheOddler
    @TheOddler 7 років тому +7

    Interesting talk, I first came in contact with Elm in college, and have since played around with it for some personal project and for fun. It's very cool to hear from a team using it in production.
    As for the last question about hiring, for me it would definitly be a positive thing. I was actually thinking of looking for a job where they use Elm, as I really like the language and would love to be able to explore it more in a professional context.

  • @DecebalDobrica
    @DecebalDobrica 6 років тому +2

    Hi Kevin, I love the fact you are asking that question at the end of this, while I consider this talk to be amazing and urge you not to delete this ever.
    Since I first heard of Elm it charmed me, I am a back-end developer most times, but love to work in small startups | new products where you might just need to wear all hats, I've worn them before.
    I consider the reactivity of elm to be the most promising feature of all and this feature alone should attract the kind of developers whom are interesting in joining such a powerful trend.
    I am passionate about crypto currencies and I feel there is no better match than Elm to build something at the forefront of something so dynamic and decentralized.
    I wish you good luck in your hiring process, in the small meetups we had in Exeter we always talk highly of Elm's architecture and consider it as something that helps some pain go away in the development process.

  • @chris.dillon
    @chris.dillon 7 років тому

    Fantastic explanation and slides. I think hearing that Elm is in production would lower my stress/worries because no runtime errors in production. If Culture Amp is the type where "everyone wears the pager" then no runtime errors would be an attractor whether I knew Elm or not, imagine someone picking up Elm on the job ... they are ascending in some sense into a job with less runtime errors and panic-y bug fixing / edge case stuff.

  • @opentrail
    @opentrail 4 роки тому

    Thanks for sharing your experience of Elm. Very well communicated with great content and examples. Well done.

  • @becauseofcourse9700
    @becauseofcourse9700 7 років тому

    I'm an Aussie writing Elm and loving it. I'm not looking for a job, but if I was, your Elm involvement would be a big drawcard.

  • @kirillstepanov6551
    @kirillstepanov6551 6 років тому

    Thanks for a video, good points. I’m frontend developer and regarding your last question - elm for me would be a selling point. I’m learning it now, and it feels good.

  • @stefanwille5960
    @stefanwille5960 4 роки тому

    This is an excellent talk! Thank you!

  • @KurtMueller
    @KurtMueller 7 років тому +2

    Hi Kevin, I would love to watch more of your talks/videos regarding Elm. Specifically, I'd love to hear your opinion on creating large Elm apps and patterns you frequently use to manage them.

  • @sriramsrinivasan2769
    @sriramsrinivasan2769 7 років тому

    Thank you for an excellent and helpful presentation. Your voice is measured and soothing as well.

  • @silaspedrosaa
    @silaspedrosaa 7 років тому

    Awesome! Knowing that you're working with elm would definitely attract me.

  • @ericlubisse8461
    @ericlubisse8461 7 років тому +1

    Hi Kevin. Great video. Really honest appraisal. Pain points (and workarounds) are particularly useful.

  • @thopth
    @thopth 7 років тому

    Another excellent video about Elm. Thanks for your sharing.

  • @przemysawlib4309
    @przemysawlib4309 5 років тому

    Subscribed just for the visual style. How one makes such gorgeous vids?

  • @SylvainBrunerie
    @SylvainBrunerie 5 років тому

    Beautiful videos man, clear, honest and engaging, I'm looking forward to start building something using Elm!

  • @mark-me-myself-and-I
    @mark-me-myself-and-I 7 років тому

    Great video production values. Very clear speech and great sound quality over clear writing, conceptual expression.
    Never done one of these, and a helpful "how-to" is welcome. Reviewing your other videos, looks like you've taken production very seriously and built a nice studio area. Alas, I'm one of the last programmers in San Francisco using Windows, so I won't be able to fully benefit.
    Quick and easy, what's your breakdown and total of time spent on this particular video?

  • @fabio1079
    @fabio1079 6 років тому

    The thing that I like the most in Elm, is it's compiler errors. It not just say the error message but also hints on how to fix it. Sometimes I purposely create errors just to use the hint xD

  • @cannyaii
    @cannyaii Рік тому

    What a gem! 💎

  • @mark-me-myself-and-I
    @mark-me-myself-and-I 7 років тому

    Thank you, Kevin. I'm learning/evaluating Elm after poking around in RxJS for some very complicated input event handling. Your segment on the "selective event handling" pain point was very surprising and helpful. I would love more depth, tips, reference links on this.

  • @cwhy
    @cwhy 7 років тому +1

    Fantastic talk! The examples are very really helpful~

  • @wellyngtonamaral4097
    @wellyngtonamaral4097 7 років тому

    Awesome, thx. Starting with elm and loving it

  • @JoeBuza
    @JoeBuza 7 років тому

    Great presentation. Will start looking into elm soon.

  • @nameczanin
    @nameczanin 7 років тому

    Answering the question in the video: to me, Elm is totally a selling point from a perspective of looking at job offer. It just feels safer to code with it.

  • @unlugartrufado
    @unlugartrufado 5 років тому

    i think there are some mistakes with elm code In 6:00 (css => classes ?)

  • @zoltanfranta8395
    @zoltanfranta8395 6 років тому

    Thank you for this great presentation for us!

  • @AaronMartinColby
    @AaronMartinColby 7 років тому +5

    It's been nearly nine months on since you posted this. How has your experience been in hiring? From an outside perspective, Elm appears to have attracted quite a bit more attention in 2017 than it had in 2016, and I'm wondering if you've also noticed any changes.

    • @zuluh42
      @zuluh42 6 років тому

      @@KevinNYank I love how you are combining React with Elm in your portfolio. You mentioned that you use React "for features that aren't well suited to Elm". It would be nice if you could share your feelings on this topic.

  • @MR-cf7xi
    @MR-cf7xi 7 років тому +2

    Have you tried elm-css? Does it cover your expectation?

  • @gagaoolala9167
    @gagaoolala9167 7 років тому +2

    Does anyone know what font that is? I love it.

  • @bltavares
    @bltavares 7 років тому

    Really nice video. I specially liked the refactoring example on video.
    I've been following the community for a while, with no big project written in Elm, but I would like to get the feeling from someone working on it frequently.
    Have you found Elm code a bit too verbose? I know there is a constant discussion on the community regarding Typeclasses/Protocols/Generics, but I would like to know if you've felt the need to be a bit more abstract when working on the project.

  • @harman8170
    @harman8170 5 років тому

    Love it best way to explain concepts keep it coming

  • @tvgeist
    @tvgeist 7 років тому

    The option to write Elm would be a huge selling point for me.

  • @OndrejPinka
    @OndrejPinka 7 років тому +3

    This thread is rather 'old' but I'll anyway, me as totally inexperienced hobby coder, having possibility to work on Elm + (Phoenix) + Elixir stack, on real life projects, and being mentored by experienced developers would be an absolute honey pot.

  • @AkosLukacs42
    @AkosLukacs42 7 років тому

    great video! The funny part is (and I don't want to be offensive, and I'm interested in elm) that a lot of what people generally mention on the tooling side about elm, like sane refactoring, type checking, auto-format if your code is syntactically correct, is actually given, if you do use typescript. Of course, Elm's type system can give stronger guarantees about correctness than typescript, but I'm still puzzled, why ppl don't use it. Maybe it's origins? Or because Facebook feels they know it better, and they create their own typie-thingie instead of joining forces?

  • @7megas
    @7megas 5 років тому

    Great video, thanks.

  • @labcrowd
    @labcrowd 7 років тому

    +Kevin Yank what was that console add-on you were using with sublime ?

    • @labcrowd
      @labcrowd 7 років тому

      Kevin Yank Ahh, OK. I thought it was like a console pane. One last thing. What plugins you use to smoothen your elm dev experience.

  • @kevinpruett
    @kevinpruett 7 років тому +11

    very rebellious calling your single source of truth `State` instead of `Model` :) I dig it.

  • @iskar0n
    @iskar0n 7 років тому

    Great video! I think functional programming is definitely selling point and attracts talented people, but could be a problem if you're looking for experienced seniors.

  • @enfisk154
    @enfisk154 6 років тому

    The "hacky" tactic mentioned should now be possible in pure elm using the Browser.Dom package, you can use the getElement method

  • @mark-me-myself-and-I
    @mark-me-myself-and-I 7 років тому

    I agree with others commenting about Elm being a plus -- from my perspective as a job seeker. From a candidate-seeking position, hard to say. I've queried Craigslist in the SF/Bay Area for 'Elm' with no hits.
    You might note if Culture Amp accepts remote workers (or in SF office :).
    Please note: cultureamp.com/ timeouts, but www.cultureamp.com/ works.

  • @Luis3m_
    @Luis3m_ 7 років тому

    Very Interesting, I would apply but I'm not located in the US sadly. Elm is a very interesting language and I guess it makes the job more attractive.

  • @Laser2017
    @Laser2017 7 років тому

    What syntax highlighting are you using?

    • @Laser2017
      @Laser2017 7 років тому +1

      It's Operator I believe. A $200 font.

  • @Xania-js
    @Xania-js 7 років тому

    Great video

  • @cristian91re
    @cristian91re 6 років тому

    Watching till 17:00 seems to me just a good old feature of a strongly typed language, something I can achieve using typescript for example, without all the hassle of limitations.

    • @cristian91re
      @cristian91re 6 років тому

      I partially understand, I never ever code using vanilla JS (i was very lucky because that plain language, without tools like babel/typescript, is a serious mess) as I started learning web development with Angular 2.
      I understand that everyone needs a better tool than plain js, really.
      I'm waiting for the spread of WebAssembly, i think that should fix the js problem probably better than Elm itself.
      Erlang will be my 1 choice along C (my background is C that's why probably I kinda love typescript).
      So yes, (web)dev will change a lot in the next few years, especially because web apps will be more and more become just Apps.

  • @praveenperera
    @praveenperera 7 років тому +1

    Jobs link doesn't work, should be: www.cultureamp.com/jobs.html
    Hiring: Would make me more likely to consider a company using Elm. Lower quantity of candidates (probably), higher quality.

  • @StefanWallinWebDeveloper
    @StefanWallinWebDeveloper 4 роки тому

    How are you dealing with CSS Modules nowadays?

  • @TomerBenDavid
    @TomerBenDavid 7 років тому

    Can you share the excellent presentation please?

  • @yanoopl
    @yanoopl 7 років тому +1

    If your backend is in elixir than you'll definitely find some talented devs interested in elixir&elm (popular couple).

  • @taishiyamada2190
    @taishiyamada2190 7 років тому

    Nice video. This Slide is available?

  • @mateja176
    @mateja176 6 років тому

    I'd also add Ramda to the list of things you get for free when using Elm.

  • @sompylasar
    @sompylasar 7 років тому

    Attracts.

  • @jethrolarson
    @jethrolarson 7 років тому +1

    if I were job hunting I'd reach out. :)

  • @Will-tb8qm
    @Will-tb8qm 7 років тому

    prettier.github.io/prettier/ is that JavaScript code formatting tool.

  • @shalokshalom
    @shalokshalom 5 років тому +1

    30:00 You dont need to code CSS ever again:
    github.com/mdgriffith/elm-ui