Remix.run Logo
userbinator 5 hours ago

For those who actually want to learn languages which are "fundamentally changing how you think about software", I'd recommend the Lisp family and APL family.

fuzztester a minute ago | parent | next [-]

And Forth.

And 6502 assembly. ;)

And SNOBOL.

And Icon.

And ...

pjmlp 4 hours ago | parent | prev | next [-]

And Prolog as well.

zwnow 4 hours ago | parent | prev | next [-]

I'd also throw Erlang/Elixir out there. And I really wished Elm wasn't such a trainwreck of a project...

59nadir 9 minutes ago | parent | next [-]

No need to include Elixir here; none of the important bits that will change how you view software come from Elixir, it's just a skin on top of Erlang and that's it.

zwnow 2 minutes ago | parent [-]

I'd argue more people use Elixir over Erlang at this point. Sure its just an abstraction on top of Erlang, but people learn through Elixir nowadays, not through Erlang.

matu3ba 3 hours ago | parent | prev [-]

What is the most optimal Erlang/Elixir you can think of regarding standardized effect systems for recording non-determinism, replaying and reversible computing? How comparable are performance numbers of Erlang/Elixir with Java and wasm?

zwnow 3 hours ago | parent [-]

I'd recommend asking the Elixir community about this as I didn't even understand your question. I am by no means a professional with Erlang/Elixir. I threw it out there because these language force you to think differently compared to common OOP languages.

miki123211 4 hours ago | parent | prev [-]

Am I correct that you can essentially "learn APL without learning APL" by just learning Numpy / Pytorch?

I looked at array languages briefly, and my impression was that"ooh this is just Numpy but weirder."

benji-york 30 minutes ago | parent | next [-]

You might enjoy this video: https://www.youtube.com/watch?v=a9xAKttWgP4

veqq 3 hours ago | parent | prev [-]

Not even close. While Numpy has many similar operations, it lacks the terseness, concepts like trains and forks etc. Modern APL style doesn't use... control flow (neither recursion nor loops nor if...) and often avoids variables (tacit/point-free style).