Ask HN: Just finished my dissertation, what language should I learn for fun?

11 points by azhenley ↗ HN
After working so much on my PhD dissertation, I finally want to take a break and code some things for fun. I want to start by learning a new language (I have been using C#, Python, and JavaScript). I'm not looking for a job, just a fun and capable language for side projects.

Nim and Crystal have been getting a lot of praise on HN, but I am also considering Go, Rust, and Elixir. While there is no perfect answer, I am open to suggestions.

11 comments

[ 3.6 ms ] story [ 32.5 ms ] thread
My votes go to Rust and Elixir. I'd say I've had the most fun in Elixir recently, but Rust comes a very close second - especially once the borrow-checker and I started seeing eye to eye.
I’ll definitely look into Elixir some more. I don’t have a lot of experience with functional languages so it could be a worthwhile choice for me.
If you want something that's really fun then I would say Nim is a good choice (jobs are still rather rare for Nim, although they do also exist). If you've got a particular project in mind then I would happily give you some resources on how to implement it in Nim :)
I just started going through the Nim tutorial! I'll let you know how it goes.

After looking at some projects on github that use Nim, I'm very impressed. Thanks for all your work on this!

since you haven't used any purely functional language yet, given your choices, i would recommend Elixir. Different programming paradigms ( procedural, oop, fp, declarative, etc... ) teaches different ways to approach a given problem domain, it's an useful skill to have.
Learn something totally different from what you’re used to, like PureScript or Haskell.
+1 Rust, but be warned: the learning curve is high. I work with similar language to you and Rust not only sheds light on low level concerns and safety, but also has an excellent type system. Programming Rust by Blandy and Orendorff, the online Rust Book, and the Rust By Example website are all good resources.

Rust is a lot more verbose than a language like Elixir so it might feel like wading through mud for a while.

I'm also throwing out the suggestion of a Lisp. Homoiconic macros are interesting and difficult. I'm currently reading Let Over Lambda by Doug Hoyte and it's like there's a whole world of technique I had no idea existed.

Reading `Structure and Interpretation of Computer Programs` and doing all the exercises in Scheme is quite fun.