Programming doesn't have to be easy
April 20, 2006 7:33 AM Subscribe
Somewhere between theoretical constructs like finite automata and Turing machines and feature-rich programming languages like Perl and C++ lives a world of misfits. These so-called esoteric languages frequently employ obfuscation and fustian as central design goals; but that doesn't mean you can't do some neat (useless) things with them.
I'd seen some of these before, but Chef is just...amazing. Really awesome post.
posted by youarenothere at 7:41 AM on April 20, 2006
posted by youarenothere at 7:41 AM on April 20, 2006
This recipe prints the immortal words "Hello world!", in a basically brute force way. It also makes a lot of food for one person.
posted by youarenothere at 7:43 AM on April 20, 2006
posted by youarenothere at 7:43 AM on April 20, 2006
Fustian? In three straight FPP?
"You keep using that word. I do not think it means what you think it means."
posted by MasonDixon at 7:57 AM on April 20, 2006
"You keep using that word. I do not think it means what you think it means."
posted by MasonDixon at 7:57 AM on April 20, 2006
What's with the "fustian"s today?
posted by klangklangston at 7:57 AM on April 20, 2006
posted by klangklangston at 7:57 AM on April 20, 2006
3.33, time for fustian.
posted by Joeforking at 7:58 AM on April 20, 2006
posted by Joeforking at 7:58 AM on April 20, 2006
I'm going to jump in on the fustian posting, because it bothers me, and makes me want to cause physical harm to people near me.
Also, it would appear that it is being used correctly in each of the posts, which is suprising as hell.
Of course that's asuming they were referring to the use of gibberish, versus the definition meaning a cotton blend. Because I don't think Malbolge has anything to do with cotton blends.
I'm just sayin.
posted by daq at 8:04 AM on April 20, 2006
Also, it would appear that it is being used correctly in each of the posts, which is suprising as hell.
Of course that's asuming they were referring to the use of gibberish, versus the definition meaning a cotton blend. Because I don't think Malbolge has anything to do with cotton blends.
I'm just sayin.
posted by daq at 8:04 AM on April 20, 2006
I can't believe I didn't link to ETA, the language that inspired me to make this post. I started work on an ETA quine, but then when I discovered someone had already done it, and it wasn't exactly pleasant, I abandoned it.
posted by Plutor at 8:07 AM on April 20, 2006
posted by Plutor at 8:07 AM on April 20, 2006
My favorite esolang by far is Befunge, which was aptly described once as a cross between Forth and Lemmings.
posted by wanderingmind at 8:15 AM on April 20, 2006 [1 favorite]
posted by wanderingmind at 8:15 AM on April 20, 2006 [1 favorite]
Yeah, Chef is pretty cool. I wouldn't want to eat from it, though.
posted by OmieWise at 8:22 AM on April 20, 2006
posted by OmieWise at 8:22 AM on April 20, 2006
Fustian? In three straight FPP?
What's with the "fustian"s today?
Hah, I was just thinking the exact same thing.
posted by Gamblor at 8:35 AM on April 20, 2006
What's with the "fustian"s today?
Hah, I was just thinking the exact same thing.
posted by Gamblor at 8:35 AM on April 20, 2006
It's been downhill for me programming wise since BASIC in High School. I'm more intrigued by the fussy Fustian hijinks that began at 10:33 AM. Spill the beans you dastardly scoundrels.
posted by Skygazer at 8:46 AM on April 20, 2006
posted by Skygazer at 8:46 AM on April 20, 2006
This has my vote for post of the year as well - I had not heard of Malbolge before today, and my life was not complete.
posted by Ryvar at 8:54 AM on April 20, 2006
posted by Ryvar at 8:54 AM on April 20, 2006
i think it's time for an FPP on Fustian, Operation Fustian, or similar...
posted by casconed at 9:08 AM on April 20, 2006
posted by casconed at 9:08 AM on April 20, 2006
These are some great, wacked-out fun. I ran across Wierd and a few of its cousins several years ago and got a great kick out of them (I can't program it myself but I appreciate the aesthetic).
Wierd is a graphical language developed by Chris Pressey, Ben Olmstead, and John Colagioia, in 1997. In Wierd, there are only two symbols: whitespace and everything else. Non-whitespace characters are followed in lines (starting in the top left corner, going southeast), and instructions are given by every turn made to the right:
I always thought languages like this could make infuriating components of a vicious cryptographic chain or something. Security through obscurity to the umpteenth power.
posted by beth at 9:10 AM on April 20, 2006
Wierd is a graphical language developed by Chris Pressey, Ben Olmstead, and John Colagioia, in 1997. In Wierd, there are only two symbols: whitespace and everything else. Non-whitespace characters are followed in lines (starting in the top left corner, going southeast), and instructions are given by every turn made to the right:
I always thought languages like this could make infuriating components of a vicious cryptographic chain or something. Security through obscurity to the umpteenth power.
posted by beth at 9:10 AM on April 20, 2006
I'll throw in the Shakespeare programming language as my favorite.
posted by brett at 9:26 AM on April 20, 2006
posted by brett at 9:26 AM on April 20, 2006
You people are insane.
posted by blue_beetle at 9:48 AM on April 20, 2006
posted by blue_beetle at 9:48 AM on April 20, 2006
I can't decide whether I'm proud or ashamed.
BrainF*** is my favorite minimalist language.
Befunge is my favorite fun language.
Piet looks cool, because its programs look cool.
(And I really shouldn't have any credit for Wierd; I really didn't do any work on it.)
posted by reventlov at 10:22 AM on April 20, 2006
BrainF*** is my favorite minimalist language.
Befunge is my favorite fun language.
Piet looks cool, because its programs look cool.
(And I really shouldn't have any credit for Wierd; I really didn't do any work on it.)
posted by reventlov at 10:22 AM on April 20, 2006
Fustianity aside, this is a day of synchronicities or something... I read a page about a "hello world" program written in malbolge years ago, before being on Metafilter. The guy used genetic/evolutionary approaches to find a way to write the hello world program. Now, I click on the malbolge link and see that the guy who wrote it was none other than 'andrew cooke'.
posted by knave at 10:30 AM on April 20, 2006
posted by knave at 10:30 AM on April 20, 2006
High-level languages are so 1970s.
Assembly language is so 1960s.
Instruction sets are so 1950s.
Transport Triggered Architecture is where it's at.
posted by mad judge pickles at 12:24 PM on April 20, 2006
Assembly language is so 1960s.
Instruction sets are so 1950s.
Transport Triggered Architecture is where it's at.
posted by mad judge pickles at 12:24 PM on April 20, 2006
My favorites not yet mentioned: Unlambda, inspired by the Lambda Calculus... but omitting the lambda operation.
HQ9++ in which you can write several common programs with one character.
posted by Zed_Lopez at 1:00 PM on April 20, 2006
HQ9++ in which you can write several common programs with one character.
posted by Zed_Lopez at 1:00 PM on April 20, 2006
...not yet mentioned...
(Actually looks at links in FPP. Oops.)
posted by Zed_Lopez at 1:07 PM on April 20, 2006
(Actually looks at links in FPP. Oops.)
posted by Zed_Lopez at 1:07 PM on April 20, 2006
(=< `$9]75yxz7wt.3,+o/o'k%$h'~d|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=< ;:9876543s+oolm/i>
Mmmkay - that's me put off immediately!! Is programming supposed to be fun? Useful? What's the point of a language that takes all that nonsense just to write "HEllO WORld"? Duh!?>>
posted by Chunder at 2:01 PM on April 20, 2006
Mmmkay - that's me put off immediately!! Is programming supposed to be fun? Useful? What's the point of a language that takes all that nonsense just to write "HEllO WORld"? Duh!?>>
posted by Chunder at 2:01 PM on April 20, 2006
I blame Neil Gaiman for spreading "fustian" around.
posted by Smedleyman at 5:06 PM on April 20, 2006
posted by Smedleyman at 5:06 PM on April 20, 2006
You've got to give some respect to Mathematica, where you'll eventually find yourself issuing something like the following perfectly legit command:
posted by Wolfdog at 5:23 PM on April 20, 2006
#^%%!&/@%
posted by Wolfdog at 5:23 PM on April 20, 2006
I once wrote an unlambda interpreter in Python. Good god was it slow.
posted by kenko at 11:16 PM on April 20, 2006
posted by kenko at 11:16 PM on April 20, 2006
I also once wrote a python module that allowed you to write code like this:
(Def, 'cleanup',
(Lambda, filelist,
(Begin,
(Lambda, (Def, 'cleanup-h',
(Lambda, i,
(If, (Lambda, ('!=', (Val, 'i'), (Val, 'lim'))),
(Begin,
(Lambda, (If, (Lambda, ('==', (Val, 'i'), (Val, 'lim'))),
(EarlyReturn, None))),
(LCall, 'os.remove', (Getitem, 'filelist', (Get, 'i'))),
(LCall, 'cleanup-h', ('+', (Val, 'i'), 1)))))))
(SetGet, 'lim', (LCall, len, filelist)),
(LCall, 'cleanup-h', 0))))
This was before python included proper nested scopes support, which means that (given that cleanup-h actually worked as intended) it had capabilities regular python didn't!
posted by kenko at 11:21 PM on April 20, 2006
(Def, 'cleanup',
(Lambda, filelist,
(Begin,
(Lambda, (Def, 'cleanup-h',
(Lambda, i,
(If, (Lambda, ('!=', (Val, 'i'), (Val, 'lim'))),
(Begin,
(Lambda, (If, (Lambda, ('==', (Val, 'i'), (Val, 'lim'))),
(EarlyReturn, None))),
(LCall, 'os.remove', (Getitem, 'filelist', (Get, 'i'))),
(LCall, 'cleanup-h', ('+', (Val, 'i'), 1)))))))
(SetGet, 'lim', (LCall, len, filelist)),
(LCall, 'cleanup-h', 0))))
This was before python included proper nested scopes support, which means that (given that cleanup-h actually worked as intended) it had capabilities regular python didn't!
posted by kenko at 11:21 PM on April 20, 2006
kenko: "The andrew cooke of acooke.org isn't our own, is it?"
Huh, it looks like it is. How about that.
posted by Plutor at 4:28 AM on April 21, 2006
Huh, it looks like it is. How about that.
posted by Plutor at 4:28 AM on April 21, 2006
« Older Not for profit bike shops | Currency Collages Newer »
This thread has been archived and is closed to new comments
- Most people seem to agree that INTERCAL, created in 1972, was the first esoteric language.
- Malbolge is so complex that it has never been proven to be Turing-complete, and the first "Hello, world!" had to be written with a genetic algorithm.
- Chef: It took me fifteen minutes to decide this was real. He's created several languages.
- Justif is deadly poison. Also from someone who's made more than one
posted by Plutor at 7:36 AM on April 20, 2006