Cross-Platform is Not That Important

by Krishna on November 22, 2009

Dave Nicolette asks about C# versus Java:

Consider two hypothetical programming languages such that:

Language A

  • Supports closures, and
  • Can only run on one platform, so that customers who use the language for mission-critical apps are locked into a single operating system vendor.

Language B

  • Doesn’t support closures, and
  • Runs on all mainstream platforms, so that customers who use the language have flexibility to change their technical environment as their business needs change or as the relative cost of ownership of different platforms changes.

Which of the two programming languages is "better?"

We saw the same failed argument about Java on the desktop a decade ago. Write once, run anywhere. One reason it didn’t work was the dominance of Windows. You were better served with just using the most productive programming platform for Windows, whichever that was or whichever you preferred.

Back in the 1990s and early 2000s, when we had a plethora of choices of web servers, application servers and databases, using Java as a multi-platform language made sense. Today, most Java development is coalescing around Linux, Apache, mySQL and Tomcat/JBoss, making it a de-facto standard.

An experienced Java developer may have had the experience of porting from JRun to WebLogic, or from Sybase to Oracle. But if you are starting today to develop a new application on the aforementioned stack, is such a move likely? All the tools are open-source thus avoiding a need to reduce costs. They are also proven to be scalable, as many high-traffic sites can testify.

Metrics about platform changes would be helpful here, but if they bear out what I say, there is no actual cross-platform advantage offered by Java when you are not changing platforms. You may have other arguments for choosing Java, but this is not one.

{ 2 comments }

Mike Marshall November 23, 2009 at 10:14 pm

Agree with you here. Cross-Platform development frameworks never really did manifest themselves into something important. Oddly enough now that server platforms have started to coalesce into a few choices, client platforms are now seeing some diversity.

We now have more browsers than ever and also mobile platforms to consider. The pendulum swings.

Krishna November 24, 2009 at 2:06 pm

You have a good point about mobile platforms and browsers. On the mobile, the two main players are iPhone and Android, both with entirely incompatible programming environments. On the browser side, we do have common languages that are increasingly becoming standardized across browsers (W3C, JQuery, Acid tests and so on).

Comments on this entry are closed.

Previous post:

Next post: