Live data from Hacker News

Ask HN: Which programming language should a journeyman programmer learn?

news.ycombinator.com

11–20 of 27 posts

Re: Ask HN: Which programming language should a journeyman programmer learn?

#11
post #8

So, since you mentioned Java, Kotlin and Groovy are very pleasant to write and quite easy to learn, lots of syntactic sugar. I'd say Kotlin is a better language than Groovy. Scala is a very deep language to learn, lots of fascinating features, just reading Programming Scala is amazing and totally recommended. The learning curve is steeper to get to more advanced concepts but it is worth it. Rust is not as difficult t…

I can’t say I’m too jazzed about Kotlin or Groovy, but Scala on the other hand sounds really brilliant!

Re: Ask HN: Which programming language should a journeyman programmer learn?

#12

(You should prepend "Ask HN:" to your post's title.) This almost sounds like language as an 'intellectual pet' type of motivation, which is ~somewhat at odds with "broadening my horizons". Why not explore 'new [advanced] things to create' in one of the most fun languages you already know? Or, get excited by exploring a dimension such as 'performance', or 'distribution', etc. So, my 2c is first decide if you want to b…

Edited. And fair enough point. To use your analogy, this question is more of the "linguist" side. If I were solely interesting in the "writer" side, I would be building distributed systems in Go.

In that case, something like Prolog would definitely be a change and possibly a lot of fun to explore but I have no idea about the community. I also liked Chapel [1] a lot when I looked at a couple of years ago (again modulo community). If you are into distributed systems TLA+ could be a nice thing to know though obviously it's not a general purpose language.

[1]: https://chapel-lang.org/

Re: Ask HN: Which programming language should a journeyman programmer learn?

#13

Haskell is the "deep end" in terms of its ideology, but not difficulty. In practice, I've found compromise languages like Typescript and Scala more challenging because they're everything to everybody. If you already enjoy the benefits of types and want to explore that avenue further, then Haskell makes more sense than some of the alternatives.

Insightful comment. In general I prefer tools that have a prescribed way of looking at the world and don’t try to be everything to everyone. That said, I feel a certain allure to the depth and “wizardry” that I’ve heard so much about in Scala, which doesn’t generally fit this mold. So at the moment I really think I’m stuck between Scala, Haskell, or Elixir. It’s tempting for people to simply say, “Learn all of them”…

I would advise looking at Haskell. There is just so much there, and while you learn it you get so much exposure.

Elixir is def cool but keep in mind that it is just much more normal of a language. You can probably learn it in a few weeks. Haskell is a much longer journey

Re: Ask HN: Which programming language should a journeyman programmer learn?

#14
I’m a fan of Rust. Discovered it in mid 2020 and am loving every piece of it. It does have its warts (e.g. incomplete async story) but what language doesn’t? In particular I like its chatty compiler — lots of d’oh mistakes are caught while the code is still fresh in my mind for example. I also like reading blog posts about Rust; currently going through this: https://fasterthanli.me/articles/some-mistakes-rust-doesnt-c...

Re: Ask HN: Which programming language should a journeyman programmer learn?

#16

Earlier quoted context omitted.

Edited. And fair enough point. To use your analogy, this question is more of the "linguist" side. If I were solely interesting in the "writer" side, I would be building distributed systems in Go.

In that case, something like Prolog would definitely be a change and possibly a lot of fun to explore but I have no idea about the community. I also liked Chapel [1] a lot when I looked at a couple of years ago (again modulo community). If you are into distributed systems TLA+ could be a nice thing to know though obviously it's not a general purpose language. [1]: https://chapel-lang.org/

@blueslurpee: I'm definitely biased, but agree that Chapel would be a fun language to explore, particularly if you're interested in looking at integrated task- and data-parallelism within a language or distributed computing with a partitioned global namespace. If you do, feel free to reach out with questions/comments/requests on Stack Overflow, Discourse, GitHub, Gitter, etc. [1]

-Brad

[1]: https://chapel-lang.org/community.html

Re: Ask HN: Which programming language should a journeyman programmer learn?

#17

Haskell is the "deep end" in terms of its ideology, but not difficulty. In practice, I've found compromise languages like Typescript and Scala more challenging because they're everything to everybody. If you already enjoy the benefits of types and want to explore that avenue further, then Haskell makes more sense than some of the alternatives.

Insightful comment. In general I prefer tools that have a prescribed way of looking at the world and don’t try to be everything to everyone. That said, I feel a certain allure to the depth and “wizardry” that I’ve heard so much about in Scala, which doesn’t generally fit this mold. So at the moment I really think I’m stuck between Scala, Haskell, or Elixir. It’s tempting for people to simply say, “Learn all of them”…

For what it's worth, I write Scala professionally. I don't think I'd be nearly as successful with it if I hadn't learned Haskell first. ymmv, but it's helpful to divide and conquer. Haskell is a much cleaner way to "learn FP." You can take almost all of that knowledge and staple it onto Scala later. Learning the universal and ultimately quite simple concepts that comprise FP alongside the Scala language itself seems needlessly painful. The noisy syntax and compiler quirks will obscure whatever wisdom you're hoping to squeeze out of the process.

So yeah, learn Haskell, then make money with Scala.

Re: Ask HN: Which programming language should a journeyman programmer learn?

#18
I would recommend a lisp (scheme is beautiful) if you're looking to see things a different way, and grow. I found its depth of history and its elegant simplicity inspiring.

If you want types, I'd check out Haskell, or OCaml or F#.

So I guess what my advice is decide how you want to grow and choose a language at that extreme.

If you've learned a mainstream get it done language you wont get much out of learning another one.

Re: Ask HN: Which programming language should a journeyman programmer learn?

#19
Lisp/Scheme are great brain-expanders. So is APL. For long-term maintenance, the more static typing the better, so I wouldn't use them for anything big, but they're great for one-off problem solving. Before anyone chimes in with "you can do that with macros," patched-in and after-the-fact typing doesn't count.

Go is a strange mix of functional and imperative that, despite its simplicity, is illuminating in its own way.

Getting to really know the shell and regex, inside and out, can also be a revelation.

Re: Ask HN: Which programming language should a journeyman programmer learn?

#20

Earlier quoted context omitted.

Insightful comment. In general I prefer tools that have a prescribed way of looking at the world and don’t try to be everything to everyone. That said, I feel a certain allure to the depth and “wizardry” that I’ve heard so much about in Scala, which doesn’t generally fit this mold. So at the moment I really think I’m stuck between Scala, Haskell, or Elixir. It’s tempting for people to simply say, “Learn all of them”…

I would advise looking at Haskell. There is just so much there, and while you learn it you get so much exposure. Elixir is def cool but keep in mind that it is just much more normal of a language. You can probably learn it in a few weeks. Haskell is a much longer journey

Okay, I think this and the sibling have tipped it. Sounds like Haskell is where I will land and the best place to start branching out. Appreciate you!
Post reply on HN