Posted on 09/12/2010 7:29:14 AM PDT by SeekAndFind
Oracle, now the keeper of the Java flame through its acquisition of Sun Microsystems, has decided that Google has sullied Java through its modifications for the Android platform. For that, Google must pay, and it must pay Oracle. At least that's the way Oracle sees things.
Microsoft must be laughing at this turn of events. Recall that Sun went after Microsoft in the 1990s for similar transgressions against the purity of Java. Sun's catch phrase of the hour was "Write Once, Run Anywhere". The changes Microsoft made in the Java VM allowed Java apps to access Windows-specific functionality if they needed, like just about every other language Microsoft supported on Windows. But it meant that those apps could not possibly Run Anywhere, something Sun did not like. The end result was that Microsoft lost its license to make a Java VM -- and Sun lost its free distribution of Java on Windows.
In retrospect, we know that Sun's "Write Once, Run Anywhere" promise was a lie, and Windows developers didn't need Java since there were so many better (and faster) development options available for Windows. Eventually, products like Adobe Flash filled the web-applet niche that Java thought it would occupy. Java isn't a failure by any means, but it's not what anyone thought it would be 15 years ago.
Java does have a large set of open-source development tools that have grown up around it such as Eclipse. Google no doubt wanted to jump-start its Android development efforts by tapping into that when it announced its development tools in 2007. Yet even back then, Google was spitting in the general direction of Sun and the Java standard. Sun only provided a royalty-free license to Java patents if the implementation conforms to standard Java, and Oracle says Google's version doesn't do that. They may have a good case.
Oracle and Google pounding it out over intellectual property could be good for Microsoft in several ways. Microsoft is already crowing to its phone OEMs that Windows Phone 7 will come with Microsoft's protection against IP issues in the software. If the lawsuit continues on for a long time and it appears Android development may be affected, developers may throttle back their efforts in anticipation of the coming changes. That could hurt the quality of Android apps, and give Windows Phone 7 a chance to catch up.
Some articles are floating another possible scenario, where Google abandons Java for the open-source implementation of Microsoft's .NET environment, called Mono. It's true that Microsoft has put fewer restrictions on .NET than Sun/Oracle puts on Java. Unlike the iPhone world, Google has no problem with anyone creating different Android development tools. Given how much effort Google has invested in Java development, however, this scenario seems unlikely.
Any industry fight where Microsoft is outside the ring is a good fight for Microsoft. That's especially true in the mobile market, where the company is having to come from far behind. The best outcome for Microsoft would be for this controversy to last at least until 2011, when Windows Phone 7 is out the door and making waves on its own merit. These legal battles seem to drag out, so there's a good chance the company will get its wish.
We used to say of Java: “Write once, debug everywhere.”
That said, it is probably preferable to C++.
The patent pissing match between Oracle and Google is going to get down and dirty.
I still don’t see how Microsoft comes out the winner here.
How popular is .NET compared to Java nowadays anyway ?
If you were to stake your career on mastering one technology, which one is the technology with the brighter future?
Oh, that’s a loaded question. They’re both popular. They’re just vastly different in their perspective, that’s all.
Or, rather, they possibly used to be.
.Net was MSFT’s answer to Java - sort of.
.Net is ostensibly a Windows-based development platform, Mono notwithstanding.
Java was designed to be available across Windows, Unix, OS X and portable devices from the get-go.
The popularity issue isn’t always the first question to ask here. If you’re going to be rolling out your application/suite on Windows only, and you’re using MSFT’s tools for development... you will probably find that .Net is the path of least resistance.
If you need to run your app on multiple platforms... you’re foolish to not at least look closely at Java.
But if all you’re doing on the other platforms is running a database or some other server, and most (or all) of the GUI stuff is on Windows... .Net might be a better fit for you.
In terms of which has better uptake in terms of number of developers or projects - I don’t know the answer to that question, but from looking at job postings (which I do not because I want a job, but because I use job postings to judge the expansion or financial growth path of a company now - those who are hiring should be seeing upcoming customer demand), I’d say that .Net is starting up pick up momentum vs. Java.
The big advantage with Java used to be that it came from Sun, and Sun (unlike Microsoft) wasn’t a pack of flaming jerks to work with.
With Oracle now having bought Sun, and many of the Java team leaving for greener or nicer pastures, I think Java will have the same (or worse) liabilities as Microsoft in this aspect. Oracle is a company known in Silly Valley for producing world-class jerks.
Lisp. Ruby. Python. Scala. Clojure.
Java, if you must. It's a wordy dog's breakfast of a language, but there are lots of tempting libraries available. In most cases, you can exploit these via JRuby and avoid soiling yourself with the actual Java language.
But never .Net!
My advice, know both, many shops use both .NET and Java-based technologies. I do think it’s easier from someone in the Java-world to adapt to .NET, than vice-versa.
Clarify, Java is a language, but it’s also the JVM, when I think of Java, I think of the JVM, Scala, for example runs on the JVM. So, more and more Java is becoming like .NET, where there are many languages that can now compile to Java run code to run on the JVM, just as many languages compile to .NET’s CLR.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.