Slashdot Mirror


Microsoft's CLR - Providing a Break from HW Vendors?

eyefish asks: "Is Microsoft's Common Language Runtime CLR (document in PDF form) really a way for Microsoft to slowly stop depending on hardware vendors like Intel to drive the Windows platform, and in the long run as a way to build a hardware-independent Windows platform to fight Java? I'd like to ask the Slashdot community what their thoughts are on this matter. Is there something preventing the CLR from being truly platform independent, now or in the future? How does it compare to the Java Virtual Machine?"

"It seems to me that once the CLR has matured enough, there won't be a need for Microsoft to wait for others to innovate on the hardware front and start offering its own hardware (and charge whatever it wants for it) to go with future versions of Windows.Net. Worst still, 99.99% of the population will not be able to say no to this strategy since they'll have no choice but continue using the Windows monopoly in order to run their favorite apps."

Jamie comments: I don't think it's about hardware innovation, or beating Java. It's about absolute control.

The big money over the next decade will be in transforming the computer into an entertainment device. AOL Time-Warner sees a computer as a revenue producer, with the unfortunate ability to copy digital works. They and the other five media giants want to put a stop to it; Microsoft and Intel will find it very profitable to help them.

One good step along the way is to give the computer a common interpreted language to run everything. We're there already. And when developers have to code to a virtual machine, not the actual bare iron, then whoever writes the virtual machine holds all the cards. And since the authors of the virtual machine will make a lot of money by enforcing intellectual property rights, the arms races are all over: copy protection is absolute, DeCSS won't compile, unauthorized MP3s won't play.

Of course developers rarely write on the bare metal anyway: we write to APIs, we write scripts, we write code that doesn't (need to) run in the CPU's supervisor mode. We're used to surrendering the ultimate control over the machine to the operating system, or to be more precise, to the BIOS that decides how and which operating system to run.

If we surrender this control, though, we'll find ourselves with a monopoly operating system that makes it impossible freely to write code for. (And it's not hard to cut off Linux and every other rogue free OS at the knees. The day that every motherboard's BIOS uses strong crypto to demand the master boot record be signed with a secret key known only to Microsoft is the day that Linux becomes a thing of the past.)

Naturally, to prevent you from firing up GCC and doing a rogue compilation of DeCSS or Lame or other unauthorized code, the operating system will have to stop you from running anything that isn't written in its language for its virtual machine. Requiring code to be signed by a central authority will make its first appearance as virus-prevention but its real purpose too will be control. Universities will be able to buy special licensed exemptions, at least until corporations decide universities are hotbeds of piracy and theft. At which point your alma mater begins teaching Computer Science 101 (and 201, and 301, and 401) in C#.

My prediction is that, unless antitrust legislation in the U.S. gets some teeth between now and then, the PC will become a Gameboy within fifteen years. Enjoy computers while they last.

5 of 514 comments (clear)

  1. Java is a fine C++ replacement, for the most part by Glock27 · · Score: 5, Interesting
    (Java is a replacement for C/C++, and doesn't have an equivalent to iostream.h?! No local file access?! WTF!)

    WTF indeed! Java applications have both! Ever hear of the java.io package?

    Would you really want Java applets, downloaded from an arbitrary Internet site, to have access to your hard drive by default? (Signed applets can do such things, by the way.)

    Java is infinitely preferable to C#+CLR, simply because there is no platform lockin, or vendor lockin (you can get great JVMs from IBM, for instance).

    I'll start seriously considering C#+CLR when the Mono runtime exceeds the performance of Linux JVMs on the same box. I expect that to happen...never. ;-)

    299,792,458 m/s...not just a good idea, its the law!

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  2. CLR and hardware independence by miguel · · Score: 4, Interesting

    The CLR is already being used to write applications that run on multiple platforms. For example the Compact .NET Framework runs on various of the cpus supported by Windows CE.NET. Now you can write an application for .NET and it will run in any system with a CLR.

    This solves a practical problem: now you will be able to "beam" programs from Windows CE machines running on different CPUs. Also, .NET is better than any other Win32 apis.

    The CLR also helps the move to 64 bit systems. There are three integer types on the CLR: int32, int64 and native int (which is 32 or 64 depending on the machine).

    The Mono project is building a free implementation of such a virtual machine (http://www.go-mono.com). We have a functional JIT engine, a C# compiler and many class libraries. So in the future you could even write applications on Windows and run them on Linux.

    Miguell

  3. Re:CLR solves some common and obvious problems by MillionthMonkey · · Score: 4, Interesting

    The CLR allows Microsoft to promote garbage-collected languages in toto. This includes C++, which now has MS extensions to allow garbage collection. You can reserve your own counsel on the topic of extensions to a language, but it works, I'll say that for it.

    I think you should have stopped after the first seven words of your post. :)

    Note this does not mean you can just compile different languages to the CLR, but reuse code at runtime from code written in other languages.

    Could you explain to me the difference between these two statements? What prevents you from doing either one with a JVM?

    .NET would make a good David Spade joke. "I liked .NET better the first time I saw it... when it was called Java."

  4. Re:Paranoia by skotte · · Score: 4, Interesting

    What is happening is the a great bastardization of computing as a hobbie

    this is true. but i believe that is becoming a thing of the anyway. the newer machines just arent as interesting (speed aside). they come prepacked with anything you could want, if you didnt get it, it's either on a suse disc, or a warez site somewhere. (you know, whimsically speaking)

    plus i just dont think theres that many 12 year olds who are coming along and saying "hey! i want to build an OS!" it's ... just a thing of the past.

    (which is a shame, yes, cos inovators are what this world thrives on. more to you if you are doing something really ambitious!)

  5. Re:Paranoia by dublin · · Score: 4, Interesting

    Come ON. Microsoft will not start artificially limiting what hardware it's product will run on. Why would they? That would be like throwing away customers!

    If that's true, they've been doing it for years. God od your homework before you post: Microsoft already has almost total control over the way that PCs work, right down to specifying in their hardware standards what the behavior of the power switch should be.

    They've used the PC9x (I don't know what they're calling them now) stndards to bludgeon all the major computer makers into building hardware the Microsoft way, and guess what? Pretty much all the clones and motherboards then follow suit, so that they're capable of running Windows with some degree of stability, too.

    If you don't think Microsoft has what amounts to 100% control of low-level PC hardware, just take the time to go to their WinHEC conference and notice that nearly every BIOS designer and many of the hardware engineering staff of all the computer and motherboard makers are there, dutifully taking pages of notes on what amounts to their orders for the year.

    Not only is this not far fetched, you don't even realize they've been doing it for years now. And there's a simple reason why it's about 100% effective: Comply or die - if those companies want to avoid paying several times more for the OS on the machines they sell (which obliterates the margin on a modern PC and puts them upside down), they must comply withthe Windows hardware standards as part of their OS purchase contract with MS. If you don't believe this strategy works, take a look around and try to find an AST computer these days - they tried to stand up to MS a few years back, refusing to let MS design their hardware, and MS nearly bankrupted them: I've been told that it was cheaper for them to go into a store and buy the OS than accept the terms MS offered them under "non-compliance".

    If you care at all about the future of the PC, go to WinHEC (they are starting to have to listen somewhat to the backlash) to find out understand what they're trying to do, and learn what you and others can do about it. Knowledge is power here - so far, only trivial numbers of us have refused to buy poisoned hardware. (The last time I checked they were trying to *eliminate* the BIOS, replacing it with a simpler set of lookup tables for resources, which of course would have to be "secured" at some point in the future, but I've been out of this for a couple of years now...)

    --
    "The future's good and the present is nothing to sneeze at." - Roblimo's last ./ post