Java versus .net, how to choose among the two? What parameters to consider when adopting a technology for software development for lifetime (J2EE application development?)?



I assume that you as a reader know about the two named technologies, at
least who developed them? And what is the main objective of both the
technologies? To enunciate the differences, I have produced a chart
relating to different parameters to be considered software developers
and development houses. Factor J2EE Microsoft .Net Brand Sun/Various Microsoft Support Not Available Available Costs Free Command Line Development or SDK is available for Free, IDE and other support tools will cost Documentation Complete but not detailed and comprehensive Complete and comprehensive documentation with proper support material OS Compatibility Unknown and needs research by developer Known and well documented Portability Supports Multiple Platforms Supports Major Platforms Runtime Environment JRE (Java Runtime Environment) CLR (Common Language Runtime) Security
Sandbox approach (not so successful and feature rich) Sandbox + OS +
Customized security settings are available thus applications can be
feature rich Programming Power Sandbox approach and portability
issues + unavailability of powerful APIs makes it only a lame platform
to program; One needs to use JNDI and other similar services to achieve
the effect which sacrifices portability and security. Feature Rich,
Highly customizable and powerful controls and APIs Programming Languages Only programmable in Java Programmable in more than 30 Programming languages including classic programming languages Code Conversion Compiled and interpreted (must), fully compiled are not portable Compiled only, no interpretation, not even in scripts IDE
Various (one from Sun is in no comparison with MS IDEs and is not
feature rich as well) MS own IDE (only the creator knows the created
better) Web Controls None Server Side and Client Side both supported Built in Language Interoperability None supported Multiple .net enabled languages can be used to program one module Architecture Restrictions Do not utilizes the Hardware efficiently Target Machine Compilation, Utilizes maximum Hardware capability Versioning Support Packaging Supported (Not as efficient as Versioning in .Net) Yes Controlled None (No one knows which flavor to use and who is controlling it) Microsoft XML Support
Yes but only supports Almost Everything is XML You can see that how
.Net takes it away from J2EE, the differences are clear, the only thing
needs to be considered is cost. In my opinion an organization should be
able to bear the cost of such a quality technology for the comforts it
provides you. I only discussed the more needed characteristics of both.
The discussion of Beans and ActiveX doesnt lead to the final decision
and must not be considered when trying to evaluate among those two
technologies, because once an organization adopts it, it has to follow
the requirements of the technology no matter what name is given to it.