Java Thrown Back in Windows, For Now
darnellmc writes: "According to this News.com article, Microsoft has decided to include their JVM in the next Windows XP service pack. They are doing this in an attempt to avoid Sun's recent lawsuit against them for anti-trust violations. I wonder if the recent decision allowing the nine states' suit to continue had anything to do with this? Of course it did. MS plans not to have the JVM in future versions of Windows though."
Its a token gesture Java 1.1.3. Now they can say "See theres Java, yup its in Windows!" To bad that java is years old. Stale mb ;)
I have a shitty sig!
This is an old 1.1 VM that won't run any modern Java code. Now people won't want to download Java VMs because they "already have Java", frustrating Java developers just as much.
Is it so far-fetched that Microsoft is actually trying to provide it's users with the features that they want?
Yes, it is, particularly since the java they're including is a horribly outdated version that won't run must of the java code on the net today.
It is a ploy designed to confuse the user, break as many existing java apps as possible, and spin the tale to place the blame on 'java' or Sun, rather than squarely on Microsoft where it belongs.
The Future of Human Evolution: Autonomy
Honestly, who cares?!?! Now that FreeBSD has Java, who needs Windows anymore? In my opinion, the operating systems of the future are the free UNIX ones. Linux is supported by a great many companies. The BSDs form a good group of friendly competition. There are a whole bunch of fringe operating systems out there. Sooner or later, already the laughing stock of the industry, Microsoft is just going to lose the market, regardless of whether the government does anything to screw them over. Microsoft has abused its customers time and again, promising change and delivering crap each time. Think a memo about reliability is going to change anything? It'll take Microsoft years to solve the problems in their software, because it contains so much code, and even more so because it's a moving target: Microsoft can't afford to simply stop development and concentrate on reliability. They have to implement new features and stay on top of the constantly changing market.
Although Microsoft does have a shitload of money, I believe they made a fundamental mistake, and their high rate of success is only going to make them fall much harder when the time comes. That mistake was simply trying to accomplish too much. Regardless of their size and resources, they simply can't manufacture the rigorous quality that's becoming ever more important in our world. Their software is defective to the core, and it shows.
What Microsoft tried to do was become the empire. Like Rome or something. Rome took over about a quarter of the world, probably in hopes of gaining complete control over everything. Furthermore, the rich people donated a lot of money to the empire for various things. Everyone who donated wanted their name to go down in history, so they donated money to build extravagant things like colosseums and whatnot. Nobody wanted to support the maintainence of roads or other boring stuff. As a result of this negligence and many "management" mistakes, the empire declined until it fell apart completely. Microsoft tried the same thing: They either bought out or put out of business just about every profitable software company out there, in hopes of gaining complete control over the software industry. Furthermore, instead of concentrating on reliability, they concentrated on extravagant things like features nobody uses and talking paperclips. This practice has resulted in millions upon millions of lines of code, and probably 3000% duplication of effort, of which probably a good one fourth is defective, and this is hidden by hasty workarounds and kludges in order to meet shipping schedules.
I believe Microsoft would have been much better off if they didn't produce any software at all! Instead, they would be a software publisher, a packaging and marketing company of sorts. Microsoft would form alliances with companies in the markets they wished to enter. To begin with, they would offer a shitload of money to these companies, up-front, as an investment. The companies would produce the software, which must meet Microsoft's would-be rigorous software testing and auditing requirements. No known bugs would be released, and Microsoft would throw whatever was required into ironing out all but the most obscure and unknown bugs. For the release, Microsoft would print fancy documentation, put the software in fancy boxes, and spend a shitload on marketing. (The software would be sold as, for example, Microsoft C++, Presented by Borland International, or something like that, in much the same way as some science fiction books are sold as Isaac Asimov Presents whatever by whomever.) Then, Microsoft and the software producer would equally split the profits and share a few truckloads of Negra Modelo while they're at it. Everyone wins.
As time passed, and the Microsoft name was found on more and more products, companies would run to Microsoft, desperately trying to get Microsoft's name on their products. Instead of Microsoft blackmailing companies to give in, "Sell out to us or we'll crush you," everyone would run to Microsoft, in an effort to make Microsoft ditch one product for another. (Of course, the vast superiority of a product would have to be demonstrated in order for Microsoft to make such a move.) To make a long story short, there would be no anti-trust trial and software would be extremely reliable.
But then reality sets in, and all the free software out there has a giant advantage over Microsoft. That advantage is simply time. Linux, for example, had about 7 or 8 good years to simply develop without market pressure or competition. That allowed a good, solid foundation to be built and a lot of experience to be gained. Regardless of their resources, Microsoft did not have that kind of time to research and develop Windows, because the reality of the market forced them to continually make releases and add features. So I go back to what I said at the beginning of this unnecessarily long post, and that is that free software is going to replace commercial software, at least in the operating systems market.
I have shown two programs to friends that have hated Java since it was born. They couldn't tell that Eclipse was written in Java. They couldn't tell that arkanae(.tuxfamily.org) was written in java. Neither are slow except for loading, but so are all other IDE's and 3D games.
:) The real point I guess I'm trying to make is that you would have to know what kind of hardware you were on at compile time to get the most performance. Java only moves compilation to the client machine. Javac is nothing more than a source code obfiscator. In the end there will be a VM that can handle garbage collection better than the C programmer can handle memory leaks, segmentation faults, and buffer overflows. What am I talking about? That day has already come. Every other day someone screws up a buffer and my system is in a constant state of vulnerability. Why fix the problem in every location that it's broke? Why not just fix it in one place forever? If not Java, some virtual machine will eventually prevail. Given that Java has a head start, it will most likely be the one.
The optimizations that you point out are just as valid for Java and are more of an arguement that Java can be optimized for each CPU that it runs on despite the fact that it is cross platform. Not only has it got faster, but it has the potential to be much faster yet. Consider the power of being able to dynamically determine if a function should be internal or not based on statistical information. C certainly doesn't have that ability. This makes it quite possible for Java to surpass C in performance based upon the very fact that it is dynamically compiled.
I was told that the phones that will run java would have a different processor designed for that purpose. In that case it wouldn't really hurt battery life that much would it? You're right about Symbian, but even they know that Java is a big market and have a VM for it.
Sure you can't run desktop apps on a pda, but you sure can run a java pda app on any pda without having to port it to all the various processors.
There are plenty of people that call C a glorified assembler, but that doesn't make it all bad. Java is a bit more than a scripting language. Scripting languages are notably procedural. That's the true meaning of "script". It's a procedure to be carried out. Java is more like a system of interacting components.
The debate that you refer to is that programmers can no longer generate assembler as good as they once could. I know of this one crazy guy who optimized his program to the rotational speed of the disk drive. There were 0 IO waits in his program and I gaurantee you it ran at least twice as fast as any C program could
As for GIT/VM sitting in L1/L2. That's only true when the program is running in interpretted mode. This will only last until the program has been completely compiled. During that time (the first few minutes of running the application) the cache misses will be heavy. That's not so bad when you consider that's when cache misses are already heavy from not having the program fully in memory.
As for consuming memory... I really don't get it. Most people don't care that Windows consumes about twice as much memory as Linux when deciding which OS to run. What really matters on a client workstation is how quick the program responds to the user. Threading fixed this problem long ago. And java fixed the threading problem.
Karma Clown