Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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]