Ryan Haskell
Ryan Haskell
  • Видео 81
  • Просмотров 53 944
Welcome to Elm - 8.5 You Made It!
Learn about other helpful learning resources and tools.
Просмотров: 97

Видео

Welcome to Elm - 8.4 Elm Land
Просмотров 24521 день назад
Learn how to use the Elm Land framework to quickly create new projects that use all the fundamentals we learned in this course.
Welcome to Elm - 8.3 Elm Format
Просмотров 9021 день назад
Learn how to use elm-format to provide no-configuration formatting across all your Elm projects
Welcome to Elm - 8.2 Program Testing
Просмотров 9321 день назад
Learn how to use elm-program-test for testing what a user actually sees.
Welcome to Elm - 8.1 Unit Testing
Просмотров 10621 день назад
Learn how to use elm-test for unit testing.
Welcome to Elm - 7.4 Context & Effect
Просмотров 47421 день назад
Learn how to connect Elm pages together and allow them to communicate
Welcome to Elm - 7.3 Browser.application
Просмотров 18428 дней назад
Learn how to give Elm access to the URL and browser navigation APIs
Welcome to Elm - 7.2 File Structure
Просмотров 25628 дней назад
Learn how to organize Elm pages in a web application
Welcome to Elm - 7.1 Browser.document
Просмотров 138Месяц назад
Learn how to control an entire page with Elm
Welcome to Elm - 6.5 Web Components
Просмотров 293Месяц назад
Learn how web components allow you to embed JavaScript in Elm
Welcome to Elm - 6.4 Ports
Просмотров 221Месяц назад
Learn how to communicate between JavaScript and Elm
Welcome to Elm - 6.3 Flags
Просмотров 187Месяц назад
Learn how to send initial data from JavaScript to Elm
Welcome to Elm - 6.2 Vite Setup
Просмотров 306Месяц назад
Learn how to use Elm with Vite for a better developer experience
Welcome to Elm - 6.1 Minimal Setup
Просмотров 181Месяц назад
Learn the simplest way to compile Elm to JavaScript and drop it in a project
Welcome to Elm - 5.6 Commands
Просмотров 135Месяц назад
Learn how to send side effects using commands
Welcome to Elm - 5.5 Subscriptions
Просмотров 159Месяц назад
Welcome to Elm - 5.5 Subscriptions
Welcome to Elm - 5.4 Elm Packages
Просмотров 140Месяц назад
Welcome to Elm - 5.4 Elm Packages
Welcome to Elm - 5.3 Debugging
Просмотров 289Месяц назад
Welcome to Elm - 5.3 Debugging
Welcome to Elm - 5.2 The Elm Architecture
Просмотров 190Месяц назад
Welcome to Elm - 5.2 The Elm Architecture
Welcome to Elm - 5.1 React to Elm
Просмотров 327Месяц назад
Welcome to Elm - 5.1 React to Elm
Welcome to Elm - 4.4 HTML Events
Просмотров 149Месяц назад
Welcome to Elm - 4.4 HTML Events
Welcome to Elm - 4.3 Component Modules
Просмотров 133Месяц назад
Welcome to Elm - 4.3 Component Modules
Welcome to Elm - 4.2 Components
Просмотров 160Месяц назад
Welcome to Elm - 4.2 Components
Welcome to Elm - 4.1 HTML
Просмотров 150Месяц назад
Welcome to Elm - 4.1 HTML
Welcome to Elm - 3.6 Set
Просмотров 112Месяц назад
Welcome to Elm - 3.6 Set
Welcome to Elm - 3.5 Dict
Просмотров 122Месяц назад
Welcome to Elm - 3.5 Dict
Welcome to Elm - 3.4 Array
Просмотров 123Месяц назад
Welcome to Elm - 3.4 Array
Welcome to Elm - 3.3 List
Просмотров 134Месяц назад
Welcome to Elm - 3.3 List
Welcome to Elm - 3.2 Result
Просмотров 153Месяц назад
Welcome to Elm - 3.2 Result
Welcome to Elm - 3.1 Maybe
Просмотров 214Месяц назад
Welcome to Elm - 3.1 Maybe

Комментарии

  • @somindwithgames9827
    @somindwithgames9827 10 дней назад

    Pin me i loved ur work

  • @finnpedersen9342
    @finnpedersen9342 17 дней назад

    I love when it sorts the import section. 🤩

  • @finnpedersen9342
    @finnpedersen9342 17 дней назад

    I have been struggling a with the Fuzz module. Maybe an idea for an extended video (8.1b) on more advanced tests. Otherwise a great introduction to elm-test.

    • @HeyRyanHaskell
      @HeyRyanHaskell 15 дней назад

      Great suggestion- thanks for calling that out!

  • @MacOSeX10
    @MacOSeX10 17 дней назад

    I always thought ELM was a FE framework 😮

    • @HeyRyanHaskell
      @HeyRyanHaskell 15 дней назад

      Practically speaking, you aren’t wrong! 😃 It’s designed to solve the same problems as FE frameworks, it just solves them by choosing a different approach than building on top of JavaScript!

  • @finnpedersen9342
    @finnpedersen9342 17 дней назад

    😂😂😂 So funny. This is exactly why JavaScript and I are not so good friends and why I got started on Elm in the first place.

  • @Borkolini
    @Borkolini 20 дней назад

    Great series overall! Thanks, Ryan!

    • @HeyRyanHaskell
      @HeyRyanHaskell 20 дней назад

      Thanks for following along, hopefully more to come in the future 🤞

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 20 дней назад

    the elm guide doesnt do 10% this guide does

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 20 дней назад

    mom I wanna cry I wont see any Ryan notifications anymore

    • @HeyRyanHaskell
      @HeyRyanHaskell 20 дней назад

      RIP notifications (for now!) At least you can relive the video content whenever you’re feeling nostalgic 😅

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 20 дней назад

      ​@@HeyRyanHaskellI'll watch your other series since I feel I have a stronger foundation now

  • @GaryChike
    @GaryChike 20 дней назад

    Awesome content!

  • @mrdmajor
    @mrdmajor 21 день назад

    Thank you Ryan 👍🙏. This playlist is a VERY helpful visual explanation of Elm and building SPAs with Elm. It helped me resolve a few things I couldn't 100% mentally resolve in the Elm site documentation. Educating on how to manually build a code solution before providing the convenience of your framework is brilliant. You should work with Dillon Kearns to do that for elm-pages.

    • @HeyRyanHaskell
      @HeyRyanHaskell 20 дней назад

      Thanks, I’m glad you enjoyed it! I love working with Dillon, elm-pages is great!

  • @martinrame
    @martinrame 21 день назад

    Hi! Ryan, congrats for this awesome series. So far the best Elm resource on RUclips!. I don't know if you plan to follow up with more videos, but I think one must have is how to build stateful components in Elm/Elm-land.

    • @HeyRyanHaskell
      @HeyRyanHaskell 20 дней назад

      Thank you, and I love your suggestion too!

  • @ralphtq
    @ralphtq 22 дня назад

    Greatly appreciate these videos, thank you. Maybe this has already been asked, is there a repo for them? BTW, I'm working with elm-land and Tauri.

    • @HeyRyanHaskell
      @HeyRyanHaskell 22 дня назад

      Thank you!! There isn’t a repo for these Elm examples, but I’ve heard some folks are creating their own as they go as a learning exercise 😎

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 22 дня назад

    hahahahahahaha best beginning ever

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 22 дня назад

      I was also wondering if you disabled elm language server also because the rapid feedback in the editor was missing imo

  • @simonlewis6686
    @simonlewis6686 22 дня назад

    I've been using "vanilla" Elm (with elm-ui) for the last 12 months without any external build tools - mainly because I'm not really a web dev and don't know much about these, or indeed much about html, css, js etc. I've found the standard elm-watch tool does a fantastic job of hot reloading, so wondering why not just stick with this. I guess Vite brings extra things to the table which I'll see in future episodes...

    • @HeyRyanHaskell
      @HeyRyanHaskell 22 дня назад

      If you don’t have any need to work with existing NPM packages or other build steps like TailwindCSS, there’s no need to upgrade! I originally made this Vite plugin for use with Elm Land, where folks had more varied and advanced needs. If you’re already using elm-watch, I’d stick with that!

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 20 дней назад

      you would love to have all your ports in typescript so even the outside world is typesafe

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 23 дня назад

    can you make a very nice application with a already made backend with tests as a series? you can absolutely own all of the other elm videos as a defacto elm introduction. I used to watch Jack's Franklin Building Elm Apps for understanding some patterns but this series is already much higher graded

  • @HerozTech
    @HerozTech 24 дня назад

    Your video title is really vague and does give a clue to what the video is about i literally click it to know what it is about

    • @HeyRyanHaskell
      @HeyRyanHaskell 24 дня назад

      Thank you for taking time to leave feedback! I’ll need to brainstorm some alternatives 🧠

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 26 дней назад

    I believe I'll reach a higher understanding when I build my first mapping function. it's really hard to grasp

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 27 дней назад

    how is this a free course? this is top notch quality tips that was always behind a paid course that I could never pay. this is godsent

  • @space_ship643
    @space_ship643 27 дней назад

    I truly wish that Elm development gets alive again and gets the recognition it deserves. Kudos to Ryan and others contributing to keep Elm alive.

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 28 дней назад

    yessssss I finished it!!

  • @realyogi007
    @realyogi007 28 дней назад

    Hands down the best Elm series ever! Thanks a ton for breaking it down and sharing it for all of us!

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 28 дней назад

      totally. the url from document -> to application is something I've never thought about in all my pet projects I've done in elm this is sooooo much valuable. also I'm still struggling to make a mapper fn from Msg map And Cmd map I hope I can learn in the next sections.

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 28 дней назад

    hardest episode yet

    • @HeyRyanHaskell
      @HeyRyanHaskell 28 дней назад

      This is the most advanced unit and includes the stuff it took me the longest to learn! Might need a while to sink in 🧠

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 28 дней назад

      @@HeyRyanHaskell it is clicking. I'm watching it on repeat in different parts of the day so it clicks more

  • @maxreuv
    @maxreuv Месяц назад

    Seems like integrating with anything JS is a bit of a hands full, whether through ports or web components

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Definitely! This is a very common reason why folks prefer working with other languages in the web space. With Elm, you get the guarantee that your type system works BUT it comes at the cost of needing to be more cautious when working with raw JS or JSON values. For my personal experience, this tradeoff is worthwhile- but using a language with an "any" type has more ergonomic benefits. I encourage folks to try both and see which style they prefer!

  • @tomazbracic6568
    @tomazbracic6568 Месяц назад

    Seeing what you do with these videos makes me want to start with Elm after a few years. Great work Ryan!!

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thank you, go for it and build something cool!

  • @finnpedersen9342
    @finnpedersen9342 Месяц назад

    Great videos on how flags, subscriptions and ports work in Elm. Thank you. Especially your comments on how to make it robust.

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      You're very welcome- I'm glad you enjoyed the video!

  • @bibliusz777
    @bibliusz777 Месяц назад

    i used Elm for some websites. do long-term Elm jobs exist? what are your thoughts on elm-ui and iced?

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Hello! Yes, there are many companies offering long-term Elm roles. ( Although you'll find a HUGE number of JS framework jobs! ) I have used Elm UI and think it's great, especially for backend folks who want to avoid HTML/CSS altogether. I personally use HTML/CSS because I'm familar with the technology, and like to have more explicit control over my UI. I have not heard of iced before, however!

  • @tom95368
    @tom95368 Месяц назад

    do I have to config something to open VSC from the browser, when there is an error message? ... (some minutes later) VSC was not in path. Works great 👍

  • @GaryChike
    @GaryChike Месяц назад

    Honestly, I wasn't really interested in learning Elm, but now I am, all because of your well delivered tutorials.

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thank you, I’m glad I could trick at least one person into accidentally becoming an Elm developer - hope you enjoy the learning journey! 😃

    • @GaryChike
      @GaryChike Месяц назад

      @@HeyRyanHaskell 😂lol

  • @indierusty
    @indierusty Месяц назад

    Thank you. You made elm much more simpler for me to understand. I always wanted to learn functional programing but couldn't find any quality resourse. I'm in high school not a professional programming but everthing you explain is very clear to understand.

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      That’s great to hear! Elm was my first functional programming language, and it convinced me that I was smart enough to figure out how to build real stuff in a functional way. Glad I’m able to pay it forward! 😊

  • @tom95368
    @tom95368 Месяц назад

    Always looking forward to the next video. Thank you so much for sharing this!!!

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 Месяц назад

      yeah always wanted to feel elm as a prod developer and his series hit the nail

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thanks, Tom! Glad you’re enjoying the videos so far - there’s more exciting stuff to come!

  • @indierusty
    @indierusty Месяц назад

    How do I nest this. How it works for medium size project?

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      That’s a great question! We’ll answer that in detail later in the series- that was the part of Elm that took me the longest to figure out!

  • @maxreuv
    @maxreuv Месяц назад

    Great angle with converting React code to Elm, exceptionally well delivered and so easy to follow. Thank you!

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thanks, Max! This is one of my favorite videos in the course, I’m glad you enjoyed it too ☺️

  • @maxreuv
    @maxreuv Месяц назад

    Noticed an ETA reduction opportunity on fromFooterMsg, and was glad to find that Elm does support ETA reduction!👌 Wish there was deriving support also on custom types. But hey, maybe some time. Thank you for the video, very interesting, specifically the trick with messages passing. As an Elm noob, that would have taken me ages to figure out😂

  • @brielov
    @brielov Месяц назад

    I don't know where this series is headed, I'm really enjoying it so far. But I would love to (maybe at the end) see building a real world app, not a todo list, but rather something that includes routing, multiple pages, and somewhat big state. The thing I could never wrap my head around being a react dev is the lack of local component state, so I'm very curious to know how this is handled in elm. Anyway, thanks for the awesome series!

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      I don’t want to spoil anything, but I think you are REALLY going to like the second half of this series 😁

    • @brielov
      @brielov Месяц назад

      @@HeyRyanHaskell haha nice!

  • @finnpedersen9342
    @finnpedersen9342 Месяц назад

    Keep having too much fun. 😀

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 Месяц назад

    6:20 now I finally undestood Html.map. why in the tutorial is it not recommending to use it?

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 Месяц назад

    yay love this series. have you even did roc from richard? do you think it is in a good direction?

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      I’ve played around with Roc a bit and I think it’s an exciting new language! Would be awesome to see folks making Roc backend applications that work with Elm on the frontend 🤩

  • @finnpedersen9342
    @finnpedersen9342 Месяц назад

    Love ❤ it

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thanks for the encouraging comment- more fun Elm stuff to come!!

  • @LudovicCoullet
    @LudovicCoullet Месяц назад

    Thank you so much for all these videos. Pleased to watch concepts that I already know and excited for those I'll surely learn in the future.

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      You’re very welcome! If you’re familiar with Elm, I think you're really going to like the unit on Project Architecture - it’s the one that took me the longest to wrap my head around

  • @simonlewis6686
    @simonlewis6686 Месяц назад

    I've been coding Elm for 12 months now and never used HTML... I'm elm-ui all the way - it's great

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Elm UI is a wonderful package- I'm glad you are having a great time using it! ❤️

  • @brielov
    @brielov Месяц назад

    I need more

  • @WolfgangSchuster
    @WolfgangSchuster Месяц назад

    I'm excited for me too 😄

  • @maxreuv
    @maxreuv Месяц назад

    So, how can I make a custom ADT comparable so to be able to use it with the Set?

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      I love that question! The helpfulness of my answer will depend on your specific problem, but my most common use case is when I've used a custom type like this for ID values: type ID = ID String This made it so I wouldn't mix up IDs with other string types, but now it isn't ergonomic to use it with something like "Dict ID Project" or "Set ID". In the past, I've tried a few things: 1. Created a separate `Id.Set` module with an identical API, that handles wrapping/unwrapping this custom type before inserting in the set. (This preserves the type-safety and speed, but takes some work!) 2. Gave up some of the type safety, by storing ID as a String directly. This means using "type alias ID = String" instead, but allows me to use Dict and Set normally 3. Gave up on the speed, by using the "elm-community/assoc-set" package. This has the Set API, but uses a List under-the-hood. (Because Elm is only for web apps, there's rarely been something I've been storing that's been big enough to see a significant speedup) After working with Elm for a few years, the 3rd option seems to give me the most bang-for-my-buck. Converting custom types to/from comparable values is rarely worth it in my experience, but you might encounter scenarios where it is worthwhile!

    • @maxreuv
      @maxreuv Месяц назад

      @@HeyRyanHaskell Thank you very much, I seem to like option 3 the most so far. But the challenge itself goes to show that Elm could have benefited from some sort of typeclass support, at least something like Haskell's `deriving` for custom types.

  • @Borkolini
    @Borkolini Месяц назад

    What happens if you set 5th element on array of size 3?

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      That's a GREAT question! Something that surprised me when first working with Arrays in Elm (coming from JS) is that you can't set indices past the array's size. So in our specific example if we tried this: Array.set 5 "hi" (Array.fromList [ "ryan", "scott", "alexa" ]) It would NOT insert "hi"! In the next video we cover the "Dict" type: Dict.insert 5 "hi" (Dict.fromList [ (0,"ryan"), (1,"scott"), (2,"alexa") ]) Calling insert on a dictionary works fine! It will add "hi" in the place we expect: Dict.fromList [ (0,"ryan"), (1,"scott"), (2,"alexa"), (5, "hi") ] Hope this explanation makes sense!

    • @Borkolini
      @Borkolini Месяц назад

      Thanks!

  • @maxreuv
    @maxreuv Месяц назад

    Guess my Haskell fits right in ;). Thank you, excellent series

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      Thank you for watching! Hope you enjoy the rest of it 😊

  • @LourensRolograaf
    @LourensRolograaf Месяц назад

    But you are not sure?

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 Месяц назад

    8:20 correction. I think it would be correct to call it map "method". Function is not bound and methods are bound to the datastructure or the much called object

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      When I use the word "method", I also think of functions bound to objects. In languages with objects, I say "method" when calling a function that is available on an instance of an object like this: > myMaybe.map(double) rather than > Maybe.map double myMaybe Although most functions in Elm take data structures as arguments, I'll refer to these as "functions" throughout this course rather than "static methods" If you prefer to call these methods, I think that’s also fine! Whatever term is most helpful when you’re learning or building stuff with Elm

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 Месяц назад

      @@HeyRyanHaskell yes I believe you are correct. it's just that js looks so OO lang to me that I use to keep the OO terminology.

  • @viniciusataidedealbuquerqu2837
    @viniciusataidedealbuquerqu2837 Месяц назад

    yay honey new ryan video dropped

  • @becauseofcourse9700
    @becauseofcourse9700 2 месяца назад

    Thank you, thank you, thank you. I look forward to watching the rest of the episodes in the series.

    • @HeyRyanHaskell
      @HeyRyanHaskell Месяц назад

      You’re very welcome- I’m glad you're enjoying the videos!

  • @mnoxman
    @mnoxman 2 месяца назад

    FWIW: ELectronic Mail (ELM), mostly defunct, may have a name conflict with this.