Settings

Theme

Tabloid: The Clickbait Headline Programming Language

tabloid.vercel.app

245 points by benaubin 5 years ago · 39 comments

Reader

thesephist 5 years ago

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.

[0] https://dotink.co/

  • braythwayt 5 years ago

    "Tabloid is a real, turing complete programming language written in JavaScript, inspired by _cilckbait_ headlines."

    I like the deliberate misspelling of "clickbait," it layers a spam email feel on top of the clickbait ethos. Bravo!

  • vestrigi 5 years ago

    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.

  • dmcbrayer 5 years ago

    This seems like a pretty large effort to commit to a joke. I applaud the effort, but I'm curious. What's your motivation?

    • thesephist 5 years ago

      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.

  • IncRnd 5 years ago

    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!

  • _the_inflator 5 years ago

    Hilarious!

    Nicely done.

  • mijoharas 5 years ago

    nice stuff.

    fyi, You've doubled up the line `BEATS / SMALLER THAN` under "how much is there".

linux2647 5 years ago

> But why?

> 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.

fredleblanc 5 years ago

Since we're pitching ideas, I'll pitch comments be any line that starts with "OFF THE RECORD..."

phrz 5 years ago

I suggest "10 EASY STEPS FOR BETTER i" as for(i=0;i<10;i++).

  • benaubinOP 5 years ago

    10 [EASY|QUICK|WEIRD] STEPS = Range

    [list expr] FOR [variable name] = map operator

    • rcfox 5 years ago

      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.

  • guram11 5 years ago

    or maybe "TOP 10 SECRETS 0 PERSON KNEW ABOUT"

    This is a funny and shitty idea for a programming language while at the same time retaining something inspiring about it OTOH, really worth my time

Joker_vD 5 years ago

But does it support fake news?

    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.
edtechdev 5 years ago

Arnold Schwarzenegger based programming language https://github.com/lhartikk/ArnoldC

Al-Khwarizmi 5 years ago

Proposed extensions:

  Assert(x==0): YOU WON'T BELIEVE x IS ACTUALLY 0

  x<y: x GETS OWNED BY y

  Define a struct/record:

  2 THINGS YOU DON'T KNOW ABOUT A rectangle
    base
    height
kerblang 5 years ago

Brilliant!

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).

  • jtolmar 5 years ago

    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.

  • mhh__ 5 years ago

    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)

  • penne12 5 years ago

    The configuration file should be a collection of hackernews headlines

bitwize 5 years ago

It's cute, but a real language needs a lambda operator. I propose ONE WEIRD TRICK.

  • thesephist 5 years ago

    This is actually so good I might implement it when I get time later. It just makes sense.

4cao 5 years ago

Excellent!

> PLEASE LIKE AND SUBSCRIBE

(= END [of program])

How about YouTuBasic?

CornCobs 5 years ago

Love this idea. Maybe you could add random value generation?

E.g. EXPERTS CLAIM <var> TO BE <type>. IT WILL SURPRISE YOU!

benaubinOP 5 years ago

Needs async/await:

async: DEVELOPING STORY [DISCOVER HOW TO...]

await: STAY TUNED FOR [expr]

dTal 5 years ago

I think "TOTALLY RIGHT" and "COMPLETELY WRONG" should be changed to "CONFIRMED" and "BUSTED".

mellosouls 5 years ago

Apart from anything else, the website itself is a great intro to the language, terrific UX; fun, witty and focused.

Great job!

noiv 5 years ago

Any one interested to start a Clickbait to React Transpiler?

darepublic 5 years ago

can't wait for the NLP that can compile transcripts of the national inquirer into working code

kodeninja 5 years ago

WHY I LOVE THIS--I've never laughed so hard while reading an HN post.

Great job!

anton96 5 years ago

I wonder what It would give with Nathan W Pyle's Alien.

annexrichmond 5 years ago

You won't believe what's on line 7!

baltimore 5 years ago

From 2005: http://compsci.ca/v3/viewtopic.php?t=8253

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection