Programiranje

Java pri 20 letih: kako je za vedno spremenila programiranje

Spomniti se, kakšen je bil svet programiranja leta 1995, ni lahka naloga. Predmetno usmerjeno programiranje je bilo na primer sprejeta, a redko prakticirana paradigma, pri čemer je bilo večina tako imenovanih objektno usmerjenih programov le malo več kot preimenovana koda C, ki je uporabljala >> namesto printf in razred namesto strukt. Programi, ki smo jih takrat pisali, so zaradi aritmetičnih napak kazalca rutinsko izpuščali jedro ali pa je zaradi puščanja zmanjkalo pomnilnika. Izvorne kode je bilo komaj mogoče prenesti med različne različice Unixa. Zagon istega binarnega sistema na različnih procesorjih in operacijskih sistemih je bil nor govor.

Java je vse to spremenila. Čeprav bo ročno dodeljena proceduralna koda C, odvisna od platforme, še naprej prisotna vsaj naslednjih 20 let, je Java dokazala, da je to izbira in ne zahteva. Prvič smo začeli pisati pravo produkcijsko kodo v medplatformnem, predmetno usmerjenem jeziku, zbranem smeti; in nam je bilo všeč ... milijonom nas. Jeziki, ki so prišli po Javi, predvsem C #, so morali počistiti novo višjo vrstico za produktivnost razvijalcev, ki jo je vzpostavila Java.

James Gosling, Mike Sheridan, Patrick Naughton in drugi programerji Sun's Green Project niso izumili večine pomembnih tehnologij, ki jih je Java vpeljala v široko uporabo. Večina ključnih lastnosti, ki so jih vključevali v takrat imenovan Hrast, je svoj izvor našla drugje:

  • Osnovni razred predmeta, iz katerega izhajajo vsi razredi? Smalltalk.
  • Močno statično preverjanje tipa med prevajanjem? Ada.
  • Več vmesnikov, dedovanje ene izvedbe? Cilj-C.
  • Vstavljena dokumentacija? CWeb.
  • Medplatformna virtualna naprava in bajtna koda s pravočasno prevedbo? Spet Smalltalk, zlasti narečje Sončevega jaza.
  • Odvoz smeti? Lisp.
  • Primitivni tipi in nadzorne strukture? C.
  • Dvojni sistem z nepredmetnimi primitivnimi tipi za zmogljivost? C ++.

Java pa je začela novo ozemlje. Pred ali pozneje v nobenem drugem jeziku ni nič takega kot preverjene izjeme. Java je bila tudi prvi jezik, ki je uporabljal Unicode v izvornem nizu in sami izvorni kodi.

Toda glavna prednost Jave je bila v tem, da je bila zasnovana kot praktično orodje za delo. Populariziral je dobre ideje iz prejšnjih jezikov, tako da jih je prepakiral v obliko, ki je bila znana povprečnemu kodirniku C, čeprav (za razliko od C ++ in Objective-C) Java ni bila stroga nadmnožica C. Dejansko je bila ravno ta pripravljenost ne le dodati odstraniti pa je tudi funkcije, zaradi katerih je bila Java toliko enostavnejša in enostavnejša za učenje kot drugi objektno usmerjeni potomci C.

Java ni (in še vedno nima) struktur, sindikati, typedefs, in glava datotek. Objektno usmerjenega jezika, ki ga zahteva zagon starejše kode ne ovira, ni potreboval. Podobno je Java modro izpustila ideje, ki so bile preizkušene in se jim je zdelo težko v drugih jezikih: dedovanje več izvedb, aritmetika kazalca in preobremenitev operaterja najbolj opazno. Ta dober okus na začetku pomeni, da je tudi 20 let kasneje Java še vedno razmeroma brez opozoril "tukaj bodi zmaj", ki smetijo vodnike po slogu za svoje predhodnike.

Toda preostali programski svet ni miroval. Na tisoče programskih jezikov se je povečalo, odkar smo prvič začeli s programiranjem Jave, vendar večina nikoli ni dosegla le manjšega dela skupne pozornosti, preden je sčasoma izginila. Na Javi so nas prodali apleti, majhni programi, ki se izvajajo na spletnih straneh in so lahko v interakciji z uporabnikom ter naredijo več kot le prikaz statičnega besedila, slik in obrazcev. Danes se to ne sliši veliko, a ne pozabite - leta 1995 JavaScript in DOM ni obstajala, obrazec HTML, ki se je pogovarjal s strežniškim CGI-skriptom, napisanim v Perlu, pa je bil najsodobnejši.

Ironija je v tem, da apleti nikoli niso dobro delovali. Bili so popolnoma izolirani od vsebine na strani in niso mogli brati ali pisati HTML-ja, kot bi sčasoma zmogel JavaScript. Varnostne omejitve preprečujejo, da bi programčki komunicirali z lokalnim datotečnim sistemom in neodvisnimi omrežnimi strežniki. Zaradi teh omejitev so bili apleti primerni le za preproste igre in animacije. Tudi te trivialne dokaze koncepta je oviralo slabo delovanje zgodnjih virtualnih brskalnikov. In ko so bile pomanjkljivosti apletov odpravljene, so brskalniki in front-end razvijalci že zdavnaj minili Javo. Flash, JavaScript in nazadnje HTML5 so nam ujeli oči, saj so bile učinkovitejše platforme za dostavo dinamične spletne vsebine, ki nam jih je Java obljubila, vendar jih ni uspelo dostaviti.

Kljub temu so nas za delo z Javo navdihnili apleti, ki smo jih odkrili, je bil čist jezik, ki je zgladil številne grobe robove in boleče točke, s katerimi smo se spopadali pri alternativah, kot je C ++. Cena samodejnega odvoza smeti je bila vredna vstopnine. Apleti so bili morda pretirano natisnjeni in premalo dostavljeni, vendar to še ni pomenilo, da Java ni prekleto dober jezik za druge težave.

Java je bila prvotno namenjena odjemalski knjižnici za več platform in je resnično uspela v strežniškem prostoru. Servleti, Java Server Pages in vrsta knjižnic, osredotočenih na podjetje, ki so bile občasno združene in preimenovane v eno zmedeno kratico ali drugo, so rešile resnične težave za nas in za podjetja. Razen tržnih neuspehov je Java dosegla skorajda standarden status v oddelkih za IT po vsem svetu. (Hitro: Kakšna je razlika med Java 2 Enterprise Edition in Java Platform Enterprise Edition? Če ste uganili, da je J2EE naslednik JEE, ste ga dobili ravno nazaj.) Nekateri od teh izdelkov, usmerjenih v podjetja, so bili težji in navdihnjeni odprti izvorne alternative in dodatki, kot so Spring, Hibernate in Tomcat, vendar so vsi zgrajeni na vrhu Sun set.

Verjetno najpomembnejši prispevek odprtokodne kode k Javi in ​​širši programski obrti je JUnit. Preizkusni razvoj (TDD) je bil že preizkušen z Smalltalkom. Vendar pa tako kot številne druge novosti tega jezika tudi TDD ni dosegel splošnega obveščanja in sprejetja, dokler ni na voljo v Javi. Ko sta Kent Beck in Erich Gamma leta 2000 izdala JUnit, se je TDD iz eksperimentalne prakse nekaj programerjev hitro povzpel na standardni način za razvoj programske opreme v 21. stoletju. Kot je dejal Martin Fowler: "Nikoli na področju razvoja programske opreme toliko ni dolgovalo tako malo vrstic kode," in teh nekaj vrstic kode je bilo napisanih v Javi.

Dvajset let od ustanovitve Java ni več zanič. Postalo je že uveljavljeni sedanji upornik drugih jezikov. Lažji jeziki, kot sta Ruby in Python, so močno prodrli na Javino ozemlje, zlasti v zagonski skupnosti, kjer je hitrost razvoja več kot robustnost in obseg - kompromis, ki ga je sama Java izkoristila v zgodnjih dneh, ko je zmogljivost navideznih strojev močno zaostala prevedena koda.

Java seveda ne stoji na mestu. Oracle še naprej vključuje dobro preizkušene tehnologije iz drugih jezikov, kot so generiki, avtoboks, naštevanja in nazadnje lambda izrazi. Številni programerji so se s temi idejami prvič srečali v Javi. Jave ne pozna vsak programer, toda ne glede na to, ali jo pozna ali ne, je nanjo vplival vsak današnji programer.

Povezani članki

  • Pregled: Primerjani so bili veliki 4 Java IDE-ji
  • Java za vedno! 12 ključev do trajne prevlade Jave
  • Java proti Node.js: epska bitka za delež misli razvijalcev
$config[zx-auto] not found$config[zx-overlay] not found