Paulas Grahamas apie „Java“ ir „hakerių“ programavimo kalbas (2001 m.)

Paulas Grahamas apie „Java“ ir „hakerių“ programavimo kalbas (2001 m.)

Ši esė išaugo iš pokalbių su keliais kūrėjais šališkumo prieš Java temą. Tai ne Java kritika, o aiškus „hakerių radaro“ pavyzdys.

Laikui bėgant įsilaužėliai sugalvoja gerą arba blogą technologiją. Pamaniau, kad būtų įdomu pabandyti apibūdinti priežastis, kodėl „Java“ man kelia abejonių.

Kai kurie ją skaitę laikė tai vertu bandymu parašyti apie tai, apie ką anksčiau nebuvo rašyta. Kiti perspėjo, kad rašau apie dalykus, apie kuriuos nieko nežinau. Tad tik tuo atveju noriu patikslinti, kad rašau ne apie Java (su kuria niekada nedirbau), o apie "hakerių radarą" (apie kurį daug galvojau).

Posakis „nespręsk apie knygą iš jos viršelio“ kilo iš tų laikų, kai knygos buvo parduodamos tuščiais kartoniniais viršeliais, kuriuos pirkėjas pririšdavo pagal savo skonį. Tais laikais knygos neatpažinsi iš viršelio. Tačiau nuo to laiko leidybos pramonė labai pažengė į priekį, o šiuolaikiniai leidėjai labai stengiasi užtikrinti, kad viršelis pasakytų daug.

Daug laiko praleidau knygynuose ir, manau, išmokau suprasti viską, ką nori man pasakyti leidėjai, ir tikriausiai dar kai ką. Didžiąją laiko dalį, kurią praleidau ne knygynuose, praleisdavau prie kompiuterių ekranų ir, manau, iš dalies išmokau spręsti apie technologijas pagal jos viršelius. Galbūt tai akla sėkmė, bet man pavyko išvengti kelių technologijų, kurios pasirodė tikrai blogos.

Viena iš šių technologijų man pasirodė „Java“. „Java“ neparašiau nė vienos programos, tik perskaičiau dokumentus, bet jaučiu, kad jai nelemta tapti labai sėkminga kalba. Galiu klysti – prognozuoti technologijas yra pavojingas verslas. Ir vis dėlto, savotiškas eros liudijimas, štai kodėl man nepatinka „Java“:

  1. Per didelis entuziazmas. Šių standartų primesti nereikia. Niekas nebandė reklamuoti C, Unix ar HTML. Tikri standartai nustatomi gerokai anksčiau, nei dauguma žmonių apie juos net išgirsta. Įsilaužėlių radare „Perl“ atrodo ne mažiau nei „Java“ vien dėl savo privalumų.
  2. Java nesiekia aukštų tikslų. Pradiniame Java aprašyme Goslingas aiškiai teigia, kad Java buvo sukurta taip, kad būtų lengva programuotojams, pripratusiems prie C. Jis buvo sukurtas kaip dar vienas C++:C su keliomis idėjomis, pasiskolintomis iš pažangesnių kalbų. Kaip ir komedijų, greito maisto ar kelionių kelionių kūrėjai, „Java“ kūrėjai sąmoningai kūrė produktą žmonėms, kurie nebuvo tokie protingi kaip jie patys. Istoriškai kalbos, skirtos naudoti kitiems žmonėms, nepavyko: Cobol, PL/1, Pascal, Ada, C++. Tačiau sėkmingiausi buvo tie, kuriuos kūrėjai sukūrė patys: C, Perl, Smalltalk, Lisp.
  3. Paslėpti motyvai. Kažkas kartą pasakė, kad pasaulis būtų geresnė vieta, jei žmonės rašytų knygas tik tada, kai turėtų ką pasakyti, o ne tada, kai norėtų rašyti knygą. Taip pat priežastis, dėl kurios nuolat girdime apie „Java“, nėra ta, kad jie bando mums ką nors pasakyti apie programavimo kalbas. Girdime apie „Java“ kaip „Sun“ plano perimti „Microsoft“ dalį.
  4. Niekas jos nemyli. C, Perl, Python, Smalltalk ar Lisp programuotojai yra įsimylėję savo kalbas. Niekada negirdėjau, kad kas nors deklaruotų savo meilę Javai.
  5. Žmonės priversti tuo naudotis. Daugelis mano pažįstamų žmonių, kurie naudoja „Java“, tai daro iš būtinybės. Jie mano, kad tai gaus finansavimą, arba jie mano, kad tai patiks klientams, arba tai yra vadovybės sprendimas. Tai protingi žmonės; jei technologija būtų gera, jie ja naudotųsi savo noru.
  6. Tai daugelio virėjų patiekalas. Geriausias programavimo kalbas kūrė mažos komandos. „Java“ valdo komitetas. Jei tai bus sėkminga kalba, tai bus pirmas kartas istorijoje, kai komitetas sukūrė tokią kalbą.
  7. Ji yra biurokratinė. Iš to, kiek mažai žinau apie „Java“, atrodo, kad yra daug protokolų, kaip daryti bet ką. Tikrai geros kalbos nėra tokios. Jie leidžia daryti ką nori ir netrukdo tau.
  8. Dirbtinis ažiotažas. Dabar „Sun“ bando apsimesti, kad „Java“ yra bendruomenės valdoma, kad tai yra atvirojo kodo projektas, pavyzdžiui, „Perl“ ar „Python“. Ir vis dėlto plėtrą kontroliuoja didžiulė įmonė. Taigi kalba gali pasirodyti tokia pat nuobodu, kaip ir viskas, kas kyla iš didelės įmonės.
  9. Jis sukurtas didelėms organizacijoms. Didelės įmonės turi skirtingus tikslus su įsilaužėliais. Įmonėms reikalingos kalbos, kurios yra tinkamos didelėms vidutinių programuotojų komandoms. Kalbos su tokiomis savybėmis kaip U-Haul sunkvežimių greičio ribotuvai, įspėjantys kvailius, kad nepadarytų per daug žalos. Piratai nemėgsta kalbų, kurios su jais šneka. Piratams reikia galios. Istoriškai didelėms organizacijoms sukurtos kalbos (PL/1, Ada) pralaimėjo, o įsilaužėlių sukurtos kalbos (C, Perl) laimėjo. Priežastis: šiandieninis nepilnametis įsilaužėlis yra rytojaus CTO.
  10. Netinkamiems žmonėms ji patinka. Programuotojai, kuriais aš labiausiai žaviuosi, paprastai nėra pamišę dėl Java. Kam ji patinka? Suits, tie, kurie nemato kalbų skirtumo, bet nuolat girdi apie Java spaudoje; programuotojai didelėse įmonėse, apsėsti rasti ką nors geresnio už net C++; visaėdžiai ikiklasės mokiniai, kuriems patiks viskas, kas jiems duos darbą (arba baigs laikyti egzaminą). Šių žmonių nuomonė keičiasi priklausomai nuo vėjo krypties.
  11. Jos tėvams sunku. „Sun“ verslo modelis puolamas dviem frontais. Pigūs „Intel“ procesoriai, naudojami staliniuose kompiuteriuose, tapo pakankamai greiti serveriams. Ir atrodo, kad „FreeBSD“ tampa tokia pat gera serverio OS kaip „Solaris“. „Sun“ reklama reiškia, kad jums reikės „Sun“ serverių gamybos lygio programoms. Jei tai būtų tiesa, „Yahoo“ būtų pirmoji eilėje, nusipirkusi „Sun“. Bet kai aš ten dirbau, jie naudojo „Intel“ ir „FreeBSD“ serverius. Tai gerai nuteikia Saulės ateičiai. Ir jei saulė nusileis, Java taip pat gali turėti problemų.
  12. Gynybos ministerijos meilė. Gynybos departamentas skatina kūrėjus naudoti Java. Ir tai atrodo kaip pats blogiausias ženklas. Gynybos departamentas atlieka puikų (jei brangų) darbą saugodamas šalį, jiems patinka planai, procedūros ir protokolai. Jų kultūra visiškai priešinga įsilaužėlių kultūrai; kalbant apie programinę įrangą, jie linkę atlikti neteisingus statymus. Paskutinė programavimo kalba, kurią Gynybos departamentas pamėgo, buvo Ada.

Atkreipkite dėmesį, kad tai ne Java kritika, o jos viršelio kritika. Nepažįstu Java pakankamai gerai, kad man patiktų ar nepatiktų. Tiesiog bandau paaiškinti, kodėl man neįdomu mokytis Java.

Gali atrodyti, kad skubu atsisakyti kalbos net nebandant joje programuoti. Tačiau su tuo turi susidurti visi programuotojai. Yra per daug technologijų, kad būtų galima jas visas ištirti. Turite išmokti pagal išorinius požymius spręsti, ar tai bus verta jūsų laiko. Taip pat paskubomis išmečiau Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware ir CORBA – be kitų. Jie tiesiog manęs nežavėjo.

Galbūt aš klystu Java atveju. Galbūt kalba, kurią reklamuoja viena didelė kompanija konkuruoti su kita, sukurta masėms skirto komiteto, su dideliu ažiotažu ir pamėgta Gynybos departamento, vis dėlto pasirodys tvarkinga, graži ir galinga kalba, kurią aš su malonumu. programa į. Gal būt. Bet tai labai abejotina.

Ačiū už vertimą: Denis Mitropolsky

PS

Šaltinis: www.habr.com

Добавить комментарий