Paul Graham o Javi i "hakerskim" programskim jezicima (2001.)

Paul Graham o Javi i "hakerskim" programskim jezicima (2001.)

Ovaj je esej izrastao iz razgovora koje sam vodio s nekoliko programera o pristranosti Jave. Ovo nije kritika Jave, već jasan primjer "hakerskog radara".

S vremenom, hakeri razviju smisao za dobru ili lošu tehnologiju. Mislio sam da bi moglo biti zanimljivo pokušati ocrtati razloge zašto smatram da je Java upitna.

Neki koji su je čitali smatrali su je vrijednim pažnje pokušajem pisanja o nečemu o čemu se nikad prije nije pisalo. Drugi su upozoravali da pišem o stvarima o kojima ništa ne znam. Dakle, za svaki slučaj, želio bih pojasniti da ne pišem o Javi (s kojom nikada nisam radio), već o "hakerskom radaru" (o kojem sam puno razmišljao).

Izraz “ne sudi knjigu po koricama” potječe iz vremena kada su se knjige prodavale u praznim kartonskim koricama koje je kupac uvezao po svojoj želji. U to se vrijeme knjiga nije razlikovala po koricama. Međutim, od tada je izdavačka industrija jako napredovala, a moderni izdavači ulažu velike napore kako bi osigurali da naslovnica govori mnogo.

Proveo sam dosta vremena u knjižarama i mislim da sam naučio razumjeti sve što mi izdavači žele reći, a vjerojatno i još ponešto. Većinu vremena koje sam provodio izvan knjižara provodio sam pred zaslonima računala i pretpostavljam da sam donekle naučio tehnologiju prosuđivati ​​po koricama. Možda je to slijepa sreća, ali uspio sam izbjeći nekoliko tehnologija koje su se pokazale jako lošima.

Jedna od tih tehnologija za mene je Java. Nisam napisao niti jedan program u Javi i samo sam preletio dokumentaciju, ali imam osjećaj da nije suđeno da postane vrlo uspješan jezik. Možda griješim - predviđanje tehnologije je opasan posao. Pa ipak, neka vrsta svjedočanstva ere, evo zašto ne volim Javu:

  1. Pretjerani entuzijazam. Ove standarde ne treba nametati. Nitko nije pokušao promovirati C, Unix ili HTML. Pravi standardi postavljeni su mnogo prije nego što većina ljudi uopće čuje za njih. Na radaru hakera, Perl izgleda ništa manje od Jave samo zbog svojih zasluga.
  2. Java ne cilja visoko. U izvornom opisu Jave, Gosling izričito navodi da je Java dizajnirana da bude laka za programere koji su navikli na C. Dizajniran je kao još jedan C++:C s nekoliko ideja posuđenih iz naprednijih jezika. Poput tvoraca sitcoma, brze hrane ili turističkih tura, tvorci Jave svjesno su osmislili proizvod za ljude koji nisu bili pametni poput njih samih. Povijesno gledano, jezici dizajnirani za druge ljude nisu uspjeli: Cobol, PL/1, Pascal, Ada, C++. Međutim, uspješni su bili oni koje su kreatori sami razvili: C, Perl, Smalltalk, Lisp.
  3. Skriveni motivi. Netko je jednom rekao da bi svijet bio bolje mjesto kada bi ljudi pisali knjige samo kada bi imali što reći, umjesto da pišu kada im se prohtije. Isto tako, razlog zbog kojeg stalno slušamo o Javi nije taj što nam pokušavaju reći nešto o programskim jezicima. Čuli smo za Javu kao dio Sunovog plana da se suprotstavi Microsoftu.
  4. Nitko je ne voli. C, Perl, Python, Smalltalk ili Lisp programeri su zaljubljeni u svoje jezike. Nikada nisam čuo da je netko izjavio ljubav prema Javi.
  5. Ljudi su prisiljeni to koristiti. Mnogi ljudi koje znam koji koriste Javu to rade iz nužde. Misle da će im to priskrbiti sredstva, ili misle da će se svidjeti kupcima, ili je to odluka uprave. To su pametni ljudi; da je tehnologija dobra, koristili bi je dobrovoljno.
  6. Ovo je jelo mnogih kuhara. Najbolji programski jezici razvijeni su od strane malih timova. Javom upravlja odbor. Ako se pokaže da je to uspješan jezik, bit će to prvi put u povijesti da je odbor izradio takav jezik.
  7. Ona je birokratska. Iz ono malo što znam o Javi, čini se da postoji mnogo protokola za bilo što. Stvarno dobri jezici nisu takvi. Puštaju vas da radite što god želite i ne staju vam na put.
  8. Umjetni hype. Sada se Sun pokušava pretvarati da Javu pokreće zajednica, da je projekt otvorenog koda poput Perla ili Pythona. Pa ipak, razvoj kontrolira ogromna tvrtka. Dakle, postoji opasnost da se jezik pokaže kao ista dosadna bijeda kao i sve što izlazi iz utrobe velike tvrtke.
  9. Stvoren je za velike organizacije. Velike tvrtke imaju različite ciljeve s hakerima. Tvrtke trebaju jezike koji imaju reputaciju prikladnih za velike timove osrednjih programera. Jezici sa karakteristikama poput limitatora brzine na U-Haul kamionima, koji upozoravaju budale da ne uzrokuju preveliku štetu. Hakeri ne vole jezike koji im govore ponizno. Hakerima treba moć. Povijesno gledano, jezici kreirani za velike organizacije (PL/1, Ada) su izgubili, dok su jezici kreirani od strane hakera (C, Perl) pobijedili. Razlog: Današnji mladi haker je sutrašnji CTO.
  10. Pogrešni ljudi je vole. Programeri kojima se najviše divim uglavnom nisu ludi za Javom. Kome se ona sviđa? Odijela, onima koji ne vide razliku među jezicima, ali stalno slušaju o Javi u tisku; programeri u velikim tvrtkama, opsjednuti pronalaženjem nečeg boljeg čak i od C++; svejedi preddiplomski studenti koji će voljeti sve što će im omogućiti posao (ili završiti na ispitu). Mišljenja ovih ljudi mijenjaju se sa smjerom vjetra.
  11. Njezin roditelj teško prolazi. Sunov poslovni model napadnut je na dva fronta. Jeftini Intelovi procesori koji se koriste u stolnim računalima postali su dovoljno brzi za poslužitelje. Čini se da FreeBSD postaje jednako dobar poslužiteljski OS kao Solaris. Sunovo oglašavanje implicira da ćete trebati Sun poslužitelje za aplikacije proizvodne razine. Da je to istina, Yahoo bi bio prvi u redu za kupnju Suna. Ali kad sam radio tamo, koristili su Intel i FreeBSD poslužitelje. Ovo je dobar znak za Sunovu budućnost. A ako Sunce zađe, Java bi također mogla biti u nevolji.
  12. Ljubav prema Ministarstvu obrane. Ministarstvo obrane potiče programere da koriste Javu. A ovo izgleda kao najgori znak od svih. Ministarstvo obrane radi izvrstan (iako skup) posao zaštite zemlje, oni vole planove, procedure i protokole. Njihova je kultura potpuno suprotna hakerskoj kulturi; kada je riječ o softveru, skloni su se pogrešnim kladiti. Posljednji programski jezik u koji se Ministarstvo obrane zaljubilo bio je Ada.

Imajte na umu da ovo nije kritika Jave, već kritika njezine naslovnice. Javu ne poznajem dovoljno dobro da bi mi se sviđala ili ne sviđala. Samo pokušavam objasniti zašto nisam zainteresiran za učenje Jave.

Može se činiti ishitrenim odbaciti jezik bez da se čak i pokuša programirati na njemu. Ali to je ono s čime se moraju nositi svi programeri. Previše je tehnologija da bismo ih sve istražili. Morate naučiti procijeniti prema vanjskim znakovima hoće li biti vrijedno vašeg vremena. Jednako sam žurno odbacio Cobol, Adu, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware i CORBA—među ostalima. Jednostavno me nisu privlačili.

Možda sam u krivu u slučaju Jave. Možda će se jezik koji promiče jedna velika tvrtka kako bi se natjecao s drugom, koji je razvio odbor za mase, uz mnogo pompe i koji voli Ministarstvo obrane, ipak pokazati kao zgodan, lijep i moćan jezik na kojem ću rado programirati . Može biti. Ali vrlo je upitno.

Hvala na prijevodu: Denis Mitropolsky

PS

Izvor: www.habr.com

Dodajte komentar