Hey HN! Author here, feel free to AMA. I've made less joke-y languages too before, most prominently Ink [0] which I use to write some of my own apps for personal notes/contacts/etc.
Lovely creation you made! I started to wonder if some kind of template could be made from this that just requires you to enter your individual keyword names for the basic operations, regarding that it is just interpreted by javascript.
I'm not at all into esoteric languages so I don't know if something like this exists. This approach just seems so simple to me, especially in case you want to create some more languages just for fun or want to open the doors to more beginners. The only boring thing would be that essentially each language created with the template would work the same way unless you modify that template.
I've implemented a few small toy languages before and Tabloid was intentionally sort of sketched out to be similar (expression-based grammars, whitespace-insensitive, recursive, etc.) so it was just mostly a matter of reimplementing those things with slight variations (the biggest being that entire phrases could be keywords). Doing so in JS made prototyping pretty fast.
I guess besides the fun of just the comedy of the idea I wanted to get back into JS (I haven't written JS in a while) and wanted a project I could fit into one night, so I sort of swizzled the language design so it wasn't super complex and doable in a few hours.
Believe me, I've used absolutely EVERY LANGUAGE THERE IS. Imagine 4th Gen, dbs, procedural, OOP, blah blah blah. What REALLY MATTERS in the _Real World_ is TABLOID!
But WAIT, THERE's MORE! Before you delete all the other code and languages, first throw your computers and tablets away. TABLOID doesn't need any of that! TABLOID is Turing-Super-Complete!
> Didn't want to do homework for my database systems class, and needed something to do to procrastinate.
Amazing answer. But actually, I’ve found this to be true in my own life. Sometimes I work on a problem for too long and a creative break allows for improved creativity to flow when I go back to the original problem.
Would be nice to fit "NUMBER X WILL SURPRISE YOU" in there as a way to break out of the loop (`if (i == x) { break; }`), but I think that would require tracking the loop variable as context, which kinda sucks.
WHAT IF TOTALLY RIGHT IS ACTUALLY COMPLETELY WRONG
RUMOR HAS IT
YOU WON'T WANT TO MISS 'Alt-facts in logic'
END OF STORY
LIES! RUMOR HAS IT
YOU WON'T WANT TO MISS 'Fake news are not discovered yet'
END OF STORY
PLEASE LIKE AND SUBSCRIBE
It prints that "FAKE NEWS ARE NOT DISCOVERED YET!", disappointingly enough.
However: Ideally, someone would create a meta-language for defining the next ArnoldC/LolCat/Intercal/...Tabloid, assuming there will be a next, which I'm sure there is (nobody made a porn-based language yet, rule 33 or whatever number it was).
I used to have a program that'd take eight arbitrary tokens and output a programming language using those as its commands, just as a reskin of Brainfuck (such as Ook).
My copy is long gone, but it's an easy project if you want to make one for yourself.
Compiler-compilers (not just parsing) do exist although they seem to have practically died out a long time ago (much easier to do when all language worth spending money on were procedural and structural if you were lucky)
[0] https://dotink.co/