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!!!
Re the sidebar: How are Nim and Roc partially concatenative?
I may be expressing it poorly and inaccurately, but what I mean is that in Nim you can re-order arguments and functions to start with some data followed by a series of transformations. The following two lines are equivalent:
parse_int(read_line(stdin)) stdin.read_line().parse_int()
Roc offers a similar flow with their
|>
operator. Here’s a snippet from one of my Advent of Code 2022 solutions:https://en.wikipedia.org/wiki/Uniform_Function_Call_Syntax
Exactly. That’s the second link under “Wikipedia Topics” in the sidebar.
That’s true, but if the transformations have more than one argument, they go after the name:
data.split(",").join(";")
as opposed to concatenative programming languages, where all arguments go before the name and there’s no visual indication of the structure:
data "," split ";" join
Also, there are more languages with this feature, for example D, VimScript or Koka.
Yup, I understand. That’s why I’ve not put them in the concatenative section.
Thanks, maybe I’ll add them to the sidebar! I hadn’t heard of Koka.
If you have a suggested heading/description to replace “partially concatenative” I’m interested. Function chaining? And I’m not sure but maybe execline is actually concatenative and needs to be moved out of that section.
I think “uniform function call syntax” is the established term for this particular feature.
Thanks. I know that’s the case for Nim’s flexibility, but I didn’t think it applied to the pipe operator stuff like in Roc. I’ll do some reading tonight to confirm.