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

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.

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.

  • Locked thread