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.