Sunteți pe pagina 1din 6

Java versus .

NET
Data: 15.07.2002 Autori: Despina Eftimescu, SecureNet S.R.L, Craiova (de@secure-net.ro) Compania: SecureNet S.R.L., Craiova, tel.: 0251/410555, http://www.securenet.ro Despre Autor:
Despina Eftimescu a studiat informatica la Universtitatea de Vest din Timisoara. Din 1994 lucreaza ca si inginer software si consultatnt in materie de strategie software pentru Internet la Mnchen, in Germania. Dupa o colaborare de peste 5 ani cu firma SecureNet Gmbh din Mnchen, Despina Eftimescu a fondat si conduce in calitate de Administrator filiala romana a acesteia, SecureNet SRL in Craiova.

Abstract:
J2EE i .NET sunt platformele viitorului. Dar care platforma i se potrivete cui? Sau: Cine vrea s cheltuiasc bani pe produse Java? O privire comparativa asupra tehnologiilor Java si .Net, singurele alternative profesionale pentru dezvoltarea de aplicatii in mediul de afaceri. Dupa succesul inregistrat de Java in ultimii zece ani, Microsoft incearca sa introduca pe piata .Net, o creatie proprie si proprietara, care sa concureze tehnologia Java. Este .Net cu adevarat o alternativa? Si daca da, pentru cine?

Evolutia ingineriei software in ultimii 5 ani a minimalizat utilizarea limbajelor 4GL, asa cum limbaje ca Smalltalk au fost inlocuite de Java, iar conceptul de fat client a fost nlocuit de o arhitectur multinivel. In compensatie s-au impus diferite tehnologii web si XML (Extended Markup Language). Iniiative de tip middleware cum ar fi Distributed Computing Environment (DCE) sau Common Object Request Broker Architecture (CORBA) sunt nlocuite treptat cu infrastructuri tehnice de mare complexitate. Astzi au rmas n esen numai dou platforme tehnologice pentru aplicaii noi: Java 2 Enterprise Edition (J2EE) i Microsoft .NET. Pentru a lua o decizie corect pentru viitor, utilizatorii trebuie s ia n considerare dou criterii importante: - potenialul de dezvoltare i comprehensibilitate susinut de o anumit platform - oferta de soluii proprii ale platformei, necesare pentru a se menine pe pia Limbajul Java a cunoscut o dezvoltare deosebit n ultimii cinci ani, de la un capriciu al mptimiilor pentru limbajele orientate obiect la o tehnologie larg rspndit. Aceast evoluie se datoreaz mai puin farmecului limbajului i mai mult fortei platformei tehnice asociate. Recent i Microsoft ofer o platform tehnologic asemntoare. Cei din Redmond au nceput cu Distributed InterNet Architecture (DNA), care avea ns multe defecte. Pe lng problemele cu registrul i conflictele de la nivelul DLL-urilor, a aprut conceptul de model obiect component (COM), care a devenit prea complex din cauza suportului pentru diferite limbaje. De asemenea procesarea

distribuit cu soluii DCOM pe baza conceptului Microsoft RPC i a registrului Windows nu s-a dovedit a fi compatibil cu Internetul. .NET a nvat de la Java ncepnd cu .NET, Microsoft a realizat o important schimbare fa de DNA, compania lui Bill Gates deschiznd problema tehnologiei predecesoare. La capitolul arhitectur i funcionalitate .NET i J2EE sunt foarte asemntoare, dar Microsoft ofer o soluie tehnic mai modern, prin implementarea tehnologiilor web i a limbajului XML. De asemenea, noul limbaj C# si maina virtual (CLR) sunt idei provenite din Java. Exist i alte diferene de importan strategic: 1. J2EE nu este un produs, ci o specificaie, pentru care diferite companii ofer produse. Aplicaiile sunt independente de proprietarul suportului middleware. Astfel, companiile obin nu numai o independen fa de un anumit furnizor, dar pot s-i dezvolte propriile platforme tehnologice. .NET este o colecie de produse ale unui singur productor i ruleaz numai mpreun cu Windows. Se asigur integrarea diferitelor componente i utilizarea unor caracteristici speciale ale sistemului de operare Windows. 2. J2EE este independent de conceptul de sistem de operare. Portabilitatea este asigurat de Java Runtime Environment, iar serverul de aplicaii si alte produse middleware pot fi programate in funcie de sistemul de operare. Pe lng aceste aspecte, mai exist i alte criterii importante n luarea unei decizii n privina acestor dou tehnologii, cum ar fi nivelul de comprehensibilitate si dezvoltare, ceea ce analitii de la Gartner numesc completeness of vision. Avantajul J2EE const n existena interfeelor API (Application Programming Interface), care creeaz o independen tehnologic a aplicaiilor. Aceasta faciliteaz dezvoltarea ulterioar a tehnologiei cu efecte secundare reduse. Modelul componentelor Java este mai metodic i mai elaborat, iar arhitectura bazat pe conectori ofer baza pentru o mai mare interoperabilitate decit facilitatile corespondente in tehnologia .Net.

.Net versus Java: criterii de comparatie


nainte de a lua o decizie, responsabilul IT trebuie s mai treac sub lup i implementarea tehnic a infrastructurii informatice respective. Sub acest aspect .NET posed cteva avantaje, deoarece utilizeaz de la nceput tehnologii moderne cum ar fi XML i serviciile web. Prin dezvoltarea propriei maini virtuale Microsoft rezolv problemele datorate interpretorului din Java. Multe functionaliti ale sistemului de operare Windows pot fi utilizate direct, cum ar fi serverul web IIS, Active Directory, OLEDB i Windows Load Balancing. Cuplarea eficient cu sistemul de operare este cauza performanelor mbuntite ale aplicaiilor .NET, comparativ cu cele ale 2

aplicaiilor J2EE, dei este dificil de estimat obiectivitatea testelor respective. Totui performanele pot varia, astfel performanele mainii virtuale Java pe acelai suport hardware variaz cu un factor egal cu trei, iar aceast variaie e chiar mai mare pentru serverele de aplicaii Java. Experiena arat ca produsele software complexe au nevoie de ani de zile pentru a fi dezvoltate. Asta se ntmpl cu bazele de date, cu aplicaiile de monitorizare a tranzaciilor sau cu aplicaiile Java, ceea ce face ca dezvoltarea unui nou produs construit pe un nucleu de componente mai vechi s nu constituie un dezavantaj. Produsele J2EE au cptat n timp un grad acceptabil de maturizare. Pentru .NET experiena practicilor n dezvoltarea aplicaiilor proprii lipsete, pentru a face o comparaie.

Dincolo de criteriile de performan, managerii IT trebuie s in cont de eficiena platformei i de productivitatea furnizat n dezvoltarea aplicaiilor. Dac se msoar productivitatea numai pe baza numrului de linii de cod, .NET prezint avantaje clare in faa J2EE. Crucial este ns ct dintre aceste linii de cod trebuie sa fie scrise la mn. Aici intervine att procesul automatizat de dezvoltare cat i inteligena mediului de dezvoltare software. n Java exist diferene semnificative ntre uneltele de dezvoltare, care sunt subliniate de furnizori n campaniile lor de marketing. IDE (Integrated Development Environment) cum ar fi Jbuilder, Forte si mai nou ECLIPSE oferta suport optimal pentru dezvoltare, debug si versionare de proiecte oricit de complexe, lasind totusi programatorului intregul control si transparenta perfecta fata de codul Java rezultat. Uneltele Visual Studio .NET de la Microsoft pot fi comparate cu cele mai eficiente medii de dezvoltare din Java.

Costurile cu licenele i cu ntreinerea sunt un factor ce nu trebuie neglijat n luarea deciziei pentru sau contra unei tehnologii. Costurile soluiilor J2EE ale unor furnizori ca IBM sau BEA sunt transferate n categoria mainframe-urilor. Nu trebuiesc insa uitate ofertele open-source cu pre zero, care necesit doar puin curaj n implementare. Forte, Turbine, Struts, Cactus, Junit, Eclipse sunt doar citeva nume de frameworkuri, module sau unelte gratuite care nu mai au nevoie de nici o recomandare suplimentare in lumea programatorilor si a inginerilor de software. Pe scara preurilor de la gratuit la scump, Microsoft .NET este aezat undeva pe la mijloc. Mai apar i cheltuieli cu personalul calificat care s opereze o infrastructur att de complex. Mna de lucru este scump i comparabil pentru ambele tehnologii. Trebuie avut in vedere ca J2EE si Java sunt insa pe piata de citiva ani de zile, fapt care a produs deja mina de lucru experimentata. Tehnologia .Net este in stadiul de nou-nascut, iar specialistii in acest domeniu abia se formeaza. Pentru a analiza dac o tehnologie sau un concept este complet, trebuie luat n considerare dac ofertantul continu s susin i s dezvolte propria tehnologie pe pia. Luind in considerare valoarea strategica a acestor tehnologii, care sunt momentan singurele in masura sa sustina dezvoltarea de aplicatii de tip B2B sau B2E, este foarte putin probabil sa nu se gaseasca investori pentru ambele linii de dezvoltare, indiferent de situatia financiara a creatorilor lor. Furnizorii de tehnologie Java sunt capabili s sfideze puterea de dezvoltare si marketing a celor de la Microsoft. Pentru ei aceasta este de fapt o strategie de supravieuire. Dar ei nu depind n mod necesar de existena companiei Sun. n cazul insolvabilitii companiei Sun, rolul su poate fi transferat altei companii. Grupul de productori de soluii Java i-a mprit capacitatea de producie. Orice produs Java este dezvoltat n paralel de 6-8 productori. Astfel exist aproximativ 40 de productori de servere de aplicaii. Dar competiia accelereaz si diversificarea ideilor. Nici puterea de inovaie a comunitii open-source nu trebuie omis. Proiecte ca Apache arat gradul de dezvoltare de produse eficiente open-source.

Schimbrile ulterioare sunt scumpe


Vizualizarea situaiei actuale nu este uneori suficient n luarea deciziilor. Companiile investesc milioane de Euro n infrastructur i n aplicaii noi. Dac o platform tehnologic a fost aleas, costurile generate de modificare sau inlocuire ulterioara sunt foarte mari. Studiul Gartner arat c apariia Microsoft .NET va produce mutaii la nivelul comunitii Java, dar nu va nlocui Java. Este insa improbabil ca Java s rmn dominant n aa msur nct .NET s nu obin procente din pia. Miile de documente descrcate de pe Internet arat un interes activ in .NET. Tinind cont si de eforturile de marketing 4

si vinzari depuse de Microsoft pentru introducerea pe piata a alternativei tehnologice .Net, este probabil c cele dou platforme tehnologice vor coexista n viitor. Multe companii au sesizat ca Microsoft .NET reprezint un mare pas nainte, dar nu au motive s renune la Java. Cine a investit deja n Java gsete puine motive s o schimbe i s treac la .NET. .NET nu ofer chiar att de multe avantaje pn la urm.

Potentiali clienti sau o posibila impartire a pietei intre Java si .Net


Mai rmn companiile care nu s-au decis nc n care din cele dou tehnologii vor investi. Aici mai degrab obiective strategice vor afecta decizia. Companiile mai mici, cele care dispun de echipamente cu procesoare Intel ieftine si cu sisteme de operare Windows, vor opta pentru .NET pentru noile aplicaii. Companiile mari, ce dispun de sisteme mainframe dotate cu sisteme Unix vor opta pentru o platform ce ruleaz pe aceste mainframe-uri, aceasta fiind J2EE. Pentru muli dintre utilizatori, inventarea limbajului Java a fost un eveniment. Dac ei au trebuit s testeze n trecut propriile aplicaii pe mai multe sisteme de operare, acum ei le testeaz pe implementarea standard de la Sun, cu eventuale teste adiionale pe medii de producie dezvoltate de IBM, BEA sau Oracle. Dar i .NET atrage productorii de software. Aceasta depinde de infrastructura clientului respectiv. Dac o companie cumpr o aplicaie Java, atunci (cel puin n prezent), trebuie utilizat i un mediu J2EE ce depinde de extensiile stabilite de fabricant. Prin cumprarea mai multor pachete software o companie ajunge s posede mai multe servere de aplicaie. Cu .NET o infrastructur pentru toate aplicaiile este suficient. Se mai pune doar intrebarea daca .Net asigura si calitatea de care este nevoie in mediul de afaceri, Microsoft avind pina la acest moment experiente (nu totdeauna laudabile) doar in mediul utilizator (home office sau consumer). Cerinele legate de cunotinele dezvoltatorilor de aplicaii sunt comparabile. n afara de limbajul i uneltele specifice, mai trebuie stpnite cunotine despre programarea orientat pe obiecte, arhitectura bazat pe straturi, design de componente i implementare iterativ. Cei care au dezvoltat aplicaii Microsoft n trecut pot trece uor la .NET. Totui, un dezvoltator clasic care a implementat n trecut n Visual Basic soluii bazate pe fat client ar putea ntmpina dificulti n implementarea cu .Net. n plus VB.NET nu mai este identic cu vechiul Visual Basic. Aceleai probleme apar i la migrarea programelor Microsoft vechi la .NET. Pentru unele module se ofer asisteni de migrare, dar aceasta este valabil numai dac aplicaiile vechi s-au dezvoltat pe o arhitectur pe trei nivele, pe baz de componente.

Deoarece tendina merge ctre achiziionarea de software n loc de dezvoltare intern, companiile au puine anse s primeasc tehnologie omogen. Astfel nct se creeaz un mixaj de soluii, pentru mainframe, PC, aplicaii Java i .NET, prioritatea fiind abilitatea de a integra platforme eterogene. Pentru sarcinile de integrare ntre tehnologii se poate utiliza XML sau serviciile web, care sunt suportate att de Java ct i de .NET. Chiar i aplicaiile mainframe pot fi integrate cu un anumit cost. Cea mai mare rezisten la integrarea cu alte programe o vor avea aplicaiile din era fat client, adic aplicaiile Microsoft cu tehnologii mai vechi.

S-ar putea să vă placă și