Java vs C #, koodide koodide võrdlus


Toimetaja märkus: kogu allolev lugu pärineb meie 2001. aasta looarhiivist - isegi allpool olev osa „Uuendatud”.


Uuendatud: Alates selle artikli esmakordsest ilmumisest on Microsoft välja andnud Visual Studio.NETi beetaversiooni 2. As
mis tahes beetaversiooniga
tarkvara, on muudatused vältimatud. Uus beetaversioon eeldas meie koodi muutmist,
eriti Windowsi puhul
Vormid (endise nimega WinForms). API-sid on teisaldatud, pakettide nimesid on
muutunud (või langenud kõik koos). Nende muudatuste loendi kuvamiseks klõpsake siin
detail.



Vähemalt üks neist muutustest (liikuv
teisendamisfunktsioonid eri klassi) osade viisi, kuidas asju tehakse
Java. Teine muudatus (ekraanil olevate elementide sisu täpsemat juhtimist kasutades) jäljendab
Java Swingi joondamisvalikute täpsus. Kuigi väiksemad muudatused on vältimatud, on see nii
hea meeles pidada, et kuni aasta lõpuni, kui Visual Studio.NET ilmub, on C #
endiselt beetaversioonis. (Java on olnud juba viis aastat.)



Hea uudis on see, et arendajad saavad
oodake, et C #-s ei toimuks enam API muudatusi, kuna see võimas tööriist on vabastamiseks lähemal. Nagu meie
mõlema keele tutvustus viitab Java-le ja C # -le veel palju ühist ja arendajatele
kes oskavad mõlemat keelt, peaksid saama õitseda mõlemas leeris.

USA justiitsministeeriumi monopolidevastane juhtum Microsoft Corp. vastu polnud ainus kohtuvaidlus, millega Redmondi hiiglane viimase paari aasta jooksul silmitsi seisis. Hiljuti lahendatud kohtuasi Java üle Sun Microsystems Inc. ja Microsofti vahel võib osutuda sama oluliseks, kui otsustatakse, kuidas tarkvaraarendajad tulevikus programme kirjutavad. Tegelikult võib uus C # (või 'C-sharp) keel, mis on osa 2001. aasta keskel ilmuvast paljulubavast .NET-platvormist, olla selle vähemtuntud juriidilise murede ja Microsofti katsete oma Java-logijast mööda saada kaudne tulemus. kohtutes.


Suni Microsofti väljakutse üksikasjad tunduvad üsna salapärased. Osa ülikonnast oli seotud Visual J ++ kompilaatori osana Microsofti Java-laiendustega. Esiteks lisas Microsoft näiliselt sündmuste käitlemise lihtsustamiseks mõned uued märksõnad (näiteks delegaadid ja multisaated). Nagu mõni Java-arendaja teile tõenäoliselt ütleb, ei ole Suni lahendus sündmuste töötlemise probleemile eriti elegantne ja hõlmab spetsiaalsete siseklasside üsna barokset kasutamist.


Suni kohtuasja muud üksikasjad viitavad tüüpilistele Microsofti hubridele, sellist suhtumist, mis Bill Gatesi kohtunik Penfield Jacksoniga nii palju vaeva nägi. Selle asemel, et natiivkoodile helistada ametliku Suni meetodi abil, kasutades nn Java Native Interface'i (JNI), tegi Microsoft Windowsis asju omamoodi ja nimetas seda tooreks natiivliideseks (RNI).


Microsofti JVM-i ebaõnnestumine Suni vastavustestide läbimisel oli esialgse kohtuasja jaoks suur tegur. 24. jaanuaril 2001 lahendati see hagi järgmiste tingimuste kohaselt: Microsoft nõustus maksma 20 miljonit dollarit ja mõlemad ettevõtted nõustusid Java litsentsimise lõpetama. Kokkuleppedokumendis mainitakse konkreetselt, et Microsoftil on takistatud oma Java-versiooni edasiarendamine kaugemale olemasolevast versioonist 1.1.4, mis on ühendatud selle Visual J ++ tööriistaga, mis on selle arvelduse tulemusel tegelikult õigeaegselt külmutatud.


Selle hagi lõpp võib olla teretulnud kergendus mõlemale ettevõttele ja muidugi ka meile kõigile teistele, kes oleme viimase paari aasta jooksul jälginud palju Microsofti kohtuvaidlusi. Ilmselgelt oli Microsoft valmis Java kasutamise väidetest loobuma ja selle lahti laskmise põhjused saavad selgemaks, kui mõistate oma uue .NET-platvormi koos uue C # -ga on kindlasti valmis tühimiku täitma Java-laadse süntaksiga ja isegi palju API-sid, mis näevad välja ja tunduvad nagu Java.


Lugejad saavad jälgida selle kohtuasja edenemist aja jooksul aadressil:

http://java.sun.com/lawsuit/

http://www.microsoft.com/PressPass/java/default.asp


Õnneks pole tarkvaraarendajad juristid. (Kui nad seda teeksid, ei saaks nad tõenäoliselt midagi teha, oodates ringi, et näha, milline tehnoloogia välja läheb.) Kuid isegi enne seda lahendust oli Suni vähem tuntud kohtuasja mõju endiselt tunda. 1997. aastal oli Microsoftil liiga juhtiv Java virtuaalne masin (JVM).


Siis võitis see tavapäraselt jõudlusnäitajaid, nagu Ziff-Davis JMark 1.0, testide seeria, mille töötasin välja PC Magazine Labsi jaoks koos kaasautori Larry Seltzeriga. Microsoft rääkis selle jutuga, kui tegemist oli Java-ga. See oli parem ja produktiivsem keel (yada, yada). Visual J ++ 6.0 näis olevat tõsine programmeerimistööriist, mis oli konkurentidega võrreldav. Kas Microsoft domineerib Java tööriistade turul, nagu see oli varem tehtud C ++ ja selle populaarse Visual C ++ tööriista abil?


Eelmiseks aastaks oli maastik radikaalselt muutunud, kuna Microsoft oli poolelioleva kohtuasjaga kõik muud kui Java tööriistade turult välja külmunud, mis välistas tema võime järgida uusi Suni standardeid. Tegelikult oli Microsofti Java rakendamine õigeaegselt külmutatud. (Kohtuvaidluse kokkuleppe tingimused teevad selle ametnikuks. Microsoftil on lubatud kasutada 1.1.4 JVM-i varasemat versiooni kuni 2008. aastani, mil litsentsimine lõpeb.) Suni palju võimsam Java 2-standard jõudis kohale 1999. aastal ja see peaks kehtima vähemalt aastal osa Java-ga seotud juriidilistest probleemidest, oli Microsoft JVM JDK 1.1 režiimis kinni. Ettevõte eitas kuulujutte Visual J ++ surmast 1999. aastal, kuid uusi Java-tooteteateid ei olnud töös. On selge, et ilma praeguste Java-standardite uue toe võimaluseta närbub Visual J ++ tööriist tõenäoliselt viinapuul, kuigi Microsoft kinnitas meile selle loo jaoks, et nad tagavad Visual J ++ praeguste kasutajatega edasiliikumise.


On ka muid põhjuseid, miks Microsoft ei sooviks oma esialgse entusiastliku Java omaksvõtmise kaudu järgida. 1997. aastal oli Java pigem programmeerimiskeel kui käitamisaja platvorm. Selle eesmärgid olid tagasihoidlikud ja Java ei kujutanud ohtu. (Visual J ++ 1.0 vaikeviisard genereeris veebilehe sees pöörleva animatsiooni, vaevalt Windowsi konkurent.) Alates JDK v. 1.0 on Sun hoidnud Java keelt ennast väga järjepidevalt, kuid on tunduvalt kasvatanud seda, mida saate keel platvormil, mis on kasvanud enam kui 2000 objekti toetamiseks 24 000+ API-ga (mis sisaldab nii atribuute kui ka meetodeid, kuigi atribuute tehniliselt ei peeta kõnedeks) praeguses Java 2 standardis. Veelgi enam, 12/99 välja antud Java 2 Enterprise Editioniga (J2EE) määratles Sun ettevõttele platvormi, mis põhineb keskastme komponentidel ja standarditel nagu Enterprise JavaBeans (EJB). Java loodi algselt animeeritud sisu pakkumise vahendina veebilehtedel, kuid neist tagasihoidlikest juurtest oli see kasvanud platvormiks, millel on piisavalt tulejõudu, et võtta vastu suurim ettevõtte süsteem. Suni Java-standardeid on omaks võtnud kõik suuremad müüjad, välja arvatud Microsoft, ja Java mõttevahetus, kui mitte turuosa, oli alanud.


Vahepeal oli Microsoft sõnastanud oma visiooni ettevõttest, oma hajutatud interNeti arhitektuurist (DNA), mis põhineb keskastme COM / COM + komponentidel. Need komponendid võiks kirjutada mis tahes COM-ühilduvas keeles. Tegelikult on siin osutunud valitud keeleks Visual Basic; COM-komponentide kirjutamine C ++ keeles on lihtsalt liiga raske - ja liiga kallis.

Copyright © Kõik Õigused Kaitstud | 2007es.com