I’ve been working with a Javascript + 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!
Python seems to be a staple for as long as I can remember and it looks like it’s still gonna be going strong for a good while yet!
I’m thinking of taking the dive and finally learning it myself soon.
Python is especially great for quick scripts or PoCs. I’ve been using it a lot lately to prototype some things and it just makes it a breeze
Main complaint is the snake_casing convention. By far my least favorite
Packaging solutions kinda sucks, but we’re about to get a JIT in the main CPython so that’s exciting.
C# is a great choice.
Incredibly versatile language and should be an easy jump from java.
Agreed, as a Java developer you will hopefully find C# familiar but more refined. They share a lot of the same features now, but C# seems to do them all better, in my opinion. Linq especially is just so much more enjoyable for me than Java Streams.
.NET Core (now just .NET) readily runs on Linux and Visual Studio has a free edition that is superb - an IDE provided by the language developers. Of course, you can always use Visual Studio Code or a third-party offering like Rider (by JetBrains so the transition from Java could be very easy of you are already familiar with their programs).
My only complaint on C# is that the .NET versioning is a little confusing if you aren’t already familiar. However, that’s only an issue if you work with legacy code. New versions after .NET 5 are all the same naming and upgrading is generally effortless, just changing a single number in your project file and downloading the proper SDK
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
Rust, haskell, python, c++ are all interesting choices. I would argue that c# is too close to what you already know to be interesting.
If I were you though, I’d pick a project first, then decide what language makes sense for it.
This is my favourite list in here, but I’d throw a Lisp in too.
Lisp, Haskell, and Rust should all teach you something new and profound about programming.
C# has been doing a lot of really cool things lately, and has first-class Linyx support.
Kotlin is by far my fav language. I’ve been astonished by its capabilities used with the “Exposed” library
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.
What would you recommend learning instead?
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.
Cleaner python? Hahaha that’s hilarious
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
Kotlin would be the most straightforward/useful professionally if you’re primarily Java. Other Java stack options are Scala or (shudders) Clojure
Prolog.
It will free your mind.
Personally, the language that’s taught me the most to learn has been Haskell. It has a lot of very interesting ideas and a learning curve that plateaus after most other languages. There are several ideas that have trickled down from Haskell to other parts of the programming world and learning about them in the context Haskell is in my opinion better because you’ll learn about them in a context where they fit in with the rest of the language very well instead of being late additions that offer an alternate way of doing things.
Coming from Java and JS, Haskell has a very different approach to a lot of things so you’ll have to re-learn a lot before you get productive in it. This can be frustrating for some but you’ll learn more if you get over that hump on the other hand.
Haskell doesn’t see very much industry use and arguably isn’t very well suited for industrial application (I haven’t used it professionally so I don’t know personally) so it might not directly help you land any new jobs but it is in my opinion it’s a very good way to develop as a programmer.
These come to mind:
- Elixir to expand the way you think about problems (and maybe your career).
- D to bring familiar conveniences closer to the metal.
- C to understand (and maybe contribute to) a vast ocean of existing software.
- Python for development productivity.
I love C#, but F# is also super fun and worth checking out.
When I first ventured into programming, I felt like a complete novice. With no prior experience, diving into the complex world of coding seemed daunting. That’s when I stumbled upon full stack development service. These services offered a comprehensive solution, covering everything from front end to back end development. It was like having a guiding hand through the intricacies of programming. With their expertise, I was able to navigate the complexities of software development with confidence. Full stack development services became my stepping stone into the world of programming, helping me transform from a novice into a proficient developer.
Give Clojure a go.
It’s a modern variant of lisp that runs on the JVM and has deep interoperability with Java, so you can leverage your existing knowledge of Java libraries.
But as it’s a lisp, it will have you thinking about problems in a very different way.