Bespoke: A programming language for people who say please
blog.hofstede.itSomewhat 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
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"assert" should be LOAD-BEARING ASSUMPTION
Not verbose enough. Needs to repeat the same information twice or thrice.
Idea first developed by intercal, which there are no reference to : https://en.wikipedia.org/wiki/INTERCAL
This isn't Intercal, this is an advanced version of AppleScript.
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
I think "A Regrettable Circumstance" is genuinely better description than "Exception"
A mere "inconvenience" would do.
I would vote for "A bit of a pickle"
Fatal error? More like “a spot of bother”.
Automatic garbage collection is not assumed; one formally engages the groundskeeper.
Fantastic.
I woke up miserably at 6:00 before work and read this as I was drinking coffee. It very literally made my whole day!
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
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"
Absolutely spiffing language, old chap! Must invite the designer over to my club some time.
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
Ah, the power of bureaucracy.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!”
This is similar to (but much higher-level than) the Shakespeare programming language: https://en.wikipedia.org/wiki/Shakespeare_Programming_Langua...
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
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.
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...
the obvious llm tells make this infinitely less funny than natural-language esolangs from 2 decades ago sorry
Spelt, not spelled; tisk tisk ;)
I love everything about this!
The AI that generated this slop doesn't understand regional dialects of English.
We already have that, it's called intercal.
That’s it. I’m rewriting my whole stack with this.
> Perhaps you might see fit to conclude your earthly endeavours at your earliest convenience?
I’m stealing this.
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.
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.
> --quiet suppresses compliments, never criticism.
It's the only way to grow.
for the agentic user, there's also PATY: https://gjtorikian.online/paty/
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.
The Table of Contents sent me into an infinite recursion.
really good, i'm having a good laugh rn
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.
i loved this
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. )
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.
I guess I feel better about the carbon footprint of me saying "thank you" to GPT now.
This article was an indication that we're not going to make it. People, I mean. https://futurism.com/altman-please-thanks-chatgpt
Less AI slop please.
>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