- Published on
Why Learn a NEW Language (Programming)
- Authors
- Name
- Odee
I was rereading the mess of a post I previously made about languages. And thought this needs a highlight, so pasted it below
Why learn a new Lang?
Pick a language that will teach you something new. After javascript, i put, and still doing so, more thought on what to learn next.
Say, learn a language of the BEAM VM, cause, OTP.
You already familiar with the Promise/Future concurrency model, why not Go, for CSP, or, elixir/erlang, to kill two birds with one stone, that is the Actor model + OTP.
Want to do solutioning better? Do DDD, and do it better by using a great type system, so pick Scala/F#. Go hard, go haskell.
Been comfortable with imperative designs? why not build your next project declaratively, using React, or some other component driven UI techs.
Have you heard of the Railway Oriented Programming? How about Flow-based programming? You might not need to learn new languages for these, but you know, for fun, go find a language that does these best.
Want to better express your mental model? go type first design.
Much more can be said on these topics, but lets do that in the future.
Notice there is no mention of OOP vs Functional? That is intentional. It is a topic I feel I don't know much about. Let's read more about message-passing, understand how smalltalk works. Take a course on Lambda calculus, enroll a category theory subject, take a summer class on type theory. Then maybe, maybe by then, we can argue.
I am now just compiling things [programming concepts] here haha, but while you're at it, read some few things about CQRS, event sourcing, SAGAs, 12factors lol.
-- ^D
[end of paste]
So yeah
One thing to mention, is that most of the list above falls on "software design", and that is maybe because i'm currently in this phase of my career where in the pursuit of finding the meaning to what we do, I tend to lean on topics related to greenfield product development.
Libraries, ecosystem, adoption, support, these are (and many other more) things to consider when picking what to learn for production use. Say, R, Julia, Python, what do they have in common? Yep, them libs and packages for the ML/Data processing umbrella. Go learn em if you need those.
Zat is all. bb.