Programmēšana

Java 20 gadu vecumā: kā tas uz visiem laikiem mainīja programmēšanu

Atcerēties, kāda bija programmēšanas pasaule 1995. gadā, nav viegls uzdevums. Uz objektu orientēta programmēšana, piemēram, bija pieņemta, bet reti praktizēta paradigma, un daudz kas no tā sauktajām objektorientētajām programmām bija nedaudz vairāk nekā pārzīmēts C kods, kas izmantoja >> tā vietā printf un klasē tā vietā struktur. Programmas, kuras mēs šajās dienās rakstījām, parasti izmeta kodolu rādītāju aritmētisko kļūdu dēļ vai atmiņas pietrūka noplūdes dēļ. Avota kodu tikko varēja pārnest starp dažādām Unix versijām. Palaist vienu un to pašu bināro versiju dažādiem procesoriem un operētājsistēmām bija trakas runas.

Java visu to mainīja. Kaut arī no platformas atkarīgs, manuāli piešķirtais procesuālais C kods vismaz nākamajos 20 gados joprojām būs ar mums, Java pierādīja, ka tā bija izvēle, nevis prasība. Pirmo reizi mēs sākām rakstīt reālu ražošanas kodu starpplatformu, atkritumu savāktā, objektorientētā valodā; un mums tas patika ... miljoniem no mums. Valodām, kas nākušas pēc Java, it īpaši C #, bija jānoņem jaunā Java izstrādātāju produktivitātes augstākā josla.

Džeimss Goslings, Maiks Šeridans, Patriks Naughtons un citi Sun's Green Project programmētāji neizdomāja lielāko daļu svarīgo tehnoloģiju, kuras Java plaši izmantoja. Lielākā daļa galveno iezīmju, kuras tās ietvēra tajā laikā pazīstamajā ozolā, radās citur:

  • Bāzes objektu klase, no kuras nolaižas visas klases? Smalltalk.
  • Spēcīga statiskā tipa pārbaude sastādīšanas laikā? Ada.
  • Vairākas saskarnes, viena iedzimta mantošana? C mērķis.
  • Iekļautā dokumentācija? CWeb.
  • Starpplatformu virtuālā mašīna un baitu kods ar tieši laikā apkopotu? Atkal Smalltalk, it īpaši Sun’s Self dialekts.
  • Atkritumu kolekcija? Lisp.
  • Primitīvie veidi un vadības struktūras? C.
  • Divējāda tipa sistēma ar neobjektīviem primitīviem izpildījuma veidiem? C ++.

Tomēr Java bija pionieris jaunā teritorijā. Pirms vai kopš tā laika nevienā citā valodā nav neviena līdzīga pārbaudītiem izņēmumiem. Java bija arī pirmā valoda, kas izmantoja Unicode vietējo virkņu tipā un pašā avota kodā.

Bet Java galvenais spēks bija tas, ka tā tika uzbūvēta kā praktisks rīks, lai paveiktu darbu. Tas popularizēja labas idejas no iepriekšējām valodām, pārpakojot tās formātā, kas bija pazīstams vidējam C kodētājam, lai gan (atšķirībā no C ++ un Objective-C) Java nebija stingra C virsgrupa. Patiešām, tieši šī vēlme ne tikai pievienot bet arī noņemiet funkcijas, kas Java padarīja daudz vienkāršāku un vieglāk apgūstamu nekā citi objektorientēti C pēcteči.

Java nebija (un joprojām nav) struktūras, arodbiedrības, drukātāji, un galveni failus. Objektorientētajai valodai, kas nav ierobežota ar prasību palaist mantoto kodu, tās nebija vajadzīgas. Tāpat Java gudri izlaida izmēģinātas un vēlamās idejas citās valodās: vairāku ieviešanas mantojums, rādītāju aritmētika un operatora pārslodze. Šī labā garša sākumā nozīmē, ka pat pēc 20 gadiem Java joprojām ir samērā brīva no “šeit esiet pūķiem” brīdinājumiem, kas piesedz stila rokasgrāmatas saviem priekšgājējiem.

Bet pārējā programmēšanas pasaule nav stāvējusi uz vietas. Kopš mēs pirmo reizi sākām programmēt Java, ir pieauguši tūkstošiem programmēšanas valodu, taču lielākā daļa nekad nav sasnieguši vairāk kā nelielu kolektīvās uzmanības daļu, pirms galu galā izzuda. Kas mūs pārdeva Java, bija sīklietotnes, nelielas programmas, kas darbojās tīmekļa lapās un kuras varēja mijiedarboties ar lietotāju un darīt vairāk nekā statiska teksta, attēlu un formu parādīšana. Šodien tas neizklausās daudz, bet atcerieties - 1995. gadā JavaScript un DOM neeksistēja, un HTML forma, kas runāja ar servera CGI skriptu, kas rakstīts Perl, bija vismodernākais.

Ironiski ir tas, ka sīklietotnes nekad nedarbojās ļoti labi. Viņi bija pilnībā izolēti no lapas satura, nespēja lasīt vai rakstīt HTML, kā tas galu galā varēja JavaScript. Drošības ierobežojumi neļāva sīklietotnēm mijiedarboties ar vietējo failu sistēmu un trešo personu tīkla serveriem. Šie ierobežojumi padarīja sīklietotnes piemērotas ne tikai vienkāršām spēlēm un animācijām. Pat šos niecīgos jēdziena pierādījumus kavēja agrīnās pārlūkprogrammas virtuālo mašīnu sliktā veiktspēja. Kad apletu trūkumi tika novērsti, pārlūkprogrammas un priekšējās daļas izstrādātāji jau sen bija pagājuši Java garām. Flash, JavaScript un pavisam nesen HTML5 piesaistīja mūsu uzmanību, jo daudz efektīvākas platformas dinamiskā tīmekļa satura piegādei Java bija solījusi, taču to neizdevās piegādāt.

Tomēr sīklietotnes bija tas, kas mūs iedvesmoja strādāt ar Java, un tas, ko mēs atklājām, bija tīra valoda, kas izlīdzināja daudzas raupjās malas un sāpju punktus, ar kuriem mēs cīnījāmies tādās alternatīvās kā C ++. Tikai automātiskā atkritumu savākšana bija pieņemšanas cenas vērta. Iespējams, ka sīklietotnes ir pārspīlēti un nepietiekami piegādātas, taču tas nenozīmē, ka Java nebija sasodīti laba valoda citām problēmām.

Sākotnēji Java bija paredzēta kā starpplatformu klientu bibliotēka, bet Java guva reālus panākumus servera telpā. Serversīklietotnes, Java servera lapas un virkne uz uzņēmumu orientētu bibliotēku, kuras periodiski tika apvienotas un pārzīmētas vienā vai citā mulsinošā akronīmā, atrisināja reālas problēmas mums un uzņēmumiem. Ja neskaita mārketinga neveiksmes, Java sasniedza gandrīz standarta statusu IT departamentos visā pasaulē. (Ātri: kāda ir atšķirība starp Java 2 Enterprise Edition un Java Platform Enterprise Edition? Ja jūs uzminējāt, ka J2EE ir JEE pēctecis, jūs to dabūjāt tieši atpakaļ.) Daži no šiem uzņēmumiem domātajiem produktiem bija smagā svara pusē un iedvesmojās atvērt avotu alternatīvas un papildinājumi, piemēram, Spring, Hibernate un Tomcat, taču tie visi ir uzbūvēti virs saules pamatu.

Iespējams, ka vissvarīgākais atvērtā koda ieguldījums Java un plašākā programmēšanas amatā ir JUnit. Testa virzīta izstrāde (TDD) tika izmēģināta jau iepriekš ar Smalltalk. Tomēr, tāpat kā daudzi citi šīs valodas jauninājumi, TDD nesaņēma plašu paziņojumu un pieņemšanu, kamēr tas nebija pieejams Java. Kad Kents Beks un Ērihs Gamma 2000. gadā izlaida JUnit, TDD strauji pakāpās no dažu programmētāju eksperimentālas prakses uz standarta programmatūras izstrādes veidu 21. gadsimtā. Kā teica Martins Faulers: "Nekad programmatūras izstrādes jomā tik daudzi nebija parādā tik mazām koda rindām", un šīs dažas koda rindiņas tika rakstītas Java valodā.

Divdesmit gadus kopš tās darbības sākuma Java vairs nav sīkais iesācējs. Tas ir kļuvis par iesakņojušos citu valodu pārstāvi, pret kuriem dumpojas. Vieglākas valodas, piemēram, Ruby un Python, ir ievērojami sasniegušas Java teritoriju, it īpaši starta kopienā, kur attīstības ātrums ir vairāk nekā robustums un mērogs - kompromiss, kuru Java pati izmantoja pirmajās dienās, kad veiktspēja virtuālo mašīnu apkopotais kods ir ļoti atpalicis.

Java, protams, nestāv uz vietas. Oracle turpina iekļaut labi pārbaudītas tehnoloģijas no citām valodām, piemēram, vispārīgās, autoboxing, uzskaitīšanas un pavisam nesen lambda izteiksmes. Daudzi programmētāji vispirms ar šīm idejām saskārās Java valodā. Ne katrs programmētājs zina Java, taču neatkarīgi no tā, vai viņi to zina vai nē, tas ir ietekmējis katru mūsdienu programmētāju.

Saistītie raksti

  • Pārskats: Salīdzināti lielie 4 Java IDE
  • Java uz visiem laikiem! 12 atslēgas Java ilgstošajai dominancei
  • Java pret Node.js: episka cīņa par izstrādātāja domu daļu