Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Copyright © 2002 Systek Java versus.NET The Heavyweight Championship Showdown.

Liknende presentasjoner


Presentasjon om: "Copyright © 2002 Systek Java versus.NET The Heavyweight Championship Showdown."— Utskrift av presentasjonen:

1 Copyright © 2002 Systek Java versus.NET The Heavyweight Championship Showdown

2 Copyright © 2002 Systek 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)

3 Copyright © 2002 Systek 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

4 Copyright © 2002 Systek 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

5 Copyright © 2002 Systek Ringside round-up: The challenger.NET The next step in the evolution of Windows software Championed by the all- powerful Microsoft Has generated a lot of buzz in the business Has learned from previous mistakes of Windows technology and Java? Strong OO model, powerful libraries, strong enterprise capabilities

6 Copyright © 2002 Systek Technological comparison Feature rich languages and libraries

7 Copyright © 2002 Systek 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

8 Copyright © 2002 Systek Language differences C# is the most used language on.NET VB.NET is a close runner up Both contain unique features

9 Copyright © 2002 Systek Attributes Examples Uses JSR 175

10 Copyright © 2002 Systek 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

11 Copyright © 2002 Systek 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

12 Copyright © 2002 Systek Web-based clients

13 Copyright © 2002 Systek 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.

14 Copyright © 2002 Systek 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

15 Copyright © 2002 Systek 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?)

16 Copyright © 2002 Systek 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

17 Copyright © 2002 Systek Non-technical aspects

18 Copyright © 2002 Systek 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

19 Copyright © 2002 Systek 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

20 Copyright © 2002 Systek Committed industries Telecom: Java Banking: Java Process industry and automation: Microsoft End user shrink wrap: Microsoft

21 Copyright © 2002 Systek 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

22 Copyright © 2002 Systek 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

23 Copyright © 2002 Systek 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 time- consuming

24 Copyright © 2002 Systek 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)

25 Copyright © 2002 Systek 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

26 Copyright © 2002 Systek 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 språkforskjeller (attributes, enums, events, overloading, boxing, native calls) - hva betyr det for kompleksitet og hva får man tilbake? (C# har flere features enn Java, men hvilke er verdifulle?) - hvordan kommer dette til å endre seg (særlig JSR 175 og 201) - Forkskjeller i bruk av "foreign function calls" (dessverre:.NET vinner, hands down) * På mobile klienter - Tekniske krav (oppsummering: MIDP når et bredere publikum) - Muligheter (oppsummering:.NET Compact Framework har rikere features) - Konklusjon: Java for massemarket,.NET for vertikale applikasjoner med høye krav * På tykke klienter - Brukergrensesnitt (konklusjon:.NET er mer native, men SWT er et skritt i riktig retning) - API (konklusjon: MVC-designet i Java vinner over.NET) - Uerfarene programmere (konklusjon:.NET Windows Forms Designer er verdifull, selv om den har barnesykdommer) - Dynamisk deployment: Java Web Start og.NET autodeployment (JWS er mer modent, begge fungerer bra) * På tynne klienter - ASP.NET er grunnleggende et veldig godt sett med Taglibs - Verktøy som Struts, Jakarta Velocity og Jakarta Taglibs gjør servlets fullgode - Men Java krever mer kunnskap for å få til å virke * På server-siden - Web-Services (konklusjon:.NET har innebygget støtte på klient og server, noe som funker veldig bra) - Data-aksess (konklusjon: ADO.NET er bedre for applikasjoner med lite behov for OO-behandling av data. Entity beans er veldig tungvekt) - Transaksjonsmonitor (COM+ og EJB: EJB er mer kompleks) - Begge platformene har god skalerbarhet, men Java har lange erfaringstall å vise til - Benchmarks er i stor grad verdiløse - med nok optimalisering kan man oppnå nesten vilkårlige tall * Andre tekniske betraktninger: -.NET fungere bare på Windows (men open-source prosjekter porter til andre platformer) - Java platformen støtter bare Java programmeringsspråk (men open- source og andre prosjekter støtter andre språk. Dessuten: Hvor mye er dette egentlig verd?) * Overall: -.NET er lettere for uerfarene programmere på nesten all områder - Java er kraftigere på noen områder, mer modent (.NET har beholdt noe av Win32/COMs feature med mystisk krasj) - Java krever mer erfaring - spesielt for å kjenne de riktige Open-Source verktøyene -.NET er steget forran med features, men Java vil kopiere de mest verdifulle - Begge valgene er gode fra et teknisk perspektiv i nesten alle situasjoner Andre faktorer: * Eksisterende teknologi: - En bedrift har et ofte brukt Windows eller Unix for servere i mange år - Samarbeidspartnere, konkurrenter og bransje generelt er veldig knyttet til et område (for eksempel: Bank skyr ofte Windows, Industri har brukt f. eks. OPC i mange år) - Det kan være lurt å holde seg til den verdenen man kjenner - Det kan være lurt å holde seg til en platform for interoperabilitet, drift og opplæring * Pris: -.NET server mye billigere enn en typisk BEA, WebLogic eller 9i AS installasjon - MEN: JBoss, JOnAs er open-source, og gode alternativer ved etablering av et prosjekt * Tredjepartskomponentstøtte -.NET har flere komponentselgere - Java har mye mer open-source aktivitet - Open-source har mye lavere TCO enn tredjepart, pga redusert byråkrati (min erfaring) - Tredjepart har skjelden bedre kvalitet * Myke faktorer: - God erfaring og gode kontakter med en "verden" teller mer enn vi teknikkere ofte anerkjenner - Lærekurven ved å bytte teknologi er alltid brattere enn man tror, selv for dyktige programmerer - Min gut-feeling:.NET hjelper deg å komme i gang, Java hjelper deg å avslutte Konklusjon: * Hva er ikke gode beslutningsgrunner: - Generell sammenligning av "features" - Publiserte "benchmarks" * Hva er gode beslutningsgrunner - Spesifikke teknologikrav: Spesielt på mobil - Hensyn til eksisterende driftsmiljø og kompetanse - Hensyn til bedriften og bransjens tradisjonelle samarbeidspartnere


Laste ned ppt "Copyright © 2002 Systek Java versus.NET The Heavyweight Championship Showdown."

Liknende presentasjoner


Annonser fra Google