Paul Graham Java ja "häkkerite" programmeerimiskeelte kohta (2001)

Paul Graham Java ja "häkkerite" programmeerimiskeelte kohta (2001)

See essee kasvas välja vestlustest, mida pidasin mitme arendajaga Java eelarvamuste kohta. See ei ole Java kriitika, vaid pigem selge näide "häkkeriradarist".

Aja jooksul arendavad häkkerid head või halba tehnoloogiat. Arvasin, et võib olla huvitav visandada põhjuseid, miks ma pean Java küsitavaks.

Mõned, kes seda lugesid, pidasid seda tähelepanuväärseks katseks kirjutada millestki, millest pole kunagi varem kirjutatud. Teised hoiatasid, et kirjutan asjadest, millest ma midagi ei tea. Nii et igaks juhuks täpsustan, et ma ei kirjuta Javast (millega ma pole kunagi töötanud), vaid “häkkeriradarist” (millele olen palju mõelnud).

Väljend “ära hinda raamatut selle kaane järgi” pärineb ajast, mil raamatuid müüdi tühjades pappkaantes, mille ostja köitis oma maitse järgi. Tol ajal ei saanud raamatut kaane järgi eristada. Sellest ajast peale on kirjastustööstus aga kõvasti edasi arenenud ja kaasaegsed kirjastajad näevad palju vaeva, et kaanel oleks palju öeldud.

Olen veetnud palju aega raamatupoodides ja arvan, et olen õppinud mõistma kõike, mida kirjastajad mulle öelda tahavad, ja ilmselt veel mõndagi. Suurema osa ajast, mille veetsin väljaspool raamatupoode, veetsin arvutiekraanide ees ja ma arvan, et õppisin mingil määral tehnoloogiat kaante järgi hindama. See võib olla pime õnn, kuid mul on õnnestunud vältida mõnda tehnoloogiat, mis osutusid väga halvaks.

Üks neist tehnoloogiatest osutus minu jaoks Javaks. Ma ei ole Javas ühtegi programmi kirjutanud ja olen ainult dokumentatsioonist üle vaadanud, kuid mul on tunne, et sellest pole määratud saama väga edukaks keeleks. Ma võin eksida – tehnoloogia kohta ennustamine on ohtlik äri. Ja siiski, omamoodi ajastu tunnistus, siin on põhjus, miks mulle Java ei meeldi:

  1. Liigne entusiasm. Neid standardeid ei ole vaja kehtestada. Keegi ei püüdnud reklaamida C-d, Unixi ega HTML-i. Tõelised standardid kehtestatakse ammu enne, kui enamik inimesi neist üldse kuuleb. Häkkerite radaril näeb Perl välja ainult oma eeliste tõttu mitte vähem kui Java.
  2. Java ei sihi kõrgele. Java algses kirjelduses ütleb Gosling selgesõnaliselt, et Java oli mõeldud C-ga harjunud programmeerijatele lihtsaks. See loodi järjekordseks C++:C-ks, millel on mõned arenenumatest keeltest laenatud ideed. Nagu sitcomide, kiirtoidu või reisituuride loojad, kujundasid Java loojad teadlikult toote inimestele, kes pole nii targad kui nemad. Ajalooliselt on teiste inimeste jaoks välja töötatud keeled ebaõnnestunud: Cobol, PL/1, Pascal, Ada, C++. Edukad olid aga need, mille tegijad ise välja töötasid: C, Perl, Smalltalk, Lisp.
  3. Varjatud motiivid. Keegi ütles kord, et maailm oleks parem paik, kui inimesed kirjutaksid raamatuid ainult siis, kui neil on midagi öelda, selle asemel, et kirjutada siis, kui nad tunnevad, et nad tahavad raamatut kirjutada. Samuti ei ole põhjus, miks me Javast pidevalt kuuleme, see, et nad üritavad meile midagi programmeerimiskeelte kohta öelda. Me kuuleme Javast osana Suni plaanist võtta vastu Microsoft.
  4. Keegi ei armasta teda. C, Perli, Pythoni, Smalltalki või Lispi programmeerijad on oma keeltesse armunud. Ma pole kunagi kuulnud, et keegi oleks avaldanud oma armastust Java vastu.
  5. Inimesed on sunnitud seda kasutama. Paljud inimesed, keda ma tean, kasutavad Java-d, teevad seda vajadusest. Nad arvavad, et see toob neile raha, või arvavad, et see meeldib klientidele või on see juhtkonna otsus. Need on targad inimesed; kui tehnika oleks hea, kasutaksid nad seda vabatahtlikult.
  6. See on paljude kokkade roog. Parimad programmeerimiskeeled töötasid välja väikesed meeskonnad. Java juhib komitee. Kui see osutub edukaks keeleks, on see esimene kord ajaloos, kui komisjon sellise keele loob.
  7. Ta on bürokraatlik. Selle vähese põhjal, mida ma Java kohta tean, tundub, et millegi tegemiseks on palju protokolle. Tõeliselt head keeled pole sellised. Nad lasevad teil teha kõike, mida soovite, ega takista teie teed.
  8. Kunstlik hüpe. Nüüd üritab Sun teeselda, et Java on kogukonna juhitud, et see on avatud lähtekoodiga projekt, nagu Perl või Python. Ja ometi juhib arengut tohutu ettevõte. Nii et keel võib muutuda samasuguseks nüriks kui kõik, mis suure ettevõtte sisikonnast välja tuleb.
  9. See on loodud suurte organisatsioonide jaoks. Suurtel ettevõtetel on häkkeritega erinevad eesmärgid. Ettevõtted vajavad keeli, millel on maine, et need sobivad keskpäraste programmeerijate suurtele meeskondadele. Keeled, millel on sellised omadused nagu U-Haul veoautode kiiruspiirikud, mis hoiatavad lolle liigse kahju tekitamise eest. Häkkeritele ei meeldi keeled, mis neile alla räägivad. Häkkerid vajavad jõudu. Ajalooliselt on suurte organisatsioonide jaoks loodud keeled (PL/1, Ada) kaotanud, häkkerite loodud keeled (C, Perl) on aga võitnud. Põhjus: tänane alaealine häkker on homme tehnoloogiajuht.
  10. Ta meeldib valedele inimestele. Programmeerijad, keda ma kõige enam imetlen, ei ole üldiselt Java-hullud. Kellele ta meeldib? Suits, need, kes ei näe keelte vahel vahet, aga kuulevad pidevalt ajakirjandusest Java kohta; programmeerijad suurtes ettevõtetes, kinnisideeks, et leida midagi paremat kui isegi C++; kõigesööjad koolieelsed õpilased, kes armastavad kõike, mis annab neile töö (või eksamile). Nende inimeste arvamused muutuvad koos tuule suunaga.
  11. Tema vanemal on raske. Suni ärimudelit rünnatakse kahel rindel. Lauaarvutites kasutatavad odavad Inteli protsessorid on muutunud serverite jaoks piisavalt kiireks. Ja FreeBSD näib muutuvat sama heaks serveri OS-iks kui Solaris. Suni reklaam tähendab, et tootmistaseme rakenduste jaoks vajate Suni servereid. Kui see oleks tõsi, oleks Yahoo Suni ostmisel esimene. Aga kui ma seal töötasin, kasutasid nad Inteli ja FreeBSD servereid. See tõotab Suni tulevikule head. Ja kui päike loojub, võib ka Java hätta jääda.
  12. Kaitseministeeriumi armastus. Kaitseministeerium julgustab arendajaid Java-d kasutama. Ja see näib olevat halvim märk üldse. Kaitseministeerium teeb riigi kaitsmisel suurepärast (kui kallist) tööd, nad armastavad plaane, protseduure ja protokolle. Nende kultuur on häkkerikultuurile täiesti vastandlik; mis puutub tarkvarasse, siis kipuvad nad tegema valesid panuseid. Viimane programmeerimiskeel, millesse kaitseministeerium armus, oli Ada.

Pange tähele, see ei ole Java kriitika, vaid selle kaane kriitika. Ma ei tunne Java-d nii hästi, et see mulle meeldiks või ei meeldiks. Üritan lihtsalt selgitada, miks ma Java õppimisest huvitatud ei ole.

Keelest loobumine ilma sellesse programmeerimist püüdmata võib tunduda rutakas. Kuid sellega peavad tegelema kõik programmeerijad. Tehnoloogiaid on liiga palju, et neid kõiki uurida. Peate õppima väliste märkide järgi hindama, kas see on teie aega väärt. Sama kiirustades loobusin ma muu hulgas Coboli, Ada, Visual Basicu, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware ja CORBA. Nad lihtsalt ei köitnud mind.

Võib-olla ma eksin Java puhul. Võib-olla osutub keel, mida üks suurettevõte teisega konkureerimiseks propageerib ja mille on välja töötanud masside jaoks mõeldud komitee, suure hüppega ja mida kaitseministeerium armastab programm sisse. Võib olla. Kuid see on väga kaheldav.

Täname tõlke eest: Denis Mitropolsky

PS

Allikas: www.habr.com

Lisa kommentaar