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

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

Ovaj esej je izrastao iz razgovora koje sam vodio sa nekoliko programera o pristrasnosti na Javi. Ovo nije kritika Jave, već jasan primjer “hakerskog radara”.

Vremenom, hakeri razviju nos za dobru ili lošu tehnologiju. Mislio sam da bi moglo biti zanimljivo pokušati izložiti razloge zašto smatram da je Java upitna.

Neki koji su ga čitali smatrali su da je to vrijedan pažnje pokušaj da se piše o nečemu o čemu se nikada prije nije pisalo. Drugi su upozoravali da pišem o stvarima o kojima ništa ne znam. Tako da za svaki slučaj želim da pojasnim da ne pišem o Javi (sa kojom nikada nisam radio), već o „hakerskom radaru“ (o čemu sam dosta razmišljao).

Izraz “ne sudite o knjizi po koricama” nastao je iz vremena kada su se knjige prodavale u praznim kartonskim koricama koje je kupac vezivao po svom ukusu. U to vrijeme knjigu se nije moglo razlikovati po koricama. Od tada je, međutim, izdavačka industrija uvelike napredovala, a moderni izdavači se jako trude da naslovnice govore mnogo.

Proveo sam dosta vremena u knjižarama i mislim da sam naučio da razumem sve što izdavači žele da mi kažu, a verovatno i još ponešto. Većinu vremena koje sam provodio izvan knjižara provodio sam ispred kompjuterskih ekrana i pretpostavljam da sam donekle naučio da sudim o tehnologiji po koricama. Možda je to bila slepa sreća, ali uspeo sam da izbegnem nekoliko tehnologija koje su se pokazale veoma lošima.

Ispostavilo se da je jedna od ovih tehnologija za mene Java. Nisam napisao niti jedan program na Javi, samo sam pregledao dokumentaciju, ali imam osjećaj da mu 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 o eri, evo zašto ne volim Javu:

  1. Preterani entuzijazam. Ove standarde nije potrebno nametati. Niko nije pokušao da promoviše C, Unix ili HTML. Pravi standardi se postavljaju mnogo prije nego što većina ljudi i čuje za njih. Na hakerskom radaru, Perl ne izgleda ništa manje od Jave samo zbog svojih prednosti.
  2. Java ne cilja visoko. U originalnom opisu Jave, Gosling izričito navodi da je Java dizajnirana da bude laka za programere naviknute na C. Dizajniran je da bude još jedan C++:C sa nekoliko ideja pozajmljenih iz naprednijih jezika. Poput kreatora sitcoma, brze hrane ili putovanja, kreatori Jave su svjesno dizajnirali proizvod za ljude koji nisu bili pametni kao oni sami. Istorijski gledano, jezici dizajnirani za druge ljude nisu uspjeli: Cobol, PL/1, Pascal, Ada, C++. Uspješni su, međutim, bili oni koje su kreatori razvili za sebe: C, Perl, Smalltalk, Lisp.
  3. Skriveni motivi. Neko je jednom rekao da bi svet bio bolje mesto kada bi ljudi pisali knjige samo kada bi imali šta da kažu, umesto da pišu kada žele da napišu knjigu. Isto tako, razlog zašto stalno slušamo o Javi nije zato što oni pokušavaju da nam kažu nešto o programskim jezicima. Čuli smo za Javu kao dio Sunovog plana da preuzme Microsoft.
  4. Niko je ne voli. C, Perl, Python, Smalltalk ili Lisp programeri su zaljubljeni u svoje jezike. Nikada nisam čuo da je neko izjavio ljubav prema Javi.
  5. Ljudi su primorani da ga koriste. Mnogi ljudi koje poznajem i koji koriste Javu to rade iz nužde. Oni misle da će im to obezbijediti sredstva, ili misle da će se dopasti kupcima, ili je to odluka uprave. Ovo su pametni ljudi; da je tehnologija dobra, dobrovoljno bi je koristili.
  6. Ovo je jelo mnogih kuvara. Najbolje programske jezike razvili su mali timovi. Javu upravlja komitet. Ako se pokaže da je to uspješan jezik, to će biti prvi put u historiji da je komisija stvorila takav jezik.
  7. Ona je birokratska. Iz ono malo što znam o Javi, čini se da postoji mnogo protokola za bilo šta. Zaista dobri jezici nisu takvi. Dozvoljavaju vam da radite šta god želite i ne stoje vam na putu.
  8. Vještački hype. Sada Sun pokušava da se pretvara da je Java vođena zajednicom, da je projekat otvorenog koda kao što je Perl ili Python. Pa ipak, razvoj kontroliše ogromna kompanija. Dakle, rizikuje se da jezik ispadne ista dosadna bidost kao i sve što izlazi iz utrobe velike kompanije.
  9. Stvoren je za velike organizacije. Velike kompanije imaju različite ciljeve sa hakerima. Kompaniji su potrebni jezici koji imaju reputaciju pogodnih za velike timove osrednjih programera. Jezici sa karakteristikama kao što su ograničavači brzine na U-Haul kamionima, koji upozoravaju budale da ne uzrokuju preveliku štetu. Hakeri ne vole jezike koji im govore nisko. Hakerima je potrebna moć. Istorijski gledano, jezici kreirani za velike organizacije (PL/1, Ada) su izgubili, dok su jezici kreirani od strane hakera (C, Perl) pobijedili. Razlog: Današnji maloljetni haker je sutrašnji CTO.
  10. Pogrešni ljudi poput nje. Programeri kojima se najviše divim uglavnom nisu ludi za Javom. Kome se ona sviđa? Odgovara, oni koji ne vide razliku između jezika, ali stalno slušaju o Javi u štampi; programeri u velikim kompanijama, opsednuti pronalaženjem nečeg boljeg od C++-a; svejedi preddiplomci koji će voljeti sve što će im omogućiti posao (ili završiti na ispitu). Mišljenja ovih ljudi se menjaju sa smerom vetra.
  11. Njenom roditelju je teško. Sunov poslovni model je napadnut na dva fronta. Jeftini Intel procesori koji se koriste u desktop računarima postali su dovoljno brzi za servere. I čini se da FreeBSD postaje jednako dobar serverski OS kao i Solaris. Sun-ovo oglašavanje implicira da će vam trebati Sun serveri za proizvodne aplikacije. Da je ovo istina, Yahoo bi bio prvi u redu da kupi Sun. Ali kada sam radio tamo, koristili su Intel i FreeBSD servere. Ovo je dobro za Sunovu budućnost. A ako Sunce zađe, Java bi takođe mogla biti u nevolji.
  12. Ljubav prema Ministarstvu odbrane. Ministarstvo odbrane ohrabruje programere da koriste Javu. A ovo izgleda kao najgori znak od svih. Ministarstvo odbrane radi odličan (iako skup) posao zaštite zemlje, vole planove, procedure i protokole. Njihova kultura je potpuno suprotna kulturi hakera; kada je u pitanju softver, oni imaju tendenciju da prave pogrešne opklade. Poslednji programski jezik u koji se Ministarstvo odbrane zaljubilo je Ada.

Imajte na umu da ovo nije kritika Jave, već kritika njene naslovnice. Ne poznajem Javu dovoljno dobro da mi se sviđa ili ne sviđa. Samo pokušavam da objasnim zašto me ne zanima učenje Jave.

Može izgledati prenagljeno odbaciti jezik čak i bez pokušaja programiranja na njemu. Ali to je ono sa čim se svi programeri moraju suočiti. Postoji previše tehnologija da bismo ih sve istražili. Morate naučiti da procjenjujete po vanjskim znakovima da li će biti vrijedno vašeg vremena. S jednakom žurbom sam odbacio Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware i CORBA—između ostalih. Jednostavno mi se nisu svidjele.

Možda grešim u slučaju Jave. Možda će se jezik koji promoviše jedna velika kompanija da se takmiči s drugom, razvijen od strane komiteta za široke mase, uz mnogo pompe, i koji ga voli Ministarstvo obrane, ipak ispostaviti kao uredan, lijep i moćan jezik koji ću sa zadovoljstvom program u. Možda. Ali to je vrlo sumnjivo.

Hvala na prevodu: Denis Mitropolsky

PS

izvor: www.habr.com

Dodajte komentar