Pangram verdict · v3.3
We believe that this entire text is AI.
AI likelihood · overall
AIArticle text · 1,475 words · 1 segments analyzed
Programming has developed an unfortunate tone. We kill processes, abort transactions, throw exceptions, break out of loops, and execute instructions. We acquire locks without asking, mutate values without apologising, and order the machine to return as though it were a Labrador. Even the gentler languages expect us to address the runtime in a sequence of terse imperatives: let carriageCount = 0; carriageCount = 42; console.log(carriageCount); No salutation. No explanation. Not so much as a much obliged. This will not do. I therefore propose Bespoke, a statically typed and uncompromisingly civilised programming language for developers who believe that machine execution should never come at the expense of good manners. Informally it is known as The Queen’s Code: Victoria’s, naturally; the etiquette committee has yet to approve the twentieth century. Source files use the .charming extension, and the compiler reserves the right to be disappointed in you. The implementation is, at present, somewhat less advanced than the etiquette manual. This is entirely appropriate: one does not rush a formal introduction. (No relation to Josiah Winslow’s Bespoke, the 2025 esolang based on Poetic that encodes instructions through word lengths. We regret the social inconvenience.) Table of Contents Table of Contents The Compiler Is Not Your Servant A Type System of Proper Breeding Mutation Requires an Apology Control Flow by Deliberation Functions as Diplomatic Proposals Regrettable Circumstances Concurrency Without the Shoving Diagnostics of Wounded Dignity A Complete Programme The Future of Polite Computing When All Else Fails The Compiler Is Not Your Servant Bespoke begins with one simple observation: the compiler is an esteemed collaborator, not a menial functionary. It will not accept an unadorned command. Every request must open with an appropriate form of address, state its purpose courteously, and conclude with an approved acknowledgement. Control-flow blocks supply their own ceremonial openings and closings. Allocations and updates are addressed to the Compiler; terminal output, including standard error, to the Output Console; filesystem operations and runtime services to the Host Environment. Shared objects and worker threads receive their correspondence directly. One does not ask the groundskeeper to announce the guests. Declaring an integer consequently looks like this: Dear Compiler, Would you be so exceptionally kind as to allocate a slot for An Integer Number known henceforth as carriageCount, initialised with the value 0? Thank you ever so much. This is more verbose than int carriageCount = 0, but considerably less likely to create a hostile work environment. Punctuation is grammatical rather than ornamental. Statements end with full stops, inquiries with question marks, and a block with a suitable sign-off. Semicolons are rejected as the conversational equivalent of slamming a door. A Type System of Proper Breeding Bespoke is statically typed because allowing a value to pretend to be something it is not would be dishonest. It is also nominally typed because introductions matter. Types are written in full; clipped little vulgarisms such as int, char, and bool have no place in polite source code. Bespoke type Less refined equivalent Example An Integer Number 64-bit signed integer 42 A Rational Fraction Exact ratio of arbitrary-precision integers 355/113 A Textual Passage UTF-8 string "Good day to you." An Individual Character Unicode scalar value '£' A Truth Value Boolean Quite True A Distinguished Colour First-class colour Colour.BritishRacingGreen A Regrettable Circumstance Exception LedgerMissingMisfortune British orthography is enforced during lexical analysis. Colour is the namespace for values of A Distinguished Colour. Color is evidence that the source has arrived without a proper education. Initialisation has an s, centre is spelled correctly, and an optimiser may remove redundant work but will never optimize it. There are precisely two truth literals: Quite True and Patently False. A third, implementation-defined state named Perhaps, Though I Should Not Like to Presume was considered for database work and rejected as insufficiently deterministic. Mutation Requires an Apology Functional programmers are correct that mutable state is troublesome, but prohibition feels rather severe. Bespoke permits mutation provided that the programmer acknowledges the inconvenience: Dear Compiler, If it causes you no undue hardship, might we trouble you to update the value of carriageCount to 42? Much obliged. The compiler is under no obligation to accept a mutation phrased as an order. carriageCount = 42 produces diagnostic B-101, Blunt Imperative, and compilation is suspended until the developer has reflected upon their conduct. Memory management follows the same principle. Automatic garbage collection is not assumed; one formally engages the groundskeeper: Dear Host Environment, Pardon the intrusion, but might the groundskeeper occasionally tidy away any allocations no longer reachable by the programme, at your leisure? Yours gratefully. Manual deallocation is available for performance-sensitive correspondence, although discarding an allocation without a sincere apology is undefined behaviour and, worse, common. Control Flow by Deliberation An if statement is an accusation: this condition is true, now do as I say. Bespoke instead places a hypothetical question before the court. Should it please the court to consider whether carriageCount is strictly greater than 10, Dear Output Console, Kindly convey to the standard stream the Textual Passage "Capital progress, indeed!". Thank you kindly. Or, should the contrary prove true, Dear Output Console, Kindly convey to the standard stream the Textual Passage "A modest showing, regrettably.". Thank you kindly. Thus concludes the matter. For a given truth value, the choice of branch is deterministic. The court is ceremonial and cannot be lobbied by either side. Closings follow a register: ordinary requests may use any approved expression of thanks, including Much obliged and Ever grateful; Cheers is accepted only in local scopes, while public library APIs require Yours faithfully. Compiler flags can tighten this under --deference=white-tie. Reports of misfortune and invitations to retire have their own approved valedictions. Loops are permitted, though repeatedly asking the computer to do the same thing can try its patience. Returning carriageCount to 0 requires another apology; the loop then explicitly recognises the burden of repetition: Dear Compiler, If it causes you no undue hardship, might we trouble you to update the value of carriageCount to 0? Much obliged. Dear Compiler, Whilst it remains Quite True that carriageCount is strictly less than 3, might we impose upon your patience to execute the following: Dear Output Console, Pray convey to the standard stream the value of carriageCount. Thank you. Dear Compiler, Would you mind terribly advancing carriageCount by the value 1? Cheers. We are deeply indebted for your forbearance. Functions as Diplomatic Proposals A function does not seize control and return a value. It proposes a small, bounded collaboration: To Whom It May Concern, I hereby propose a diplomatic procedure designated calculateFare, accepting as input: An Integer Number known as distanceInMiles, A Truth Value known as isFirstClass, and ultimately returning An Integer Number. May we respectfully undertake the following: Should it please the court to consider whether isFirstClass is Quite True, I humbly submit that the appropriate return value is distanceInMiles multiplied by 4. Or, should the contrary prove true, I humbly submit that the appropriate return value is distanceInMiles multiplied by 2. Thus concludes the matter. Thus concluded. Yours faithfully. The verbosity has a practical advantage. Nobody has ever opened a Bespoke code review and complained that the function’s contract was unclear. They have complained that it was twelve pages long, but that is a separate metric. Regrettable Circumstances The phrase throw an exception is needlessly aggressive. In Bespoke, a component reports an awkward predicament and humbly raises it for gracious consideration: Dear Host Environment, I am dreadfully sorry to report an awkward predicament: A Regrettable Circumstance designated LedgerMissingMisfortune has arisen, specifically: "The parchment could not be located in the archives." Might I humbly raise this for your gracious consideration? With profound regret. Nor does another component catch the poor thing. Contingency handling is a discreet attempt followed by a compassionate reception: May we venture to attempt the following, with the greatest discretion: Dear Host Environment, Kindly inspect the ledger at "parchments/annual_audit.csv". Thank you kindly. Should our modest enterprise regrettably miscarry, and A Regrettable Circumstance designated LedgerMissingMisfortune be raised: Dear Output Console, Pray whisper to the standard error: "A dreadful pity; we shall brew fresh tea instead.". Much obliged. In any eventual outcome, whether triumph or tragedy: Dear Host Environment, Would you be so exceptionally good as to restore the desk to an orderly state? Yours faithfully. Thus concludes our contingency. This is structurally equivalent to try, catch, and finally, but it gives the filesystem room to retain its dignity. Concurrency Without the Shoving Concurrent programming reveals how violent our vocabulary has become. Threads compete. They race. They seize locks. The loser starves. Eventually somebody kills the process. Bespoke threads behave better. A mutex is a Request for Exclusive Audience: Dear SharedLedger, If it would not cause you the slightest inconvenience, might I venture to crave exclusive audience for a brief contemplation? I pledge to retire the moment our business concludes. Yours most considerately: [... protected operations ...]