Programming languages and frameworks to learn in 2022

29 points by meerita ↗ HN
I can't make a poll on HN, but I would like everyone to contribute with an opinion. Which languages are worth devote learning in 2022? Both for beginners and experts. And what about the new frameworks?

Please, be patient and open :)

2015 post: https://news.ycombinator.com/item?id=8803678

2017 post: https://news.ycombinator.com/item?id=13161700

21 comments

[ 6.0 ms ] story [ 60.4 ms ] thread
It depends on what you want to do.

For scientific or other high-performance computing: Julia

For scripting, writing Pandoc filters, extending NeoVim, doing magic with TeX: Lua

For web applications: Elixir with LiveView.

NeoVim put Lua on my radar, but your article on LuaTeX [1] that was shared here recently raised it much higher on the priority list. The chickenize package seems a fun way to get comfortable with it as well.

[1] https://lwn.net/Articles/731581/ (I'm assuming you're the same Lee Phillips.)

That’s me.

And, yes, plus Chickenize has some fun documentation.

Unfortunately there are few domain specific libraries available for Julia, like astropy.

We're in the same situation with Julia than 10 years ago when we started moving from IDL to Python. It was painful as Python wasn't born a scientific language, it awkwardly became so with numarray, numpy, numba, pandas, matplotlib, numexpr, scipy, pythran, scikit and whatever never-ending additional mess it requires.

At least Julia is domain specific. Like Matlab and IDL, it's JITed, vectorized and ready to use OOTB without the need for third-party libs.

Still, I really wish GDL was ready back then...

It is also a pain to learn some of these libraries in Python where they are basically just wrappers
For web developers: Ruby and Rails. Because both Ruby & Rails are evolving at a faster pace than I've seen in a decade, and web-scale companies like GitHub, Shopify, and Stripe are finding new ways to squeeze every drop of performance out of the platform while prioritizing programmer happiness.
I highly recommend HuggingFace/Transformers if you are at all interested in NLP
Sorry, but this question has too big a surface area! Software development is sprawling, and the language I'd recommend to a devops practitioner is different than what I'd recommend to a mobile developer.

That said, I don't think you are ever going to regret learning how to communicate better. Software is fundamentally about serving human needs and is usually done in a team context, so improving communication is always worthwhile.

If you are learning to broaden your knowledge I'd suggest learning the SAFE stack.

It's not likely to take off to be the next big thing but it's robust and interesting. Learning functional programming is helping me in more conventional programming. The insights you get are pretty neat. Like the .then function on a promise is really a map function.

So far I've enjoyed watching a guy on YouTube put together a little stock monitoring app in the safe stack. https://youtube.com/playlist?list=PLWtGeD5k0ryhV0Fq-_n9OADe1...

Reading the Elmish book has also been really interesting. https://zaid-ajaj.github.io/the-elmish-book/#/ It's amazing how good the documentation is for such a niche.

And setting up strong types helps you plan your code structure, it is a really helpful way. Then the compiler helps keep you to that design. F# is just really interesting to learn.

For those wondering what is SAFE stack:

* Saturn for back-end services in F#

* Azure as a hosting platform plus associated platform services

* Fable for running F# in the web browser

* Elmish for client-side user interfaces

(from https://safe-stack.github.io/docs/overview/)

Azure is the only safe'ish choice on this list, and there too I'd avoid lock-ins.

The Crystal programming language is very nice. It is a typed, compiled language with excellent performance. The syntax is inspired by Ruby but is not identical to Ruby (by design).

The all-important version 1.0 milestone was reached in March 2021. The next version (1.3) is scheduled for release in January 2022.

Some downsides to Crystal:

- No Windows version: Estimate for a Windows version is still not known - this will obviously turn away Windows developers. Crystal can be run via WSL (Windows Sub-system for Linux), but it's not ideal.

- Slow(ish) compilation.

- Small community: This isn't necessarily a problem, but as a new language you won't find the same learning resources and online discussions as more popular languages. However, the standard library is quite well fleshed out.

https://crystal-lang.org/

Crystal was fun to learn for Advent of Code, especially as someone who has zero Ruby experience. Felt weird, but in a good way, and ticked off a lot of the boxes I like in languages (decent type inference, static types, good standard library, reasonable toolset, etc.)
I was considering Crystal for Advent of Code. But when I checked it out, it seemed a lot of the shards (packages) had last commits in the "2-4 years ago" range. And one of the links in the official website's Community page (https://crystal-lang.org/community) lead to a domain squatter page (crystalshards.xyz), which raised questions of staleness.

It seems to have since been fixed to https://crystalshards.org, which does work, so I guess I just caught it in an unfortunate transitional period. I'll give Crystal a look again, thanks for the recommendation.

(Also, I didn't know about downside 1 (no Windows version) - I guess that partly explains the small community.)

Pharo is a good pick, if you are interested in know what is like to program in a very supportive environment typical of the Smalltalks, with their productivity enhancing tight feedback loops. There's a MOOC on it: https://mooc.pharo.org/
But, but, but... they nearly reinvented the image based approach with docker? -- with only a fraction of the consistency, but who cares ;-)
I think F# has a bright future ahead.

It’s the language of choice at our startup and we couldn’t be happier.

We target .NET and the browser (via. Fable - a F# to JS Compiler).

Right now new target languages are added to fable (python, rust, ?) so this could be a really nice way to tap into whatever ecosystem you need.