I've decided to pile up on recommendations for what to learn, mostly as a reminder to myself. Yes, I'm planning to learn/get better at all of the items below. I know, some are more than just a language.
I also know that languages are just tools, but in plenty of cases the tools matter because they can get in the way of a job well done just as likely as they can help. Also, simply learning a new tool on the side can provide amazing perspectives on the tools you're already using. So let's do a countdown!
5. Reason
In a few words, Reason is what TypeScript should've been. While it transpiles to Javascript, it's not just a superset of it but a language in its own right. With strong type inference, it makes life so much easier. After all, having to write less code means less room for bugs.
Reason was created by the same guys that created React and as such it works seamlessly with it. It's also heavily used at Facebook (but then again, Facebook uses so many different platforms).
To get an idea, check the Typescript vs Reason to see the power behind Reason (particularly the bit about reducers).
I'm not much of a Javascript person, but Reason gave me a "reason" (ha, ha!) to give it another shot.
4. Elixir
It's difficult to overstate the power of Elixir (and its Phoenix framework). As a purely functional language it suffers none of the drawbacks of OOP and it runs on the Erlang VM to boot. What does that mean? Basically immortality, as it scales without the need for tools like Kubernetes, it's incredibly resilient and it's the only platform I know where you can perform real time updates while running.
You know how the movie "Valkyrie" had to tone down the character of Colonel Stauffenberg because his real-life deeds were way over the top even for Hollywood? Well, that's Elixir.
3. PHP
PHP gets a well-deserved amount of hate due to its legacy. It slept on the laurels of its popularity while the world evolved around and it took what feels like forever to see PHP 7 come to light.
It still carries along some idiosyncrasies of its past but PHP > 7.2 and particularly PHP 8 are more than decent platforms to work on for projects of this day and age.
As a bonus, PHP is still quite easy to pick up so I recommend PHP (next to Go) as a good beginner language.
2. Python
I've overlooked Python mostly because it's slow as hell for web projects and it has no build-in support for concurrency which in today's world is a fatal error.
Of course, Python is the go-to tool for ML/AI projects. As such, I've decided to get more into it. It's not a complicated language to pick up
1. Go
Go is my current go-to (ha, ha, again!) tool. A very simple yet incredibly powerful language, with few quirks (at least when compared to others). Statically type, built for concurrency with few language constructs (sometimes, it's a curse - but usually a blessing), fast compiling and even faster to run.
Go (golang) is my #1 because it's great for beginners due to its simplicity. Sure, it's not perfect but it strikes a balance particularly when building APIs for microservices or when prototyping.
A lot of high-performance tools are written in Go - Kubernetes, Docker, most top ingress controllers, InfluxDB and others.
Top comments (3)
I think it is just two:
As a functional language, I'll take Elixir over anything else, mostly because paradigm aside Elixir comes with a whole fault tolerant performant platform. F# is also nice but none of the three FP comes with anything more than the advantages of the paradigm.
Definitely agree.