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 apologizing, and order the machine to return as though it were a retriever waiting for a command. A new language called Bespoke proposes a different approach: one where every interaction with the compiler, the runtime, and the host environment is conducted with proper manners.

What Bespoke actually is

Bespoke is a statically typed language where every request must open with an appropriate form of address, state its purpose courteously, and conclude with an approved acknowledgement. The compiler is treated as an esteemed collaborator, not a subordinate. Allocations and updates are addressed to the Compiler. Terminal output goes to the Output Console. Filesystem operations and runtime services go to the Host Environment. Shared objects and worker threads receive their correspondence directly.

The language enforces British orthography during lexical analysis. Colour is the namespace for colour values. Color is evidence that the source arrived without a proper education. Initialisation has an s, centre is spelled correctly, and an optimizer may remove redundant work but will never optimize it. Semicolons are rejected as the conversational equivalent of slamming a door. Statements end with full stops, inquiries with question marks, and blocks with suitable sign-offs.

There are two truth literals: Quite True and Patently False. A third state, Perhaps Though I Should Not Like to Presume, was considered for database work and rejected as insufficiently deterministic.

How types and mutations work

Types are written in full because allowing a value to pretend to be something it is not would be dishonest. An Integer Number is a 64-bit signed integer. A Rational Fraction is an exact ratio of arbitrary-precision integers. A Textual Passage is a UTF-8 string. An Individual Character is a Unicode scalar value. A Truth Value is a Boolean. A Distinguished Colour is a first-class colour type. A Regrettable Circumstance is an exception.

Mutation is permitted provided the programmer acknowledges the inconvenience. Writing carriagCount = 42 without the proper form produces diagnostic B-101, Blunt Imperative, and compilation is suspended until the developer has reflected upon their conduct. The correct form addresses the Compiler, asks whether updating the value would cause undue hardship, and concludes with Much obliged.

Memory management follows the same principle. Automatic garbage collection is not assumed. The programmer formally engages the groundskeeper by asking whether it might tidy away allocations no longer reachable by the programme, at its leisure. Manual deallocation is available for performance-sensitive work, but 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 a condition is true, the true branch executes. Or, should the contrary prove true, the false branch executes. 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. Cheers is accepted only in local scopes. Public library APIs require Yours faithfully. Compiler flags can tighten this under a deference flag set to white-tie.

Functions are diplomatic proposals. They do not seize control and return a value. They propose a small, bounded collaboration, accepting input parameters and ultimately returning a result. 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.

Concurrency without the shoving

Concurrent programming reveals how violent the vocabulary of computing has become. Threads compete, race, seize locks, and the loser starves. Eventually somebody kills the process. Bespoke threads behave differently. A mutex is a Request for Exclusive Audience. A thread asks whether it might venture to crave exclusive audience for a brief contemplation, pledges to retire the moment business concludes, performs its protected operations, and releases the lock with boundless gratitude.

When two threads each require a resource held by the other, both insist that the other proceed first. Neither would dream of pushing ahead rudely, so the program remains bowed at the doorway until the heat death of the universe. The runtime records this not as a deadlock but as an Exemplary Stalemate of Mutual Deference, notes its admiration for the threads' upbringing, and tolerates the pause indefinitely.

Threads are never killed or terminated. They receive a formal invitation to retire, suggesting that the hour grows late and tea is served, and asking whether they might see fit to conclude their earthly endeavours at their earliest convenience. This is cooperative cancellation with a dress code.

Diagnostics of wounded dignity

The Bespoke compiler expresses precise but restrained disappointment. Diagnostic B-101, Blunt Imperative, notes that the programmer wrote an assignment as an order and reminds them that we are not cattle-herders. Diagnostic B-204, Vulgar Orthography, flags unouth orthography like set colour and asks whether the programmer meant set colour. Diagnostic B-310, Insufficient Gratitude, observes that a petition was impeccably phrased but lacked a concluding thank you, and quietly declines the request.

Warnings are delivered on cream paper where a suitable printer is available. The quiet flag suppresses compliments, never criticism. When the runtime encounters a fatal error, it does not panic or crash. It tenders its resignation in a sealed envelope, confessing its inability to proceed with formal humility and stepping down from its post. The exit status is still non-zero. The language is civilised, not delusional.

What this tells us about programming culture

Bespoke will not make software faster. Its proposed binaries are conventional, but its source has an information density comparable to a nineteenth-century treaty. It will not prevent concurrency bugs, as the exemplary stalemate demonstrates. What it does is ask a question worth considering: if developers are going to spend their days demanding impossible things from machines, could they at least be pleasant about it.

The language is satirical, but the observation behind it is genuine. The vocabulary of programming is aggressive by default. We kill, abort, throw, break, crash, and destroy. The machines do not care how we address them. But the humans who read the code afterwards might appreciate a different register. Bespoke takes that idea to its logical extreme, and the result is both funny and oddly thought-provoking.