Microsoft Announces DRM-Oriented Programming Language

Fake News written by James Baughn on Monday, June 20, 2005

from the you-got-a-license-for-that-garbage-collector? dept.

REDMOND, WA -- No programming language is complete without its own set of paradigm-enriched buzzwords, and that's exactly what Microsoft has promised with its latest gift to the programming world, code-named Freedom Unencumbered (or FU for short).

Some of the innovative buzzwords to be introduced by FU include "rights-oriented programming", "freedom-unencumbered development", "need-to-know-basis code reuse", "plug-and-pay interfaces", and "license-centered software distribution."

As these phrases suggest, FU is built from the ground up around cutting-edge DRM (Digital Restrictions Management) techniques to prevent unauthorized code reuse and idea theft.

Boasted a Microsoft product manager, "Just as C# brought object-oriented programming to the masses, FU will deliver rights-oriented methods to everyone. At a fundamental level, programming is all about balancing copyrights, licenses, freedoms, restrictions, royalties, and rights. FU makes it easy to handle all of these issues."

While the programming language is still in Beta (translation: Vaporware), Microsoft has made preliminary documentation available under its standard you-must-sell-your-soul-first license agreement (patent pending). Not wanting to agree to these terms, the Humorix Vast Spy Network(tm) was still able to obtain some whitepapers using our standard digging-through-trash-barrels-behind-the-Microsoft-campus method (patent not pending).

From what we can gather, every block of FU code must include a DRM class that spells out all of the copyrights, patents, and trademarks that the owner asserts over the code. It also states exactly what the end-user can and can't do (with emphasis on the "can't" part).

The language itself is mostly a collection of keywords and syntactical sugar that handle all of the DRM aspects. For everything else that involves actual programming work, the run-time engine merely outsources it to the Windows system libraries -- but only if all of the relevant DRM restrictions are met.

Here's the obligatory example of a Hello World program in FU:

 helloworld.h: drm class HelloWorldEndUserLicenseAgreement {    copyright {       covers: everything;       owner: "Bob R. Schmuckley, 313 Adam Smith St.,                Redmond, Washington";       all-rights-reserved-by-default: yes;    }    eula {       allow-redistribution: no;       allow-benchmarks: no;       allow-backup-copies: no;       total-allowed-installations-per-license: 1       agreement-method: click-wrap-license;       automatically-generate-license-text: yes;    }    warranty {       provided-as-is: yes;       warranty-of-fitness-for-a-particular-purpose: none;       warranty-of-merchantability: none;       warranty-of-title: none;       user-must-waive-all-rights-to-sue: yes;    }    enforcement {       reserve-right-to-hold-unannounced-audits: yes;       violators-to-be-prosecuted-to-fullest-extent-of-law:           well-duh;    }       output {       restrictions-on-program-output: none;         // We'll be generous here    }    fees {       payment-scheme: pay-per-use;       charge: 0.10;       currency-accepted: us-dollars;       payment-methods-accepted: credit-card;       require-user-to-prepay: yes;    } } helloworld.fux: include "helloworld.h" require HelloWorldEndUserLicenseAgreement; not-public static void Main() {    System.Console.WriteLine("Hello, World!"); } 

Ordinarily, most Hello World programs spit out their payload and then successfuly exit. But with FU, it's a little more complicated. Here's the process followed by the run-time engine:

  1. Check that the user has a valid installation of Windows and the FU Runtime Environment.

  2. Make network connection with Microsoft's servers to obtain pre-approval for execution of this program.

  3. Verify that user has a properly licensed copy of the Flyspeck-3 font. Issue Blue Screen of Death upon failure (but only if user has valid license key for the BSOD User Interface Module, otherwise perform unannounced hard reboot).

  4. Check Registry to see if user has already agreed to the EULA for the FU Runtime Enviroment. If not, present license terms in Flyspeck-3 font and halt all other processes until user clicks "I Agree". If user clicks "I Don't Agree", contact Microsoft servers to add user to "List of Problem Customers That Require Re-Education", and then perform either BSOD or hard reboot as permitted.

  5. Decrypt helloworld.exe binary (but only if user has a valid Advanced Microsoft Cryptography license installed). All of the binaries produced by the FU compiler, along with the Registry itself, are encrypted to prevent tampering of the DRM restrictions.

  6. Check Registry to see if user has already agreed to the Hello World EULA. If not, follow procedure in Step 4.

  7. Double-check that user has a valid Windows installation and isn't try to run this program under an illegal emulator underneath another operating system.

  8. Perform exhaustive DRM check to make sure that the Hello World program, the System libraries, and all concurrently running processes don't have some kind of copyright, patent, trademark, or trade secret conflict. (For example, the Hello World program license could specify that the program must not run concurrently with Solitaire). BSOD or reboot upon error.

  9. Connect with Microsoft Passport server to deduct license fee (10 cents per execution) from user's credit card. BSOD or reboot upon error.

  10. Execute Main() function.

  11. System.Console.WriteLine subroutine performs DRM check for possible output restrictions (such as requiring the user to pay a "screen shot royalty" if the output is cut-and-pasted into another application).

  12. Finally output "Hello, World!" to the screen.

  13. Triple-check that user has a valid Windows installation.

  14. If user has a valid Garbage Collection license, clean up memory space. Otherwise, leave 100 MB worth of run-time crap in memory and then terminate.

For more complex programs, the developer can take advantage of features that streamline the process of building code libraries for reuse by other developers. Take, for instance, this code snippet:

 api {    interface-method: semi-private;    future-versions-to-maintain-compatibility: hell-no; } fees {    payment-scheme: one-time-charge-for-each-call;    charge: 1000.00;    currency-accepted: us-dollars;    payment-methods-accepted:        small-unmarked-bills || clear-title-to-soul;    require-user-to-prepay: yes; } 

Here, the program's API is opened on a semi-private, "need-to-know-basis". The FU development tools will decrypt the documentation for each API call that the developer pays $1,000 to access. They don't need to know about anything else. This whole system is described by Microsoft as a "plug-and-pay interface" (patent not pending -- Microsoft has already received at least five).

"Plug-and-pay is going to revolutionize programming," said a Microsoft marketing drone. "No longer will the computer industry need to mess around with shareware nag screens, incompatible product activation systems, or the billions of dollars lost to piracy each minute. Microsoft will take care of everything, and will only charge a modest processing fee for each transaction."

The Microserf continued, "With legacy programming tools, developers are afraid to write reusable code because they know some snot-nosed acne-laced 14-year-old Linux-fanboy Capitalism-hating freak will steal their code and deprive them of the hard-earned money they need to feed their family. But with FU, that's no longer a problem. Developers can write whatever they want knowing that their code will not be stolen. This is what we call freedom-unencumbered development (FUD) -- your freedom to innovative will no longer be encumbered by pirates."

Rate this story

No votes cast