i’ve always wanted to get into functional programming, but my uni has been smitten with oop and c++ since like the 90’s or something. i started learning and writing Rust last year, which, i know, is not like an actual functional language, but i found it to be quite different from what i was used to and i want to keep exploring.

i’m a frontend developer by trade, so something like elm not only looks like fun, but also it seems like it could be a great tool for creating stable software. my only hesitancy is that the frontend world moves incredibly fast and the time i spend learning/adopting elm could be spent picking up something shinier and newer that could actually land me a job lol.

another thing i’ve heard is that programming languages like elm can teach you a lot about what it means to write cleaner code, so it’s not like my time would be entirely wasted. what do you guys think?

  • ttmrichter
    link
    fedilink
    arrow-up
    10
    ·
    3 years ago

    It is always worth learning a new programming language, even without an immediate use for it. This is doubly so when you’re talking about an entirely new paradigm of programming.

    I make it a policy to learn a new programming language to basic proficiency each year and a new paradigm each five. (These are minimum times.) Learning new languages gives you new ways of looking at problems and problem domains and how to solve problems in them. This is true even within the same paradigm. For OOP languages, for example, there’s, say, Java’s outlook, but also Dylan’s or Ada’s, both of which have entirely different takes on OOP. Then there’s languages like Logtalk that apply OOP over a declarative (Prolog) core instead of the more typical imperative outlook that OOP languages have. Or languages like Lua or Scheme or Forth or such in which rolling your own object system is a weekend’s project (assuming you know the language, naturally) giving you MORE insight in design decisions for OOP.

    That’s just one realm.

    Every paradigm teaches you different ways to think about and solve problems. Every language within a paradigm teaches you different ways to think about that very paradigm. It’s never wasted knowledge unless your entire goal in life is to land one code churning job or another without any kind of intellectual growth.

    So to answer your question, yes it’s worth learning Elm, especially if you’re interested in the web sphere. (I’m not so I haven’t bothered.) Even if, in the end, you wind up not using it, the skills and thinking techniques you pick up with Elm can help you with Javascript. Or any other language/environment you want to go with.

  • Aarkon@feddit.de
    link
    fedilink
    arrow-up
    3
    ·
    3 years ago

    Despite not having done anything significant in elm, I like it quite a lot (to be fair, the one could be the reason for the other). It is sometimes frowned upon for not being as “feature complete” as Haskell which it somewhat resembles, but I think that’s unfair because it is not a general purpose language but a tool for a very specific use case (building web UIs). Sure, it sacrifices some of the more advanced techniques for a nice beginner experience, but I don’t hear too much complaint about that.

    It sure has its own learning curve, but after the first few steps it “clicks” and you may be up to speed faster than you think. So yes, learn elm, it’s time well spent, even if you don’t find a job to use it in. There will always another private pet project you can apply your new shiny things to, even if it is only your private blog for which elm-pages has you covered. ;)

  • DessalinesA
    link
    fedilink
    arrow-up
    4
    arrow-down
    2
    ·
    3 years ago

    I think clojure and elixir are far more popular. But if you’re looking to improve your front end skills, I’d just get better with the existing popular ones, like react, vue, svelte, etc.

    • basiliscos
      link
      fedilink
      arrow-up
      4
      ·
      3 years ago

      react, vue, svelte

      This ones not programming languages, they are JS-libraries.

    • Aarkon@feddit.de
      link
      fedilink
      arrow-up
      3
      ·
      3 years ago

      Allow me to slightly disagree. While you’re right obviously about the popularity aspect from today’s point of view, similar things could have been said about every single mainstream language at some point in the past. Which is to say that if something is niche today, it still may gain traction in the future. Also, one could say “be the change you want to see in the world”. 😉

      I’d argue that the fast pace of things changing in the front end world might work to OP’s advantage here, because trying something new is far more common here than implementing business logic in a totally new language.