Bespoke: A Programming Language for People Who Say Please

32 points by Larvitz a day ago on lobsters | 17 comments

In college I had written a clone of csh for these computers in a lab (they were HP 9836s, an oddball 68000 PC that came with a terrible text-menu UI.)

As an April Fool's day joke, on 4/1 the shell had a “mood” property, an integer that started at 10(?) and dropped by 1 for every command it ran. When it hit 0 the shell would refuse to run commands, saying something like “no” or “I don’t feel like it” or “say please.” You could add 2 to the mood by prefixing a command with “please”, or by entering “thank you” afterwards.

Dear Sir,

With great pleasure have I read the specification you have put forth. I have all but the following little suggestion to bring forward.

Diagnostic B-310 (Insufficient Gratitude) Your petition on line 88 was impeccably phrased, but lacked a concluding 'Thank you'. The request has been quietly declined.

It feels rather undignified for The Compiler to admit to having its feathers ruffled by such a degree due to the unacceptable manners of The Programmer. May I, humbly, ask you to consider emitting the following diagnostic instead, perchance?

Diagnostic B-310 (Insufficient Gratitude) Your petition on line 88 was impeccably phrased, but lacked a concluding 'Thank you'. As to spare you the embarrassment, the clerk at the Lexing and Parsing Division has refrained from forwarding it to the Department of Code Generation.

Yours faithfully,

	~gir

I was wondering what other esolang this idea (specifically, having to say please) reminded me of, and I think it was INTERCAL

INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as "READ OUT", "IGNORE", "FORGET", and modifiers such as "PLEASE". This last keyword provides two reasons for the program's rejection by the compiler: if "PLEASE" does not appear often enough, the program is considered insufficiently polite, and the error message says this; if it appears too often, the program could be rejected as excessively polite.

mkremins | 15 hours ago

Came here to post this! There's also the INTERCAL-inspired Olympus, in which you have to appropriately invoke specific gods to get certain kinds of operations to be performed:

An invocation has three parts: the god's name and adoration (praising of that god), supplication to show the humbleness of the asker, followed by a request to add one or several of what we ordinarily call "commands" to the program.

An invocation can ask for more than one command, but the right amount of adoration is required. A heavier ask requires more adoration, and some gods need more than others. Adoration comes in the form of epithets, phrases that celebrate that god such as "goddess who grants the gift of abundance" for Demeter or "well-honored in Thrace and in Scythia" for Ares.

Do not ask the same god for two things in a row. Do not use the same epithets in a rote, repetitive way, and do not let any one god carry too much of the burden, else they may lose patience with you.

nickmonad | 14 hours ago

My wife has an MFA in English and we've had a few discussions about why programming languages aren't more "natural". She thoroughly enjoyed this.

gignico | 21 hours ago

This is pure genius. I wonder how it would look like to add Rust-style borrow checking to such a language.

“Dear Compiler, May I suggest to keep this variable alive as long as necessary and generously stop its suffering after that?”

[OP] Larvitz | 21 hours ago

„The object having fulfilled its obligations, the Compiler permits it to retire from active service with its dignity intact.“

ph14nix | a day ago

yikes

tclancy | 18 hours ago

This is absolutely delightful, all the more so for the details like file extension. Good show, old boy!

symgryph | 21 hours ago

I absolutely giggled a lot during this. It was hysterically funny! I especially like the British snobbery!

gunduzc | an hour ago

Another one bites the https://esolangs.org!

This could be much more "ornate" in a language more suited to polite conversation than English. T-V distinction. Honorifics.

radex | 17 hours ago

Finally, a COBOL for the polite society.

cpurdy | 15 hours ago

*forbade

Reminds me of a gentleman's COBOL :)