Microsoft's CLR - Providing a Break from HW Vendors?
"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.
The problem with Java is that that it was supposed to be write-once, run anywhere. Instead, it's become write once, debug everywhere. If M$ is going to try to follow the same path, they need to avoid the pitfall of platform incompibilities, IMHO.
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
Hey, due to licensing deals MS has made with all the major PC manufacturers, you will never see a dual boot consumer PC direct from the factory. Tying the BIOS to a crypto key wouldn't be that far of a stretch especially in the era of DMCA.
There will always be hackers as well as the hardware techies. To stop these guys would invariably involve systematically wiping them out i.e. DEATH!
Does this mean that Mono is now a force for good, protecting us from the Powers of Darkness getting absolute control, or are the still vile traitors helping the Beast conquer the world?
It's very plausible that the CLR is how MS plans to insure it's monopoly in what's becoming the commoditization of the operating system and the diversification of computing platforms (set top box, PDA, cell phone, etc..). Java and Linux run on just about anything, that is: Linux running on about any hardware, and Java running on about any operating system. MS usually "get's it" and twists "it" to their advantage. It doesn't surprise me that they would "get" WORA as well as the fact that their OS needs to run on diverse hardware. Think back to Shared Source, or any other good idea that MS took and bastardized for their own use. People that think MS will obsolete themselves forget that MS is not what IBM was. MS has hoards of cash; lots of savvy, aggressive, very bright business people; and an army of programmers. If they "get" anything they have all the resources they need available to them to capitalize on it. If you think the gov't is going to actually do anything to stop them, get real.
This is why I keep repeating the fact that us Free Software and Open Source hackers need to stop following MS and others, and jump ahead. Why didn't Gnome or KDE leap ahead in terms of UI like (arguably) OSX and XP have? Because we were to busy copying Windows and UNIX. I'll get flammed for this but, why must Linux be so UNIX like? It's a kernel, the rest of the OS could become anything we dream up. Why aren't we setting the pace and doing the innovating? Why not dream up an entirely new set of operating system metaphors?
Stop following, start leading.
And something to consider -- there are other countries on this earth. America isn't the great country that we make it out to be. I mean, it's not bad but it's FAR from perfect. Worse, we _think_ we're perfect. I would not be surprised that things like this (companies 0wn1nG the gov't) lead to a downfall of the American marke, or way of life. In 20 years, I bet that China is going to be SERIOUSLY competitive with the United States. If things like this happen, the talent is going to leave the country (I know I will, and I'm 16 -- I have plenty of years ahead of me). Heh, I guess I'm being a bit arrogant, but I'm a pretty good programmer
Hmm.. I'm going to Japan for a year on an exchange program, anyone know if society is more/less free, more/less company owned. It's probably not any better, is it...
My other car is first.
1. Full-power, expensive operating systems become a niche market and more consumer-oriented targeted platforms on the level of TiVo or Palm become the norm. Microsoft and Apple have a big advantage in this scenario due to their code bases, and you would see a market of 3-5 manufacturers of appliances including MS and Apple.
2. General purpose operating systems based on free software become the norm for home use, opening the field to many competitors with an eventual shakeout to who knows who. Advantage: PC makers.
3. Microsoft lowers its OEM pricing for the Windows environment and provides it through a Reasonable And Non-Discriminatory licensing scheme with multiple distribution companies who resell it to home PC manufacturers. Ironically, this is one of the proposed Justice settlement schemes before Bush gave the farm away. Some or most of the current PC manufacturers survive in this scenario and microsoft becomes like a utility: profitable and boring.
personal attacks hurt, especially when deserved
I remember reading something a while ago about Microsoft providing a mechanism where you can configure Windows to only allow Signed Applications to run, for use in a Corporate Environment where the IT dept doesn't want anyone to run anything.
:(
So they've already started
I disagree with the reason you dismiss what he said. It isn't _too_ paranoid to suggest that MS could run all the other current companies that do business in the computer industry into bankruptcy or make them unimportant. So yeah, author X could possibly kill all the other authors (no I don't really think it's going to happen). The reason it wouldn't matter if author X killed the other authors is because that would also be the day that new authors were born. Maybe not in the form of new companies but perhaps in the form of open source coders. I can't see _everyone_ taking a monopoly of that magnitude in stride. The day author MS kills all the other author Suns, IBMs, Intels, and so forth, could be open source's greatest day.
"A witty saying proves nothing." - Voltaire
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
i dunno if i really want to go to america. it might not be to fun to live under a government that advocates the death penalty and squashes free speech
Something wrong with Mac? Microsoft's Mactopia currently lists Office (complete with features not available on windows) with Entourage, Internet Exploder, MSN Messenger, Outlook Express, Windows Media Player and Outlook. And, all of these apps have been updated to support MacOS X.
Some people have even commented that the Mac versions of MS products are better than the windows versions!
I use Macs to up my productivity, so up yours Microsoft!
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.
.NET is better than any other Win32 apis.
This solves a practical problem: now you will be able to "beam" programs from Windows CE machines running on different CPUs. Also,
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
Whether they acknowledge it or not, MS lives in close symbiosis with the vendors; every 2 years or so progress in hardware development produces faster PCs, and every 2 years or so MS produces a version of Windows, as well as applications, that serve to bring the speed of those PCs down to a sluggish sublevel of performance, the added bells and whistles effectively canceling out the performance gains. Users have been indoctrinated into accepting this cycle as natural, which is why users so often acknowledge the speed of Linux, BeOS and other OSes as wonderous, when in truth we shouldn't accept anything less.
In short, Microsoft boosts the new generation of speedy hardware because users "need" it. And speedy hardware boosts the new generation of Microsoft stuff because users "need" it. At the moment, that cycle is slowing down as users feel applications are fast enough for their needs. The recent improvements in performance have been almost entirely for the sake of gaming performance and multimedia: AGP, 3D instructions, HW-accelerated DVD playback, HW-accelerated sound, cooling supplies, cool cases etc. -- precious little of that stuff is for business tasks.
Everybody knows the upgrade cycle can't go on like this. And consciously or not, this game of leapfrog will be artificially boosted by .NET because this technology, by definition, will slow down your computer; similar to Java, it relies on bytecode that is compiled into native code on demand (Just-In-Time compilation). While some argue that this process can produce superior performance to traditional pre-compilation, in the short run it probably won't -- Java is a good case study here.
The fact that .NET could run on other hardware platforms is another possible sales-booster: a hardware-independent Windows would promote new types of hardware, freeing the burden of innovation from being completely on Intel, spurring competition, thereby potentially spurring more sales, etc.
Yes, we can cut MS a bit of slack here, right now, and assume that signing originated as an integrity improvement. However, you don't have to be as paranoid as some people here to envisage a situation where non-trusted code cannot be installed without breaking some support agreement etc., particularly in the corporate environment.
Actually, I'd better complete that statement/ramble and say that I think this is probably the right thing to do from an MS support PoV. The 'remedy', if required, would be to allow other support organizations to certify their own combinations of drivers.
>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!
Because Microsoft always takes the long view, and are willing to throw away money in the short term. Look at their products - they are pretty much always the best short-term decision to make.
>And why would hardware manufacturers start doing this otherwise? Customer pressure? If anything, limiting their BIOS in this way would dramatically LOWER the value of their
>BIOS! Think about it, if 75% of motherboards
Not so. The purpose of BIOS is to get you far enough to start Windows. (in most peoples' view) If a crippled BIOS somehow made the system cheaper to support or manufacture, they'd do it in a heartbeat.
That's why widescale Linux preloads are not going to happen - it increases manufacturing cost by introducing another process flow. Even dual-boot introduces another process step - and increases cost. This is worse than a basic chicken-and-egg problem, because there's no room anywhere for the baby chick.
One possible way out of this Catch-22 would be to enable Linux as a better manufacturing platform than Windows. Enable it as a diagnostic program, essentially. Then it becomes a valuable part of the manufacturing flow, and Windows becomes simply something you stick on for the customer, instead of an integral part of the build.
The living have better things to do than to continue hating the dead.
I think the main reason for CLR is that the x86 architecture is clearly on the way out, but it has not yet become clear what its successor will be. There are several candidates, and MS doesn't want to build and keep separate versions of their code for all of them, nor does it want to risk choosing a loser. So it designs a VM layer so that the only code that needs to know what hardware you have is Windows, which you buy with the hardware anyway. In any case where you don't know what the user will be using, introduce a layer of abstraction and you don't invest much in your guess. Of course, they've got code in many languages, so all of the languages have to target this virtual machine.
Let's check the lifesupport on that POSIX "monopoly" you speak of --
SCO - Dying
HP-UX - Dying
Tru64 - May already be dead
POSIX environments on OS/400 and VMS - gvmt checklist, never used
Linux - Only follows POSIX when it feels like it. spec books cost too much
BSD - Outright rejection of POSIX because it was invented after 1981
So, you are really talking about Sun and IBM. Strange how the two greatest supporters of Java are the lone defenders of your wonderful POSIX monopoly. Maybe they know something you don't.
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.
:)
.NET better the first time I saw it... when it was called Java."
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
The amiga probably would have survived and computing/graphics power in the home would be able 5 years ahead of where it is now.
Seriously though, I don't see why IBM won, except the fact that it's what they were using at the workplace. Offerings by other companies were so much more advanced. (not initially.. though the commodore 64 was pretty impressive, and the 128, though not as popular to write programs for was nice.. the amiga was light years ahead of others in graphics, power, etc. I know people who browse the internet just fine on their amigas. No other computer from that day would be able to handle it as well, i'm sure.)
Now Microsoft is smart, and I think they learned their lesson somewhat. They're not going to do anything blantantly monopolisitic like requireing all BIOSes to only be able to boot windows. They don't want to have to deal with another antitrust case, and they, and they surely don't want the DOJ to have killer arguments like, "Now, no new computer can run anything but Microsoft Windows," and, "All software on a Windows system must now be signed by Microsoft, thus giving Microsoft absolute control over the software industry." A case like this would make the current antitrust trial look insignifigant in comparison.
Oh yeah, IANAL.
What is happening is the a great bastardization of computing as a hobbie
... just a thing of the past.
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
(which is a shame, yes, cos inovators are what this world thrives on. more to you if you are doing something really ambitious!)
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