Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Krotera
Jun 16, 2013

I AM INTO MATHEMATICAL CALCULATIONS AND MANY METHODS USED IN THE STOCK MARKET
From what I can tell it's pretty common in software and engineering to try and pull humor out of bad design. It's a pretty longstanding tradition in programming language design to specify "esoteric languages," which are programming languages that intentionally make unconventional decisions because they're funny or to see if something workable can be pulled out of the wreck.

Before I really got into programming (I don't have much of a CS background and at the time I was only really strong in one or two languages) I spent a lot of time browsing the old Esolang wiki: http://esolangs.org/wiki/Main_Page , that is, for those who don't feel like googling, and at the time I didn't really know enough about programming languages to really appraise the quality of work that was there. Well, a couple years later I'm comfortable saying I know a little bit more and to be really blunt about it, I'm not too impressed.

Let me start with an example. WASD. It's a Brainfuck. A lot of esolangs are Brainfucks. The first genre that I saw almost constantly looking around was assembly languages for virtual machines that really are't that clever or unique in their architecture, which includes Brainfuck, includes a bunch of register machines, a lot of stack machines, and plenty of variations on these which follow some inane theme like recipes or profanity. There's also plenty of languages which trivially compile to another language that already exists: LOLCODE is the one that already exists.

Another genre that's already heavily represented is languages that have no idea how the computer actually works, ignore how the computer actually works for the sake of making an unfunny joke, or have no idea what innovations have already been made in language design and are convinced despite all evidence or the lack thereof of their own novelty. Here's a few! Parnassus, Hebe Script, and mugh brains (these took forever to find because seven out of eight 'random page' clicks were Brainfucks, stack machines, or Befunges).

Anyway, what I think is bothering me -- and I have a feeling that those of you who have to deal with a lot of new programmers are probably bothered by this too, in other contexts -- seems to be
  • A preoccupation with syntax. A lot of the designers on Esolang seem to be of the opinion that if their language looks different from other languages, even if others are internally very similar, that they've designed a language as much as any other language designer.
  • A lack of actual ideas, Yes, we get it. You know what a stack machine is. But we've seen hundreds of them and no longer care.
  • A lack of follow-through. It seems like a lot of programmers want to skirt the bare minimum of what it means to define a language, and rarely get past a bytecode-level instruction set. They rarely explore the implications of their language on usability and at most point specify the (absolutely trivial) transformation of source code in their language to Brainfuck.
  • A lack of real humor: most of the attempts to be funny seem to rely on the introductory shock of 'yes, there's a language that looks like this' despite the language in question being a cookie-cutter Brainfuck or compile-to-C case and the specification a find-and-replace table. Maybe it's pancakes, or jugs, or poodles or something, but whatever it is it's barely interesting.
And all of these, to me, seem to amount to the idea that if you design a language, no matter how little effort or time you put into it -- even if you don't know how to implement it or aren't sure if it's even technically possible to implement -- that you've won, in the same sense that the horde of hacks that participates in NaNoWriMo comes back in December and says it's won despite the product of each author's work being a disheveled self-absorbed wreck with no value even to them, its creator. It's like, because new programmers see designing a language as the peak achievement of any programmer (it's not), they don't mind cutting corners and skipping whole sections of labor to reach that golden finish.

I'm a little tired of writing, but let me link some of my favorite examples of esoteric language design as far as it relates to programming humor. They're not all language specs -- one's a protocol spec and one's a tutorial guide for a non-esoteric language, but suffice it to say that this is the kind of thing I'd like to see more often.


What do these have in common? How about actual jokes, originality, and/or a consistent theme?

Do any of you guys think esoteric languages are cool and actually care about quality? Because I'd be totally interested in seeing your drafting, even if you haven't implemented anything.

Adbot
ADBOT LOVES YOU

posting smiling
Jun 22, 2008
Actually, nobody cares.

(USER WAS PUT ON PROBATION FOR THIS POST)

duck monster
Dec 15, 2004

They can be interesting if they have something new to say, but otherwise, meh.

Like, intercal is funny because its an old joke specification never intended to be implemented that was written by someone who was actually funny. That it can actually be impleneted and used as a real language is almost extraneous to the point.

Brainfuck, likewise is interesting because it has some novel features that in the process demonstrate a few interesting features of computability.

And Malbolge is interesting for the the fact its utterly unprogrammable in practice although attempted to be proveably programmable in theory (Turns out it wasnt turing complete due to a memory constraint, but the attempt was laudable at least)

But theres a sea of clones that add nothing, and aren't really that funny either.

duck monster fucked around with this message at 04:38 on Jan 20, 2014

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
I like Piet as an esolang. Actually new and interesting things like that are pretty cool.

"Esolangs" which are just an existing esolang (or actual programming language - I'm sure someone's tried to pass off a MUMPS variant as a new esolang) but with the serial numbers filed off are really silly though.

Pollyanna
Mar 5, 2005

Milk's on them.


I have programmed in MUMPS. I would certainly call it 'esoteric'.

Krotera
Jun 16, 2013

I AM INTO MATHEMATICAL CALCULATIONS AND MANY METHODS USED IN THE STOCK MARKET

Pollyanna posted:

I have programmed in MUMPS. I would certainly call it 'esoteric'.

Yes, so would I. (You poor soul.) The only feature in MUMPS that actually interests me from a standpoint other than perverse fascination is the builtin persistence system, and even that I'm not sure was implemented well or safely.

I wasn't really ever a huge Piet fan (it always looked like the same syntactic fascination to me), but I can't really say that without being inconsistent, because I'm a big Perligata fan (which is just Perl expressed in Latin, albeit with a pretty detailed Latin representation). Actually, looking at the spec again, it's more interesting than I thought it was: I always remembered it being about just reading in a stream of pixels to manipulate the stack (a la everyone's first stack machine with more PNG files), probably because the 99 Bottles program reads like this: http://www.99-bottles-of-beer.net/language-piet-1269.html, but it's a bit more complicated than that in its preprocessing of the source file.

For the record, since I spent a lot of time railing against Brainfucklikes, I thought Brainfuck was pretty cool the first time I saw it and then literally never again.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
Homespring is a relatively unlazy esolang. It has the obligatory needlessly complex syntax, but the more interesting part of it is that it defines a unique model of computation driven by a gratuitous metaphor rather than just being Yet Another Stack Machine. It also reads well when the coder isn't lazy and just pads out the required token count with lorem ipsum (that's a FizzBuzz implementation).

LSC
Apr 17, 2006

MUMPS is wonderful and I won't hear anything negative said about the disease of a language.

Pollyanna
Mar 5, 2005

Milk's on them.


I actually got that wrong, I didn't program in MUMPS. I programmed in this:

code:
@OW,
100@XV@FV
@[@{@(@IF{=0 "No more"}," bottle",IF{~=1 "s"}," of beer on the wall, ",
      @IF{=0 "no more"}," bottle",IF{~=1 "s"}," of beer"),
    @IF{=0 "Go to the store and buy some more, 99 bottles of beer on the wall.";
        @("Take one down and pass it around, ",
          -1@IF{=0 "no more"}," bottle",IF{~=1 "s"}," of beer on the wall")},
    ""}]
@MV@Av@Wb@TW

Krotera
Jun 16, 2013

I AM INTO MATHEMATICAL CALCULATIONS AND MANY METHODS USED IN THE STOCK MARKET

Pollyanna posted:

I actually got that wrong, I didn't program in MUMPS. I programmed in this

Yeah, I kind of figured you were/had been in healthcare software; I hear a lot of the companies in that sphere are in the stone age. Epic Systems (who still work in MUMPS) is recruiting by my school and I can't help but feel a little sorry for the eager beavers who make it through the interview cycle.

bobua
Mar 23, 2003
I'd trade it all for just a little more.

I don't really understand your complaint. I mean, it would be nice if EVERYTHING was more interesting, sure. Isn't programming the last place we tell people not to do things unless they do them right? If the wild hair on your rear end ends up creating some programming language someone else doesn't find humorous enough, who cares? At least you're still part of the 2% of the population creating instead of just consuming.

It's very possible I misunderstood your complaint, though.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
It would be great if some of the effort expended on new EPLs were spent instead on other parts of the esoteric software stack. We need perverted editors, version control and UI frameworks too. You can't tell me the ideas aren't out there.

fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

I think this is kinda novel. It's a scheme-like language taking advantage of the fact that Haskell's type system is Turin-complete by compiling down to Haskell type signatures, then ghc typechecks it to compute the final result.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Gazpacho posted:

It would be great if some of the effort expended on new EPLs were spent instead on other parts of the esoteric software stack. We need perverted editors, version control and UI frameworks too. You can't tell me the ideas aren't out there.

perverse editor: TECO
perverse version control: visual sourcesafe, microsoft's source code destruction system
perverse ui frameworks: every "front end" js library

Deus Rex
Mar 5, 2005

Otto Skorzeny posted:

perverse ui frameworks: every "front end" js library

this one is sort of necessary though, given the kinds of UIs we're trying to shove into a document markup language :3:

Stoatbringer
Sep 15, 2004

naw, you love it you little ho-bot :roboluv:

C++ seems to be rapidly evolving into an esoteric language. I've seen some C++14 coding examples showing off the awesome power of some of the new features, and it just ends up as an unreadable, unmaintainable tangle of templates and wacky syntax additions.
Kernighan and Ritchie must be spinning in their graves.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Stoatbringer posted:

C++ seems to be rapidly evolving into an esoteric language. I've seen some C++14 coding examples showing off the awesome power of some of the new features, and it just ends up as an unreadable, unmaintainable tangle of templates and wacky syntax additions.
Kernighan and Ritchie must be spinning in their graves.

Brian Kernighan is still alive

karms
Jan 22, 2006

by Nyc_Tattoo
Yam Slacker

Otto Skorzeny posted:

Brian Kernighan is still alive

Maybe he's a vampire?

duck monster
Dec 15, 2004

Esoteric languages are interesting in so far as they try out some strange new idea about how to code and prove its possible, even if insanely hard.

This makes brainfuck interesting, and any given stack language uninteresting (Why do it, when forth proves the point elegantly and cleanly).

Of course something like malbolge is interesting because despite the best efforts of its creator you can theoretically write software in it.

And Intercal is actually just really funny (No serious, google the original spec, its classic old world computer humor)

But theres if your not actually funny (your not), or you have nothing novel to add other than obsfucation, your esoteric language wont ever be interesting.

Mustach
Mar 2, 2003

In this long line, there's been some real strange genes. You've got 'em all, with some extras thrown in.
The best esolangs are Whitespace and HQ9+, 'nuff said.

Stoatbringer posted:

C++ seems to be rapidly evolving into an esoteric language. I've seen some C++14 coding examples showing off the awesome power of some of the new features, and it just ends up as an unreadable, unmaintainable tangle of templates and wacky syntax additions.
Kernighan and Ritchie must be spinning in their graves.
This is merely emblematic of contemporary examples, where people cram as much as they possibly can into an example, because they're actually targeted to insiders. E.g. Haskell and "I'm going to call this an intro to Haskell, but really it's my version of a monad essay." C++14 doesn't really add much syntax to C++11.

Pork Pie Hat
Apr 27, 2011
It might be because at heart I'm a filthy humanities lover, but Shakespeare is my favourite esolang.

Just look at it doing 'Hello World!', it's ridiculous, but in a wonderful way.

Shakespeare posted:


Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.

Act I: Hamlet's insults and flattery.

Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward! You are as
stupid as the difference between a handsome rich brave hero and thyself!
Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]

Scene II: The praising of Juliet.

[Enter Juliet]
Hamlet:
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!
[Exit Juliet]

Scene III: The praising of Ophelia.

[Enter Ophelia]
Hamlet:
Thou art as lovely as the product of a large rural town and my amazing
bottomless embroidered purse. Speak thy mind!
Thou art as loving as the product of the bluest clearest sweetest sky
and the sum of a squirrel and a white horse. Thou art as beautiful as
the difference between Juliet and thyself. Speak thy mind!
[Exeunt Ophelia and Hamlet]

Act II: Behind Hamlet's back.

Scene I: Romeo and Juliet's conversation.

[Enter Romeo and Juliet]
Romeo:
Speak your mind. You are as worried as the sum of yourself and the
difference between my small smooth hamster and my nose. Speak your
mind!

Juliet:
Speak YOUR mind! You are as bad as Hamlet! You are as small as the
difference between the square of the difference between my little pony
and your big hairy hound and the cube of your sorry little
codpiece. Speak your mind!
[Exit Romeo]

Scene II: Juliet and Ophelia's conversation.

[Enter Ophelia]
Juliet:
Thou art as good as the quotient between Romeo and the sum of a small
furry animal and a leech. Speak your mind!

Ophelia:
Thou art as disgusting as the quotient between Romeo and twice the
difference between a mistletoe and an oozing infected blister! Speak
your mind!
[Exeunt]

Dicky B
Mar 23, 2004

Here you are, op. http://urbit.org/

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer
I actually like the opposite of esoteric languages better. When the syntax of a totally earnest language enables strange or unreadable code by trying to be too flexible or clever. Or just ill conceived. MUMPS:

code:
s n s,x
s:x=s x="s",x x
code:
G N S,N,T,I,K,Q S I="K",S="11",K="l1",Q="R",T="K"
I I=T D T
Q:$Q Q Q
T  I I,S&K S S=S+K Q

it is
Aug 19, 2011

by Smythe
I like the idea behind Taxi.
http://bigzaphod.github.io/Taxi/
Basically, the idea is that you're giving instructions to a taxi driver who has to pick up passengers all over the city, while keeping gas in your tank. The passengers pay you and you buy gas with the money they pay you.

Adbot
ADBOT LOVES YOU

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
My favorite MUMPS program:
code:
; This little gem comes to us through Paul Kadow and John Mitchell (original
; author unknown). It was created when they worked at Digital Equipment
; Corporation.
; -- [url]http://71.174.62.16/Demo/AnnoStd?Frame=Main&Page=a106001&Edition=examples[/url]



  ; The ultimate M[UMPS] program  --  self documenting
  ;
P R I N T S (A,L)=1,(S,T)=I N G
  G I V E N A      
O F A=L:L:S Q:U=A  R E S B=E L O W (A*A),!
I S (U,R,E)=T H 1 N K I T=S G O O D
  ;
One esolang that might be worth a mention is ///. It's an extreme turing-tarpit, but the TC proof approach was non-obvious to me and thus somewhat interesting.

  • Locked thread