56,000 lines of DOOM, in a language I made up

(betlang.dev)

23 points | by ghuntley 2 hours ago ago

14 comments

  • andai an hour ago

    Excellent. At last, I can I confess a far worse crime.

    Late 2020, pre-AI, which I'm not sure if that makes it better or worse...

      #include "uwu.h"
      #include <stdio.h>
    
      iwint main() stawt
          iwint owo is 5 yiff
          fuw (iwint uwu is 0 yiff uwu smol owo yiff uwu incwease) stawt
              owo is owo wif uwu yiff
              spweak nuwumber_fowmat, owo spwake yiff
          stawp
      stawp
    
    --

      // uwu.h
    
      #define is =
      #define yiff ;
      #define stawt {
      #define stawp }
      #define fuw for
      #define iwint int
      #define wif +
      #define wiffout -
      #define smol <
      #define larg >
      #define incwease ++
      #define spweak printf(
      #define spwake );
      #define nuwumber_fowmat "%d\n"
    
    Obviously this one also runs DOOM ;)
    • jraph an hour ago

      I did the same thing, shouting.h, defined the uppercase version of many types and keywords.

      Had a good uncontrolled laugh during a team presentation with a colleague. It was a bit disrespectful for the poor presenter who had nothing to do with this…

      Can't find shouting.h anymore unfortunately.

    • subscribed 14 minutes ago

      uwu, this is amazing ;3

    • Cshaya an hour ago

      this gave me such a good chuckle :p

  • bentt an hour ago

    This is a good example of where it’s important to be more up front about the role of AI in the making of a thing.

    Making a language that compiles through LLVM is no small task and takes a lot of expertise. Most of the time people do it because they have a point of view and are highly technical.

    Making a joke language via AI is an entirely different exercise. Not without value but not the same, especially when evaluating what it means about the author.

    • NuclearPM 27 minutes ago

      I made a “fully” functioning programming language that is kind of like Rebol on luajit using Claude code - and I haven’t really done much serious programming since college 20 years ago. It’s fun though.

  • Retr0id an hour ago

    It's cool that AI lets you cheaply experiment with language design, but I wish people would stop using it for the writeups, too.

    Buried near the end is a mention of per-frame arena allocation, which is an interesting idea for a game engine (although not a novel one).

  • rebolek an hour ago

    What if I don't `evict`? How different is it from forgetting to `free`?

  • vofx an hour ago

    I may not be the most qualified person to speak on this, and this is definitely far from the first time this has happened... But it could read as a bit offensive to some folks that AAVE that has been around for decades is effectively being mischaracterized as quirky slang here.

    (I've lurked on HN for a while, made an account just for this comment.)

    • senbrow 11 minutes ago

      I know you probably mean very well, but IMO it's really bizarre and patronizing to be offended on someone else's behalf, especially if the offended people in question are perfectly capable of expressing the sentiment themselves.

      If there's actual outrage from the group, it will surface from them without your involvement.

      If it offends YOU, just say so plainly.

      The hypothetically offended group doesn't need a random stranger to white knight for them in the comment section of a niche tech news website.

    • DontchaKnowit an hour ago

      Is it really that big of a deal? Basically every teenager talks like this regardless of race

  • jdw64 an hour ago

    I'm writing the C backend by hand and using AI for the rest, so how did this author manage to finish an entire language in just 34 hours? I've been steadily catching and fixing what the AI writes, so it's amazing to me that they ended up with a complete language. It makes me wonder if the way I'm building a compiler is just wrong.

    • swiftcoder an hour ago

      If you tell it to write a spec -> then write the tests -> then implement, the LLM should be able to pretty much one-shot a compiler frontend. LLMs really benefit from the kind of task that has a built-in validation loop.

      • jdw64 an hour ago

        I'm working on something similar, but unlike the author, my progress has been pretty slow. It's tough. I do write about a fifth of the code myself, but I keep getting stuck on the rest.