Live data from Hacker News

Forty-Four Esolangs: The Art of Esoteric Code

spectrum.ieee.org

21–30 of 62 posts

Re: Forty-Four Esolangs: The Art of Esoteric Code

#21
post #5

Ook! I love esoteric languages. They're a never ending rabbit hole, and they really force you to revisit all of your assumptions about what it means to program. The most interesting ones for me were the Lambda calculus and Brainfuck. And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Collaborative software projects and all of…

> And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened.

Forth, (I think even more so than lisp), is fragmented, because its philosophy is not that you write “a forth program”, but that you write “a forth” that does what you need it to do. Don’t like the sign MOD chose to compute ‘-3124 modulo -17’? Don’t add a new one, but change yours. Need better approximations for integer goniometric functions? Change them to work in half-degrees, etc.

That makes sharing code difficult and that, in turn, makes it hard to write large programs.

Nowadays, I guess a ‘solution’ to that problem would be to run zillions of forths as microservices in a single process, but I don’t think that’s practical (could be fun, though. In the limit, one could give each forth a VM page of RAM or maybe even less to work in. Imagine a forth whose sole goal is to maintain and edit a string, with words for string indexing, search, replace, duplication, etc. that runs together with millions of other forths in a single process.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#22
post #21
post #5

Ook! I love esoteric languages. They're a never ending rabbit hole, and they really force you to revisit all of your assumptions about what it means to program. The most interesting ones for me were the Lambda calculus and Brainfuck. And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Collaborative software projects and all of…

> And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Forth, (I think even more so than lisp), is fragmented, because its philosophy is not that you write “a forth program”, but that you write “a forth” that does what you need it to do. Don’t like the sign MOD chose to compute ‘-3124 modulo -17’? Don’t add a new one, but chang…

Interesting view. The way I approached Forth was to create a DSL that made it easier to write the application in.

The biggest issues that I had with Forth were: hard to work on code as a team, the 'screens', finding it increasingly hard to name words.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#23
post #4

I don't know the list of languages included in the book, but anyone interested should try out: - J: https://www.jsoftware.com/#/ you'll learn arbitrary dimension arrays, verb composition and more - Lisp: I don't know the right Lisp to recommend. Macros stand out as something to learn - Forth: I don't know the right Forth to recommend. The stack is an interesting metaphor - A constraint-based language: maybe https://w…

Racket is the canonical LISP (well, Scheme) to recommend to new users.

https://racket-lang.org/

Re: Forty-Four Esolangs: The Art of Esoteric Code

#24
post #5

Ook! I love esoteric languages. They're a never ending rabbit hole, and they really force you to revisit all of your assumptions about what it means to program. The most interesting ones for me were the Lambda calculus and Brainfuck. And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Collaborative software projects and all of…

Forth is unbelievably underrated and I think its value is locked in poor DX.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#25

IMO there's no such thing as esoteric languages; it's just that some ideas catch on and some don't (or take longer). If C ideas had not caught on, today we'd all it an "esoteric" language.

This is missing the point entirely. Esoteric languages are those designed to intentionally be novel in some manner, and frequently allow impractical design choices to support the art, joke or boundary-pushing novelty. They're not intended to be used for day to day professional work. Consider for example the Olympus language highlighted in the article. It is impractically verbose but is all the more amusing for it. Ot…

Not sure if this is the one you meant, but https://esolangs.org/wiki/Shakespeare is relevant.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#26
post #5

Ook! I love esoteric languages. They're a never ending rabbit hole, and they really force you to revisit all of your assumptions about what it means to program. The most interesting ones for me were the Lambda calculus and Brainfuck. And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Collaborative software projects and all of…

There's more than one good way to define "esoteric" but it gave me cognitive whiplash to hear the term used about lambda calculus.

I can understand that perspective, there are plenty of purpose-built esolangs which are very close to the OG lambda calculus, and depending on your background the whole thing might seem bizarre and unfamiliar and ancient and irrelevant.

At least logically I see that could happen, but my heart disagrees. I see lambda calculus as a root of the conjoined tree[0] which supports all of modern programming. It feels to me like calling written English esoteric because some people get by without reading and writing!

(I'm certainyl not saying you're wrong, but just that it's fascinating how different two valid perspectives can be.)

[0] https://en.wikipedia.org/wiki/Inosculation

Re: Forty-Four Esolangs: The Art of Esoteric Code

#27
post #23
post #4

I don't know the list of languages included in the book, but anyone interested should try out: - J: https://www.jsoftware.com/#/ you'll learn arbitrary dimension arrays, verb composition and more - Lisp: I don't know the right Lisp to recommend. Macros stand out as something to learn - Forth: I don't know the right Forth to recommend. The stack is an interesting metaphor - A constraint-based language: maybe https://w…

Racket is the canonical LISP (well, Scheme) to recommend to new users. https://racket-lang.org/

Yeah, as much as I love Common Lisp and prefer it to Scheme (despite learning Scheme first), the fact you can read the entirety of R7RS small in a single afternoon is, in my opinion, quite important in making the language approachable to beginners.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#28
post #4

I don't know the list of languages included in the book, but anyone interested should try out: - J: https://www.jsoftware.com/#/ you'll learn arbitrary dimension arrays, verb composition and more - Lisp: I don't know the right Lisp to recommend. Macros stand out as something to learn - Forth: I don't know the right Forth to recommend. The stack is an interesting metaphor - A constraint-based language: maybe https://w…

Good choices. Add APL, Prolog, and Rebol.

Hmmm. GP listed three languages which are not esoteric, and you've patted them on the back and shared three more which are not esoteric. Oops.

Esoteric language =/= any non-mainstream language.

Here's the definition from the esoteric programming language wiki, which is a lovely resource for anyone interested https://esolangs.org/wiki/Esoteric_programming_language:

> An esoteric programming language is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#29
post #5

Ook! I love esoteric languages. They're a never ending rabbit hole, and they really force you to revisit all of your assumptions about what it means to program. The most interesting ones for me were the Lambda calculus and Brainfuck. And of course there is Forth. Which always felt like it was just around the corner from some kind of breakthrough but it never really happened. Collaborative software projects and all of…

Forth isn't an esoteric programming language. The word “esoteric” has a specific meaning in this context.

Re: Forty-Four Esolangs: The Art of Esoteric Code

#30
Malbolge and then https://github.com/iczelia/malbolge-lisp were mindblowing to me.

And then there's the legendary https://github.com/hundredrabbits/Orca

"Orca is an esoteric programming language designed to quickly create procedural sequencers, in which every letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame."

Post reply on HN