Language Selection

English French German Italian Portuguese Spanish

M$ Announces DRM-Oriented Programming Language

Filed under

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:


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;
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;


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:


More in Tux Machines

KNOPPIX 7.7.1 Distro Officially Released with Debian Goodies, Linux Kernel 4.7.9

Believe it or not, Klaus Knopper is still doing his thing with the KNOPPIX GNU/Linux distribution, which was just updated to version 7.7.1 to offer users the latest open source software and technologies. Read more

CentOS 6 Linux Servers Receive Important Kernel Security Patch, Update Now

We reported a couple of days ago that Johnny Hughes from the CentOS Linux team published an important kernel security advisory for users of the CentOS 7 operating system. Read more

Games for GNU/Linux

  • Why GNU/Linux ports can be less performant, a more in-depth answer
    When it comes to data handling, or rather data manipulation, different APIs can perform it in different ways. In one, you might simply be able to modify some memory and all is ok. In another, you might have to point to a copy and say "use that when you can instead and free the original then". This is not a one way is better than the other discussion - it's important only that they require different methods of handling it. Actually, OpenGL can have a lot of different methods, and knowing the "best" way for a particular scenario takes some experience to get right. When dealing with porting a game across though, there may not be a lot of options: the engine does things a certain way, so that way has to be faked if there's no exact translation. Guess what? That can affect OpenGL state, and require re-validation of an entire rendering pipeline, stalling command submission to the GPU, a.k.a less performance than the original game. It's again not really feasible to rip apart an entire game engine and redesign it just for that: take the performance hit and carry on. Note that some decisions are based around _porting_ a game. If one could design from the ground up with OpenGL, then OpenGL would likely give better performance...but it might also be more difficult to develop and test for. So there's a bit of a trade-off there, and most developers are probably going to be concerned with getting it running on Windows first, GNU/Linux second. This includes engine developers.
  • Why Linux games often perform worse than on Windows
    Drivers on Windows are tweaked rather often for specific games. You often see a "Game Ready" (or whatever term they use now) driver from Nvidia and AMD where they often state "increased performance in x game by x%". This happens for most major game releases on Windows. Nvidia and AMD have teams of people to specifically tweak the drivers for games on Windows. Looking at Nvidia specifically, in the last three months they have released six new drivers to improve performance in specific games.
  • Thoughts on 'Stellaris' with the 'Leviathans Story Pack' and latest patch, a better game that still needs work
  • Linux community has been sending their love to Feral Interactive & Aspyr Media
    This is awesome to see, people in the community have sent both Feral Interactive & Aspyr Media some little care packages full of treats. Since Aspyr Media have yet to bring us the new Civilization game, it looks like Linux users have been guilt-tripping the porters into speeding up, or just sending them into a sugar coma.
  • Feral Interactive's Linux ports may come with Vulkan sooner than we thought
  • Using Nvidia's NVENC with OBS Studio makes Linux game recording really great
    I had been meaning to try out Nvidia's NVENC for a while, but I never really bothered as I didn't think it would make such a drastic difference in recording gaming videos, but wow does it ever! I was trying to record a game recently and all other methods I tried made the game performance utterly dive, making it impossible to record it. So I asked for advice and eventually came to this way.

Leftovers: Software

  • DocKnot 1.00
    I'm a bit of a perfectionist about package documentation, and I'm also a huge fan of consistency. As I've slowly accumulated more open source software packages (alas, fewer new ones these days since I have less day-job time to work on them), I've developed a standard format for package documentation files, particularly the README in the package and the web pages I publish. I've iterated on these, tweaking them and messing with them, trying to incorporate all my accumulated wisdom about what information people need.
  • Shotwell moving along
    A new feature that was included is a contrast slider in the enhancement tool, moving on with integrating patches hanging around on Bugzilla for quite some time.
  • GObject and SVG
    GSVG is a project to provide a GObject API, using Vala. It has almost all, with some complementary, interfaces from W3C SVG 1.1 specification. GSVG is LGPL library. It will use GXml as XML engine. SVG 1.1 DOM interfaces relays on W3C DOM, then using GXml is a natural choice. SVG is XML and its DOM interfaces, requires to use Object’s properties and be able to add child DOM Elements; then, we need a new set of classes.
  • LibreOffice 5.1.6 Office Suite Released for Enterprise Deployments with 68 Fixes
    Today, October 27, 2016, we've been informed by The Document Foundation about the general availability of the sixth maintenance update to the LibreOffice 5.1 open-source and cross-platform office suite. You're reading that right, LibreOffice 5.1 got a new update not the current stable LibreOffice 5.2 branch, as The Document Foundation is known to maintain at least to versions of its popular office suite, one that is very well tested and can be used for enterprise deployments and another one that offers the latest technologies.