LarryOsterman wrote:I happen to disagree with him w.r.t. C#, personally I think he's overestimating the value of being platform independant, but I can see why he thinks the way he does.
That's understable that you think there is little value in platform independance, after all you work for someone who creates one of those platforms. And I mean no offense Larry, but you've been inside Microsoft for how long? The world out here is a lot different,
and whilst I am sure you've met and interacted with Microsoft customers, it isn't quite the same as working for one of these companies.
Contrary to what some people on this board think, some people do use un*x boxen to deliver enterprise apps. If I were going to target an enterprise product why would I reduce the number of platforms I can sell to? If I use C# I get one platform, if I use
Java I get nearly all of them.
Having said that - Java sucks. Not so much Java as the plethora of frameworks that exist.
Ross, but how many apps are deployed cross-platform? How many people deploy un*x solutions built on Java that work with more than one JVM?
As long as there's more than one JVM out there, there will be differences between the JVM's. That means that writing solutions for more than one JVM increases the cost of writing software.
The reality is that no matter how carefully the language is specified, there will be differences in each independant implementation. The same thing holds true for virtual machines. This basic fact is why the cost savings that were the main benefit of Java
(remember "Write Once, Run Everywhere"?) haven't materialized. The reality was "Write Once, TEST Everywhere"). Since test is a huge part of the cost of developing software...
This (IMHO) is the primary reason Java has never succeeded on the desktop, and why it IS succeeding on the server. On the desktop, you need to deal with multiple JVMs, one for each client OS. On the server, you typically only have one server OS, so you only
have to concentrate on a single JVM.