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!
I say that you should find some interesting project, possibly something related to some desktop environment like Gnome, KDE, sway, cosmic and so on. There are multiple fun/interesting projects around them. Then pick a small and manageable task, use that to learn the language that project uses.
I find Cosmic to be a very interesting desktop project, and they use Rust if that would be of interest.
C.
How about COB-
No joke languages.
Oh…
While it’s related to your job and not very new compared to your current stack, it’s very worth it to learn typescript. It has a cool type system and makes frontend development sane.
Just avoid their implementation of Enums.
I advise you to learn something different and hard for you. Only this case will help you to grow and realize a lot of new.
- Rust for hard
- Nim for something different
- C for understanding how things work
All these languages are efficient and forget about hype and popularity. Language does not matter if you have what to write with it.
Ada particularly the SPARK subset. It’s approach is quite different than most languages, focusing on minimising errors and correctness. It’s fairly difficult but I like to use it to teach people to actually understand the problem and how to solve it before they ever write the code.
I’m a huge fan of Haskell and (for pragmatic purposes) Purescript. Purescript is hard to find much in the way of documentation but it is so similar to Haskell that the steep learning curve is worth it, IMO. I rarely find a project that I couldn’t accomplish with one or the other or both.
Nothing I have done in my career has given me even close to the benefit I got from learning Haskell. I don’t get to use it professionally, but the patterns I learned to recognize in Haskell are everywhere.
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.
Have you ever wanted to do more with regular expressions? Then give Perl a try.
Or Ruby, if you want to suffer less psychic damage…
Do you want to awaken the Elder Gods, and consequently suffer a slow and inevitable descent into horror and madness? Then give Perl a try.
Truly efficient perl code is write-only.
Odin is quite a fun new language I just started learning. It is meant as a C replacement and comes with a decent standard library and third party library so there is a lot already built that you can use. It also is fully compatible with C and can use C libraries.
Just be warned that documentation is lacking and you will have to read the source code of the standard library from time to time or seek help from their discord.
Read up a bit on this now, and it definitely looks like something I want to try out! One of the beautiful thing about C is its simplicity, and it looks like Odin has been able to keep that, while introducing some nice convenience features that I often feel like I miss when writing C.
Scheme, and work through SICP, watch the lectures along with the reading.
I prefer Chez Scheme but there’s many implementations. Chez’s fast and practical, C FFI, large standard library, nice REPL with editor.
I’ll suggest Elixir. It’s a language that runs on the same virtual machine as Erlang, which has proven to be great for ultra-reliable and excellent at managing many, MANY concurrent processes.
Elixir itself builds upon this great foundation with a syntax similar to Ruby, but entirely functional. It’s a delightful language to read and write.
Clojure, it’s a lisp that runs on the jvm and would be quite the shakeup for ya.
If you’re looking for something new, I would recommend you the following list:
- Ruby
- Python
- Erlang
- Elixir
- Gleam
- Zig
No preference order, just a bunch of them I already know or are in my want-to-learn list.
Ruby is dying
Unfortunately true, but what a wonderful language it is.
syntax is pretty neat but if OP wants something with similar syntax that performs better instead of type checking unit tests alone taking more time to complete than compiling a C++ AAA game, then Elixir might be a better choice. Also it’s functional approach could really provide a fun challenge. I mean, you can even see that by comparing the performance and resource consumption of akkoma/pleroma vs mastodon. Above 10k users or so you have to either scale your instance horizontally or shut it down.
I can recommend Rust - I’m training a few people on it.
And a pure functional programming language like Haskell or Scheme, if you don’t know what functional programming is, or are not comfortable with it. Functional programming needs a different mental approach to traditional (imperative) programming paradigm. Some of the more modern languages like Rust, JS and Python incorporate a lot of functional programming constructs. So it makes sense to learn them.
And a lisp - Common Lisp’s popularity is a public secret. Scheme is also fine. This family is homoiconic (program and data are treated more less the same). The syntax is actually very close to its AST. This gives Lisp unparalleled metaprogramming capabilities - mostly through macros. Macros in traditional languages are nowhere near Lisp Macros.
If it interests you, study a stack based language like Forth or Factor. Though they feel very different from Lisps, they have similar underlying properties. And you get more or less the same advantages.
+1 for Rust, the learning curve can be pretty daunting, but once you’re over the hump you’ll never want to go back
Agree. The official book is a really good start though, and available for free. https://doc.rust-lang.org/stable/book/
I actually ordered the paperback version of the book. I hope it’s not too outdated compared to the online version, I just enjoy reading in actual paper :P
The second edition was published last Feb (2023) I believe. I read it on my Kindle, having “flicked through” the online version about 6 months prior, and yeah having it page by page with bookmarks etc was almost as good as paper, but far superior to the web version and I was able to read it cover to cover and gain a lot from it. I immediately then read about 4 other books on Rust! Can recommend “Rust Atomics & Locks” by Mara Bos, and “Rust for Rustaceans” by Jon Gjengset for the next level up.