I’ve been working with a Javascript (+ TypeScript) + Java + SQL stack for the last 10 years.
For 2024 I’d like to learn a new programming language, just for fun. I don’t have any particular goals in mind, I just want to learn something new. If I can use it later professionally that’d be cool, but if not that’s okay too.
Requirements:
- Runs on linux
- Not interested in languages created by Google or Apple
- No “joke languages”, please
Thank you very much!
EDIT: I ended up ordering the paperback version of the Rust book. Maybe one day I’ll contribute to the Lemmy code base or something :P Thank you all for the replies!!!
I would suggest Nim, I had a blast learning it and making a small project. It is not a mainstream language, nor is it a joke language.
Id suggest rust, gets you a step closer to the hardware and a bit of a different paradigm than Java while still feeling high level.
Rust is definitely something I’ve been keeping an eye on. The syntax looks a bit scary, to be honest, but looks very versatile.
Definitely rust, and definitely use rustrover from jetbrains for an IDE. It’s amazing
As the other person said, Python. Or if you want something lower level, how about Rust?
Rust doesn’t even have to be lower level
PHP is a really fun language syntactically and has a surprisingly good built-in library.
As a PHP Dev: Please avoid PHP unless you have to use it.
I know it’s fashionable to shit on PHP but it’s significantly better than it once was… it’s honestly like a cleaner python that lets you use brackets.
Sure, could be/was a lot worse than today. Still, PHP gives one way too much rope to hang themselves with.
Cleaner python? Hahaha that’s hilarious
What would you recommend learning instead?
My team is currently exploring rust as an alternative because we have to do a lot of api calls and data crunching real fast. So rust?
As a php dev who actually writes clean code and doesn’t blame people writing shitty code on a language: don’t listen to this fella.
As a php dev who actually writes clean code while cleaning up after other people because
Getting things done is more important
: Don’t give people the tools to write shitty code.
I see you mentioned JS, but not TS. If you haven’t tried TypeScript, you 100% should! It helps a lot at scale.
Also, I really do recommend Rust. It’s pretty awesome having the errors actually make sense, and it’s not as complicated as the hype makes it out to be (until you get into async rust lol).
As others have mentioned, C# is also awesome.
We do use TS as well, yes!
Rust is definitely a language I’m considering. Syntax looks a bit scary, though!
Rust syntax is totally fine really. It often feels like writing python
Alternatives
- C#, because it’s good
- Rust, because it’s different
- a (purely) functional language, because it’s different
- Nushell, nice shell, and great for scripted data processing
Since you already know Java, you could jump straight to C++ with Bjarne’s book “Programming - Principles and Practice Using C++”: https://www.stroustrup.com/programming.html
You can then move to more modern C++ with his other book “A Tour of C++”: https://www.stroustrup.com/tour3.html
And then if you’re curious to know how software design is done in modern C++, even if you already know classical design patterns from your Java experience, you should get Klaus Iglberger’s book: https://www.oreilly.com/library/view/c-software-design/9781098113155/
In parallel also watch the “Back to Basics” video series by CppCon (see their YouTube channel: https://www.youtube.com/@CppCon , just type “back to basics” in that channel’s search bar).
Learning proper C++ should give you a much better understanding of the hardware while the syntax still remains elegant, and you get to add a new skill that’s in very high demand.