Тёмный

Elm in Production: Surprises & Pain Points 

Kevin Yank
Подписаться 1,4 тыс.
Просмотров 33 тыс.
50% 1

Based in Melbourne, Australia, the team at Culture Amp has built the world's most powerful people analytics platform-a web application used by the world's most innovative companies to measure and drive improvements to their company culture, employee engagement and individual effectiveness.
For the past six months, one of the four product teams has built all of its new UI in Elm, a new, delightful language for reliable web apps. In this talk, Kevin Yank shares surprises and pain points from the team's experience in that time.
Want to join our team in Melbourne? Visit www.cultureamp.com/jobs.html

Наука

Опубликовано:

 

29 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 68   
@renedonner240
@renedonner240 6 лет назад
One of the best tech talks I have ever seen - concept, content and presentation.
@markli7641
@markli7641 7 лет назад
I really like the tone and the voice.
@PietroGrandi909
@PietroGrandi909 7 лет назад
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 лет назад
for some reason, this article from 2004 feels current: www.paulgraham.com/pypar.html
@Yetipfote
@Yetipfote 5 лет назад
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 3 года назад
Always go with 10 high performers if available. So it's not a question.
@serenity_zero
@serenity_zero 7 лет назад
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
@jackgenewtf
@jackgenewtf 4 года назад
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).
@DecebalDobrica
@DecebalDobrica 6 лет назад
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.
@stefanwille5960
@stefanwille5960 3 года назад
This is an excellent talk! Thank you!
@TheOddler
@TheOddler 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.
@abdellahcodes
@abdellahcodes Год назад
What a gem! 💎
@BrendanWeibrecht
@BrendanWeibrecht Год назад
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.
@kevinpruett
@kevinpruett 7 лет назад
very rebellious calling your single source of truth `State` instead of `Model` :) I dig it.
@OndrejPinka
@OndrejPinka 6 лет назад
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.
@kirillstepanov6551
@kirillstepanov6551 5 лет назад
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.
@ericlubisse8461
@ericlubisse8461 7 лет назад
Hi Kevin. Great video. Really honest appraisal. Pain points (and workarounds) are particularly useful.
@wellyngtonamaral4097
@wellyngtonamaral4097 6 лет назад
Awesome, thx. Starting with elm and loving it
@opentrail
@opentrail 4 года назад
Thanks for sharing your experience of Elm. Very well communicated with great content and examples. Well done.
@silaspedrosaa
@silaspedrosaa 7 лет назад
Awesome! Knowing that you're working with elm would definitely attract me.
@KurtMueller
@KurtMueller 7 лет назад
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.
@thopth
@thopth 7 лет назад
Another excellent video about Elm. Thanks for your sharing.
@sriramsrinivasan2769
@sriramsrinivasan2769 6 лет назад
Thank you for an excellent and helpful presentation. Your voice is measured and soothing as well.
@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.
@cwhy
@cwhy 7 лет назад
Fantastic talk! The examples are very really helpful~
@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.
@SylvainBrunerie
@SylvainBrunerie 4 года назад
Beautiful videos man, clear, honest and engaging, I'm looking forward to start building something using Elm!
@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.
@zoltanfranta8395
@zoltanfranta8395 6 лет назад
Thank you for this great presentation for us!
@tvgeist
@tvgeist 7 лет назад
The option to write Elm would be a huge selling point for me.
@JoeBuza
@JoeBuza 7 лет назад
Great presentation. Will start looking into elm soon.
@harman8170
@harman8170 5 лет назад
Love it best way to explain concepts keep it coming
@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
@7megas
@7megas 5 лет назад
Great video, thanks.
@gagaoolala9167
@gagaoolala9167 7 лет назад
Does anyone know what font that is? I love it.
@markcarranza4456
@markcarranza4456 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.
@markcarranza4456
@markcarranza4456 7 лет назад
Thank you, the thread was very helpful
@markcarranza4456
@markcarranza4456 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?
@markcarranza4456
@markcarranza4456 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.
@MR-cf7xi
@MR-cf7xi 7 лет назад
Have you tried elm-css? Does it cover your expectation?
@AaronMartinColby
@AaronMartinColby 6 лет назад
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 5 лет назад
@@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.
@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.
@iskar0n
@iskar0n 6 лет назад
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.
@Xania-js
@Xania-js 6 лет назад
Great video
@przemysawlib4309
@przemysawlib4309 4 года назад
Subscribed just for the visual style. How one makes such gorgeous vids?
@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.
@enfisk154
@enfisk154 5 лет назад
The "hacky" tactic mentioned should now be possible in pure elm using the Browser.Dom package, you can use the getElement method
@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?
@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.
@unlugartrufado
@unlugartrufado 4 года назад
i think there are some mistakes with elm code In 6:00 (css => classes ?)
@Laser2017
@Laser2017 7 лет назад
What syntax highlighting are you using?
@Laser2017
@Laser2017 7 лет назад
It's Operator I believe. A $200 font.
@TomerBenDavid
@TomerBenDavid 6 лет назад
Can you share the excellent presentation please?
@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.
@yanoopl
@yanoopl 7 лет назад
If your backend is in elixir than you'll definitely find some talented devs interested in elixir&elm (popular couple).
@Laser2017
@Laser2017 7 лет назад
Dialyzer!
@mateja176
@mateja176 5 лет назад
I'd also add Ramda to the list of things you get for free when using Elm.
@StefanWallinWebDeveloper
@StefanWallinWebDeveloper 4 года назад
How are you dealing with CSS Modules nowadays?
@StefanWallinWebDeveloper
@StefanWallinWebDeveloper 4 года назад
Kevin Yank thank you for prompt and clear response!
@sompylasar
@sompylasar 7 лет назад
Attracts.
@praveenperera
@praveenperera 7 лет назад
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.
@taishiyamada2190
@taishiyamada2190 7 лет назад
Nice video. This Slide is available?
@jethrolarson
@jethrolarson 7 лет назад
if I were job hunting I'd reach out. :)
@Will-tb8qm
@Will-tb8qm 7 лет назад
prettier.github.io/prettier/ is that JavaScript code formatting tool.
@matthiasschuster9505
@matthiasschuster9505 5 лет назад
30:00 You dont need to code CSS ever again: github.com/mdgriffith/elm-ui
Далее
Developer Happiness on the Front End with Elm
45:49
Просмотров 43 тыс.
Elm at Scale: More Surprises, More Pain Points
29:09
Просмотров 22 тыс.
Как вам наш дуэт?❤️
00:37
Просмотров 1,3 млн
"Teaching Elm to Beginners" by Richard Feldman
32:01
Просмотров 12 тыс.
Elm and Web Components - Richard Feldman
24:38
Просмотров 10 тыс.
From Rails to Elm and Haskell - Richard Feldman
52:18
"Immutable Relational Data" by Richard Feldman
29:37
Просмотров 16 тыс.
"Make Data Structures" by Richard Feldman
53:13
Просмотров 29 тыс.
The moment we stopped understanding AI [AlexNet]
17:38
Просмотров 801 тыс.
Elm Europe 2017 - Richard Feldman - Scaling Elm Apps
59:51
Wrangle Your Windows with Moom
12:38
Просмотров 21 тыс.
Richard Feldman - Exploring elm-spa-example
44:42
Просмотров 17 тыс.