Download Java versus .NET

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Java versus .NET
The Heavyweight Championship
Showdown
Copyright © 2002 Systek AS
[email protected]
Why are we here?
•
•
•
•
•
Times are changing
The once powerful Java has a new challenger
Should we rethink our alliances?
Should we abandon Java?
Should we learn .NET?
• Should we be afraid?
• (Spoiler: Don’t panic quite yet)
Copyright © 2002 Systek AS
[email protected]
This presentation at a glance
• Technological comparison
• On the desktop
• On the server
• On the cell-phone and PDA
• Non-technological aspects
• Cost of ownership
• Existing systems and partners
• Open source
• Summary
Copyright © 2002 Systek AS
[email protected]
Ringside round-up: The champion Java
•
•
•
•
•
Several years of established performance
Thousands of successful projects
Hundreds of industry-wide standards (JCP)
Many vendors, both vertical and horizontal
Widely accepted in academia
• Strong OO model, powerful libraries, strong
enterprise capabilities
Copyright © 2002 Systek AS
[email protected]
Ringside round-up: The challenger .NET
•The next step in the evolution
of Windows software
•Championed by the allpowerful Microsoft
•Has generated a lot of buzz in
the business
•Has learned from previous
mistakes of Windows
technology and Java?
•Strong OO model, powerful
Copyright © 2002 Systek AS
[email protected]
Technological comparison
• Feature rich languages and libraries
Copyright © 2002 Systek AS
[email protected]
For the developer
• C#-language is like Java with some features added
• (Events, operator overloading, enums, delegators,
attributes)
• And some removed: Anonymous inner classes! (but
anonymous functions are coming)
• Doubtful value: Enums, operator overloading, events
• Very valuable: attributes
Copyright © 2002 Systek AS
[email protected]
Language differences
• C# is the most used language on .NET
• VB.NET is a close runner up
• Both contain unique features
Copyright © 2002 Systek AS
[email protected]
Attributes
Examples
Uses
• JSR 175
Copyright © 2002 Systek AS
[email protected]
On the desktop
• .NET provides a native look and feel (but try SWT)
• .NET provides an easy to use designer (but it has some
flaws)
• In my view, the API interface for Java is better than .NET
• Vivid example: JTree versus TreeView
Copyright © 2002 Systek AS
[email protected]
Autodeployed clients
•
•
•
•
Java Web Start versus .NET ”autodeployment”
My experience with both is good
Introduces security issues
Some minor differences:
• .NET does not show splash-screen: User often
accidentially starts multiple copies
• .NET code access security is not 100% good yet
Copyright © 2002 Systek AS
[email protected]
Web-based clients
Copyright © 2002 Systek AS
[email protected]
On the server
• Issues:
• Data access: Entity Beans versus ADO.NET
• Web Access: Servlets/JSPs versus ASP.NET
• Transactions: Session Beans versus COM+
Components
• Scalability, manageability etc.
Copyright © 2002 Systek AS
[email protected]
On the cell-phone and PDA
• Browser-based
• Java: No special support
• .NET: Microsoft Mobile Internet Toolkit
• Client-based
• Java: J2ME – MIDP is available, but not very
powerful
• .NET: .NET CF: Mostly available on PDAs (Pocket
PC), but very powerful compared to MIDP
Copyright © 2002 Systek AS
[email protected]
Portability
• If you need to run on different platforms, don’t do
.NET
• If you want to program in several languages, don’t
use Java
• (Unless you know what you’re doing)
• (Why would you want several languages, anyway?)
Copyright © 2002 Systek AS
[email protected]
Performance benchmarks
• Basically worthless
• Usually test a limited subset of platforms:
• E.g. Benchmark showing Java 10s of times faster
than C# turned out to test only the difference in
processing of Regular Expressions
Copyright © 2002 Systek AS
[email protected]
Non-technical aspects
Copyright © 2002 Systek AS
[email protected]
Cost of ownership
• .NET: No runtime costs, acceptable development
costs
• Java development costs: Free (NetBeans, Eclipse)
to very expensive (OptimalJ, TogetherJ)
• Commercial EJB servers: Very high costs
• Open-source EJB servers: JOnAs and JBoss
• Open-source servlet containers: Tomcat
Copyright © 2002 Systek AS
[email protected]
Existing infrastructure
• Single most important factor:
• What are your current systems running on?
• and your customers’?
• Integration is always expensive
• Using C, C++, Win32, COM etc from .NET is
unbelievably easy
• JNI is a drag
• Web Services resolve some of these issues
Copyright © 2002 Systek AS
[email protected]
Committed industries
Telecom: Java
Banking: Java
Process industry and automation: Microsoft
End user shrink wrap: Microsoft
Copyright © 2002 Systek AS
[email protected]
Open source
• Why is open-source important?
• Cost
• But mainly bureaucratic
• Safely
• Quality
• Java has attracted open-source developers, Microsoft has
not (at least not until now)
• Google: “java open-source”: 1,240,000
• Google: “c# open-source”: 111,000
• But Windows historically bigger in commercial components
Copyright © 2002 Systek AS
[email protected]
Philosophical issues: Open or closed
world?
• .NET is standards (EMEA) based, but it is a
standard “delivered from the Gods” (i.e. Bill)
• Java is now under the control of the JCP. Control is
not in Sun’s hands
• Better marked acceptances
Copyright © 2002 Systek AS
[email protected]
People issues
• If you are a manager: Unhappy programmers are
less productive
• Technological change must be accepted by those
implementing it
• A programmer from one world can learn the
technology of the other very quickly, but...
• ... learning how to use a tool effectively is very timeconsuming
Copyright © 2002 Systek AS
[email protected]
The future
• Both technologies in rapid change
• .NET 1.1 was just released, Everett is expected this
year (adds anonymous functions!)
• Java 1.5 (Tiger) will be very exciting. Hope it lives up
to its nickname
• Includes among others JSRs 166 (Doug Lea’s
concurrency tools), JSR 175 (Metadata), JSR 201
(enum, foreach, autoimport)
Copyright © 2002 Systek AS
[email protected]
Conclusion
• Sticking with what you know is not a bad choice
• .NET has a small advantage – but the technologies
will continue to leapfrog past each other
• Changing your existing infrastructure is expensive
• The availability of open source projects for Java is
invaluable
Copyright © 2002 Systek AS
[email protected]
Overview
Målgruppe: Programmerer, arkitekter og teknisk prosjektledere
Formål: Få grunnlag for å vurdere fremtidig teknologivalg. Få en introduksjon
til .NET (se hvordan teknologi i .NET svarer til sine "stesøsken" i Java).
Få mulighet til å se gjennom "hypen".
Forkunnskap: Generell kjenskap til J2SE, J2ME og J2EE plattformene.
Kunnskap til applikasjonsarkitekturer: To, tre- og fire-lag (web basert),
mobil
Konklusjon: Teknisk sett er dette to moderne, kraftige plattformer. Det er
vanskelig å argumentere saklig for den ene forran den andre på generelt
teknisk grunnlag. Mange bedrifter har imidlertid kunnskap, partnere og
andre faktorer som veier tungt.
En oversikt over tema
Teknisk grunnlag for teknologivalg:
* Rene
(attributes, enums, events, overloading, boxing,
Copyright
© 2002språkforskjeller
Systek AS
[email protected]