Why Java is better than .NET

04-03-04 banq
这是网上对比Java和.NET的文章,不过是支持Java,

文章满出名的,可以看看,

据说有87条,

现在我只找到了25条,先看看吧

1. Run on Multiple Platforms from the Smallest Devices to the Largest Mainframes

Run on multiple platforms, from smart cards, embedded devices(JStamp), cell

phones(Nokia, Motorola, Ericsson etc), pdas (Palm, Symbian, Sharp),laptops

and desktops (MacOS, Linux), servers (Unix based), Non Stop Servers (Tandem

) to Mainframes ( IBM ).

2. Run Dynamic Languages

Run Dynamic Languages like Python (JPython) , Scheme (JScheme, SISC, Kawa

), Ruby(JRuby), Smalltalk(Bistro). In comparison a commercial development

effort to port Python to .NET showed dismal performance. Furthermore, a

paper comparing the CLR and the JVM came to similar conclusions .

3. Compile in One Platform Run in Another.

Visual Studio.NET and .NET SDK End User License Agreements specifically states

that code compiled with it cannot run in non-microsoft platforms.

4. Smaller Runtime Download

The Java Runtime Evironment (JRE) is a 8MB runtime download, .NET runtime

download is over twice as large (i.e. 20 MB).

5. No mandatory upgrades. No subscription fees. No software insurance fees

.

How many MIS organizations are held hostage to microsoft's draconian licensing

policies?

6. Run Multiple Versions of the VM (Runtime) on the Same Machine

Its common to have multiple version of the Java Virtual Machine (JVM) available

and running simultaneously on the same operating system. This is useful

if you need to test your application on different version of the JVM. Try

doing this with .NET.

Its common for Windows based products to have several machines with different

versions of Windows to do tests. In fact, this is in fact such a big problem

that even Microsoft licensed the use of VMWare (a product that allows you

to run multiple virtual machines) for its 6,000 salespeople .

7. Large Innovative Open Source Community

The existence of a large body of open source code is value that should not

be ignored. This provides developers an enormous repository of code that

can be reused. In fact, most .NET open source projects are rewrites of Java

projects.

8. Low cost Commercial Quality IDE's

The Eclipse and Netbeans IDEs are free for any kind of software development

. JBuilder and JDeveloper are free for educational use. This is in stark

contrast with .NET where Visual Studio.NET costs almost $500. Also, if you

think sharpdevelop is commercial grade, think again!

9. More Available Jobs

A search on Monster.com will quickly reveal that there are 10 times more

jobs that require Java skill than C# jobs. In fact a third of C# jobs require

Java skills.

10. Better and Standardized Connectivity to Legacy Applications

The Java Connector Architecture (JCA) is a standard for connecting to Enterprise

Information Systems (EIS). JCA supports access to SAP, IBM CICS, PeopleSoft

, Oracle, Siebel, Screens 3270, AS/400, Unisys, ADABAS-C, VSAM, Codasyl,

IMS, Tuxedo etc. This level of connectivity options in unavailable for .NET

.

11. Multiple Vendor Choice and Support

Java technologies are supported by multiple vendors allowing mix and match

and best of breed solutions. Java standard APIs have always been designed

to be supported by multiple implementations.

For example the Java Messaging Service (JMS) standard is supported by multiple

vendors IBM, TibCo, Progress, SpiritSoft, Fiorina, Swift, Open3, JBoss,

etc. You have the freedom to pick what's the best messaging product for your

situation, you don't have that option with Microsoft where there is only

one choice MSMQ.

12. Compile to Machine Code

Java has several solutions to compiling into machine code, that is when compiling

to byte code is an issue for either intellectual property or performance

reasons. TowerJ, Jove from Instantiations, Excelsior JET and GNU GCC provide

robust solutions to compiling Java to native code.

13. Future Proof

Java is future proof or rather future portable, in the sense that your existing

code base will not become obsolete. How so? I can run Java on machines today

and machines in the future. You don't have that assurance for Microsoft'

s technologies like .NET. A vivid example is their support for for VB6, which

has been set to expire. It's crucial to consider that every development

has a ROI that spans several years. How many years was DNA around before

Microsoft declared it obsolete?

14. Most Popular Language in the Corporation

A recent survey reveals "Interestingly, the strong showing of Visual C# .

NET divides the Microsoft camp and propels Java into first place as the most

popular language over the coming year". In corporations, there are more

developers familiar with Java than any other language. The benefit is that

there's a higher chance that someone can maintain or fix a java program

than that written in any other language. Do you think you'll find someone

in your corporation who will be able to fix that legacy VB application 2

years from now?

15. Larger Talent Pool

Java is taught in most universities, this is resource for well trained affordable

junior programmers, the same can't be said about C# or VB. Senior Java developers

are also easier to find. The same can't be said about C# where there aren

't any senior developers. Also a senior VB developer is least qualified to

lead development requiring OO analysis and design.

16. More Contributions From R&D Organizations

Java is not only taught at universities, it is also extensively used as part

of research and development. Work by Matt Welsh at UC Berkeley contributed

to the New IO mechanisms we find in JDK 1.4. Generics was worked done by

University of South Australia. Aside from universities, research organizations

like CERN and HEP have contributed a large amount of code to the public.

17. Government Approved

The Office of Management and Budget (OMB) of the U.S. Federal Government

recommends to architects the use Java 2 Enterprise Edition over Microsoft

.Net as underlying technology. This means that a larger share of billions

of dollars that will be spent to upgrade the governments aging IT infrastucture

will be done in Java. Expect other governments wary of Microsoft's licensing

practices to do the same.

18. More Homogeneous and Less Complex Environment

The Java environment is more homogeneous and less complex than .NET. It is

not littered with obsolete technologies like COM, DCOM, COM+, ADO, nor is

it dependent on operating system indiosyncracies like register settings

or most recent service patch level. Furthermore, there is no artificial divisions

between someone called a VB programmer and someone called a C# or C++ programmer

. Developers are competent whether its UI development or server development

, everything is in Java so its understandable and therefore maintainable

by everyone.

19. More Deployment Options

With Java there are more ways to deploy your application. Here are a few

ways: applets, webstart, x-windows, midlet. Furthermore, there is standardization

for client provisioning being proposed as a JSR.

20. More Searchable References

A search in Google of for "C#" hits 1,720,000 documents, for "Visual Basic

" hits 3,270,000. In comparison a search for Java hits 32,100,000, almost

10 times more than even Visual Basic.

21. Better support for Software Process Best Practices

Most best practices in software development are done in Java shops. Examples

like Refactoring, JUnit testing and Continuous builds. Java developers are

familiar with these practices, and by hiring them, you introduce these practices

into your organization.

22. Mature Object Oriented Relational Mapping Tools

It is best practice in Object Oriented development to decouple business objects

from their underlying relational database representation. Java has several

mature and robust products that support the mapping of relational databases

to objects, notable of which are TopLink and CocoBase. There is no equivalent

of such a tool in the .NET world. Microsoft is trying to remedy the situation

by buiding something called "ObjectSpaces", however its still in beta and

not mature enough to entrust your enterprise business on.

23. More Productive Coding Tools

Java IDEs are superior in their support for coding tasks. Features like code

refactoring, intention actions, superior code browsing (i.e Find Usages)

and robust code completion are superior to what you find in Visual Studio

.NET. In fact, Visual Studio.NET is known to unintentionally erase code.

24. Cross Platform Integration with Other Languages

Integration with Java from other languages like Perl, PHP or Python is cross

platform. In otherwords, I can take my PHP scripts that talk to Java and

run in windows, place them in a Linux box and have them work without a major

porting effort.

25. Higher Paying Jobs

On the average a Java programmer earns quantitatively more than a VB programmer

with the same number of years experience.

         

techiet
2006-08-10 15:40
受教了!

虽然离发贴时间将近两年了

saharabear
2009-01-16 12:05
不知道为啥,看着.net或者微软,我就不爽。可能因为我一直是Unix用户的原因吧。

ACoder
2009-01-16 13:31
楼上大哥我一直用AIX也没有说觉得windows就该over。说实话,小机上的东西比windows不知道要简单多少。

猜你喜欢