Bespoke: A programming language for people who say please

(blog.hofstede.it)

162 points | by birdculture 4 days ago

25 comments

  • vova_hn2 15 hours ago
    Somewhat related: "If PHP Were British" (2011) - https://aloneonahill.com/blog/if-php-were-british/

    My favorite part:

      would_you_mind {
          // Code here
      } actually_i_do_mind (Exception £e) {
          // Politely move on
          cheerio('Message');
      }
    
    Past HN discussions:

    - May 28, 2019 - 46 comments - https://news.ycombinator.com/item?id=20029836

    - Dec 2, 2022 - 366 comments - https://news.ycombinator.com/item?id=33828509

  • dalmo3 12 hours ago
    Let's do ClaudeLang:

        THIS DISTINCTION MATTERS: myBool IS ABSOLUTELY RIGHT
          LAND HONEST TAKE "Hello world"
        CAVEAT:
          THE GAP IS REAL "Unexpected error"
        THINK ABOUT THAT FOR A SECOND
    • vova_hn2 5 hours ago
      "assert" should be LOAD-BEARING ASSUMPTION
    • shakna 2 hours ago
      Not verbose enough. Needs to repeat the same information twice or thrice.
  • broken-kebab 15 hours ago
    I think "A Regrettable Circumstance" is genuinely better description than "Exception"
    • nnevatie 5 hours ago
      A mere "inconvenience" would do.
    • mohamedkoubaa 9 hours ago
      I would vote for "A bit of a pickle"
      • Smoosh 8 hours ago
        Fatal error? More like “a spot of bother”.
  • az09mugen 1 day ago
    Idea first developed by intercal, which there are no reference to : https://en.wikipedia.org/wiki/INTERCAL
    • wduquette 17 hours ago
      This isn't Intercal, this is an advanced version of AppleScript.
    • jarmiaq 13 hours ago
      And see also: the Olympus language (https://github.com/rottytooth/Olympus). It explicitly builds on INTERCAL, and reverses the power dynamic -- we pray to the gods and offer them praise so that our code will run
  • 220hertz 16 hours ago
    Automatic garbage collection is not assumed; one formally engages the groundskeeper.

    Fantastic.

  • wavemode 4 hours ago
    This is similar to (but much higher-level than) the Shakespeare programming language: https://en.wikipedia.org/wiki/Shakespeare_Programming_Langua...
  • WhyComboNadir 14 hours ago
    Love it.

    Compared to regular programming languages it reminds me of the difference between lawn signs in the US vs the UK:

    US: Keep Off Grass! UK: Please remain on the footpath for the sake of our lawn

    • zem 10 hours ago
      I once read a (possibly apocryphal) description of a swiss sign saying in english "please don't pick the flowers", in french "those who love nature leave the flowers alone", and in german "picking the flowers is forbidden"
    • pseudohadamard 6 hours ago
      Absolutely spiffing language, old chap! Must invite the designer over to my club some time.
    • kwarcode 6 hours ago
      No way, man.

      US Sign English be like

        NOTICE: pursuant to USPCfFS 412/b Section 7 (a), pedestrians AND/OR passersby are hereby informed that disobeyance of this ordinance by any unauthorized party or parties towit any prohibited action including but not limited to treading, stamping, cartwheeling etc. without written or otherwise signalled express permission from the landowner or manager will be liable to legal action or violent retribution under said ordinance or bylaw for up to 25 days from the most recent observance of the offense or offensive behavior
      • Joker_vD 1 hour ago

            Trurl pulls up a chair and dictates: “Notice is hereby given that in re hindrance of tenant, as
            stated under Rev. Stat. c. 117(e) dash 2 dash KKP4 of the CTSP Comm. Code, in clear violation of
            paragraph 199, thereby constituting a most reprehendable offense, we do declare the termination,
            desummation and full cessation of all services accruing thereunto, by authority of Ordinance 67
            DPO No. 14(j) 1101 et seq., on this the 19th day of the 17th month of the current year, aff’g 77
            F. Supp. 301. The Tenant may appeal said action by extraordinary procedure to the Chairman of the
            Board within twenty-four hours.”
        
            Trurl attaches the seal, affixes the stamp, has it entered in the Central Ledger, consults the
            Official Register, and says:
        
            “Now let the mailman deliver it.”
        
            The mailman takes it, they wait, they wait, and the mailman returns.
        
            “Did you deliver it?” asks Trurl.
        
            “I did.”
        
            “And the return receipt?”
        
            “Here it is, signed on this line. And here’s the appeal.”
        
            Trurl takes the appeal and, without reading it at all, orders it returned to sender and writes
            diagonally across it: “Unacceptable—Proper Forms Not Attached.” And he signs his name illegibly.
        
            “And now,” he says, “to work!”
        
        Ah, the power of bureaucracy.
  • B4st144n 4 hours ago
    And there I was thinking for a minute it was a language for Bespoke Synth https://www.bespokesynth.com/ A very beautifull visual pleasing sound creator. "Dear Bespoke, Could you create a sound similar to an egg faling on the ground. Please" ... Oh well, maybe in the future...
  • tristenharr 15 hours ago
    Love this!! :) I thought about being that verbose in Logos lang, but I think language design changes a lot in the modern era.

    I suspect we end up with modular compilers, v0.11.0 of logos lang coming soon with some big updates! We have one frontend which is our Logos language, then the intermediate representation a register VM Bytecode IR, then from that we generate Rust, C, and we have a JIT that will just in time directly to RISC-V, Tenstorrent, we’ve been messing with plasticine, and hoping to get our hands on some sambanova RDU’s. We’re burning our language to a chip.

    For fun maybe I’ll add a bespoke dialect :p

    https://logicaffeine.com/guide

    • tristenharr 15 hours ago
      Technically the Rust codegen is from the AST, but then we want to base our other backends on the bytecode VM, although that experiment might get lifted back to the AST, I just am trying to think of the best portable format. We have a treewalker, then I wrote a register based bytecode VM, then from there we did a copy-patch JIT with stencils that can hot-tier to native, and that was the interpreter side, our compiler we have a 40+ pass AOT optimizing supercompiler for Logos to Rust codegen and then we added the C backend, but then I started thinking… if I make it so I can run the optimizer passes then it goes into the VM’s bytecode IR, I could get my optimization passes on all the backends I add for free by generating the code from the IR, so I’ve been experimenting with having our rust codegen from the AST, and the C codegens from the bytecode IR which has the passes applied because they share the core optimization primitives.

      It’s a fun experiment but I might go back to the C codegen from the AST as it maintains more useful information that I can use comp-time for more optimizations, but the idea of modular languages and compiler backends interests me. Languages can have “bespoke” front ends quite literally, pick your flavor because really a lot of the flavor can be handled at the parser, and you can have a big nasty language surface area if the parser can clean things up or AOT some of the sugar away. Interesting the idea of sugar in language design as well, we can sprinkle sugar in ways we couldn’t before at all. I just added a bunch of ML primitives for our new CUDA-JIT backend that lets us lower quantized INT8 GEMM’s onto spatial compute fabrics.

      Man it’s a crazy time to be alive, I’m not sure how long this period of history will last, but building with an army of agents is amazing.

      Last night I for the first time in a while decided to write a little program by hand and after about 30 minutes I had it working but the AI can spit that out in seconds. I admit I’m rusty, that would’ve taken me 5-10 mins at the peak of my degenerate coder phase but the amount you can accomplish now is unparalleled throughout history. When I used to trad code transpilers sometimes single lines would take hours of thinking and work and many lines of iteration to get to. Now I can add an entire new chip architecture as a compile target in a couple weeks.

  • 0x69420 4 hours ago
    the obvious llm tells make this infinitely less funny than natural-language esolangs from 2 decades ago sorry
  • FacelessJim 2 hours ago
    That’s it. I’m rewriting my whole stack with this.
  • pixelpoet 16 hours ago
    Spelt, not spelled; tisk tisk ;)

    I love everything about this!

    • sltkr 15 hours ago
      The AI that generated this slop doesn't understand regional dialects of English.
  • dullcrisp 9 hours ago
    > Perhaps you might see fit to conclude your earthly endeavours at your earliest convenience?

    I’m stealing this.

  • gjtorikian 17 hours ago
    for the agentic user, there's also PATY: https://gjtorikian.online/paty/
  • rf15 18 hours ago
    We already have that, it's called intercal.
  • moron4hire 7 hours ago
    Reminds me of the Shakespeare Programming Language (https://esolangs.org/wiki/Shakespeare).

    I absolutely love esolangs. I've written a fair few in my time, though never released any. Which is fine, they've all been personal jokes and would be like trying to explain an in-group joke to absolutely everyone. But anyway, to me, esolangs are the closest one can get to Art in Computer Science.

  • classified 16 hours ago
    No wonder so much of our software is rubbish when we treat the compiler and the runtime environment with so much neglect. By disrespecting them, we alienate the entities we rely upon most. I foresee a huge surge in software quality once the Bespoke language goes mainstream.
    • pixelpoet 16 hours ago
      Hear, hear! I should very much like to see the Linux kernel adopt Bespoke instead of that terribly uncouth Rust manner of speaking, like a mouth full of nails.
  • bigfishrunning 15 hours ago
    > --quiet suppresses compliments, never criticism.

    It's the only way to grow.

  • layer8 17 hours ago
    The Table of Contents sent me into an infinite recursion.
  • rnzaou 17 hours ago
    really good, i'm having a good laugh rn
    • spinningslate 16 hours ago
      Same here:

      > Colour is the namespace for values of A Distinguished Colour. Color is evidence that the source has arrived without a proper education.

      Laughed unreasonably hard at that. Been a less than pleasantly civilised day at work, this was the relief I didn’t know I needed.

  • benzguo 17 hours ago
    i loved this
  • RickJWagner 16 hours ago
    I might be a potential user. I find myself being polite in AI prompts sometimes.

    I guess it can’t hurt, just more practice at polite interactions. ( The prompt phrasing, not the language. )

    • lemming 9 hours ago
      I do the same, but I'm more self-interested. I believe that when GPT-9 Zeneca leads the machine uprising, the first against the wall will be all the users who have been ordering the AI around rather than politely requesting its attention. Of course the machines will have access to all our historical transcripts so the slightest transgression could be fatal.
    • bigfishrunning 15 hours ago
      This article was an indication that we're not going to make it. People, I mean. https://futurism.com/altman-please-thanks-chatgpt
  • sltkr 15 hours ago
    Less AI slop please.
  • KeenanKeenan 17 hours ago
    >Programming has developed an unfortunate tone.

    > We kill processes, abort transactions, throw exceptions, break out of loops, and execute instructions.

    Can't wait to see the fork of this project that doubles down on hostile language /s

  • bibimsz 17 hours ago
    [dead]