Paul Graham o Javie i „hakerskich” językach programowania (2001)

Paul Graham o Javie i „hakerskich” językach programowania (2001)

Ten esej powstał w wyniku rozmów, które odbyłem z kilkoma programistami na temat uprzedzeń wobec Javy. To nie jest krytyka Javy, ale raczej wyraźny przykład „radaru hakerów”.

Z biegiem czasu hakerzy mają nosa do dobrych lub złych technologii. Pomyślałem, że interesująca może być próba nakreślenia powodów, dla których Java wydaje mi się wątpliwa.

Część czytelników uznała to za godną uwagi próbę napisania o czymś, o czym nigdy wcześniej nie pisano. Inni ostrzegali, że piszę o rzeczach, o których nic nie wiem. Tak na wszelki wypadek chciałbym wyjaśnić, że nie piszę o Javie (z którą nigdy nie pracowałem), ale o „radarze hakerów” (o czym dużo myślałem).

Wyrażenie „nie oceniaj książki po okładce” wywodzi się z czasów, gdy książki sprzedawano w czystych kartonowych okładkach, które kupujący oprawiał według własnego uznania. W tamtych czasach nie można było odróżnić książki po okładce. Jednak od tego czasu branża wydawnicza bardzo się rozwinęła, a współcześni wydawcy dokładają wszelkich starań, aby okładka mówiła wiele.

Spędziłam mnóstwo czasu w księgarniach i myślę, że nauczyłam się rozumieć wszystko, co wydawcy chcą mi powiedzieć, a może nawet jeszcze więcej. Większość czasu poza księgarniami spędzałem przed ekranami komputerów i chyba w pewnym stopniu nauczyłem się oceniać technologię po okładkach. Może to ślepy traf, ale udało mi się uniknąć kilku technologii, które okazały się naprawdę złe.

Jedną z takich technologii okazała się dla mnie Java. Nie napisałem ani jednego programu w Javie i jedynie przejrzałem dokumentację, ale mam przeczucie, że nie jest to język skazany na sukces. Mogę się mylić – prognozowanie technologii to niebezpieczne zajęcie. A jednak, coś w rodzaju świadectwa epoki, oto dlaczego nie lubię Javy:

  1. Nadmierny entuzjazm. Standardów tych nie trzeba narzucać. Nikt nie próbował promować C, Unixa czy HTML. Prawdziwe standardy są ustalane na długo przed tym, zanim większość ludzi o nich usłyszy. W oczach hakerów Perl wygląda nie gorzej niż Java, wyłącznie ze względu na swoje zalety.
  2. Java nie mierzy wysoko. W oryginalnym opisie Java Gosling wyraźnie stwierdza, że ​​Java została zaprojektowana tak, aby była łatwa dla programistów przyzwyczajonych do C. Został zaprojektowany jako kolejny C++:C z kilkoma pomysłami zapożyczonymi z bardziej zaawansowanych języków. Podobnie jak twórcy seriali komediowych, fast foodów czy wycieczek turystycznych, twórcy Javy świadomie zaprojektowali produkt dla osób mniej inteligentnych niż oni sami. Historycznie rzecz biorąc, zawiodły języki przeznaczone do użytku przez innych ludzi: Cobol, PL/1, Pascal, Ada, C++. Sukcesem okazały się jednak te, które twórcy opracowali dla siebie: C, Perl, Smalltalk, Lisp.
  3. Ukryte motywy. Ktoś kiedyś powiedział, że świat byłby lepszym miejscem, gdyby ludzie pisali książki tylko wtedy, gdy mają coś do powiedzenia, a nie wtedy, gdy mają ochotę napisać książkę. Podobnie powodem, dla którego ciągle słyszymy o Javie, nie jest to, że próbują nam powiedzieć coś o językach programowania. Słyszymy o Javie w ramach planu Suna przejęcia Microsoftu.
  4. Nikt jej nie kocha. Programiści C, Perl, Python, Smalltalk czy Lisp są zakochani w swoich językach. Nigdy nie słyszałem, żeby ktoś deklarował swoją miłość do Javy.
  5. Ludzie są zmuszeni z tego korzystać. Wiele znanych mi osób korzysta z Java, robi to z konieczności. Myślą, że zapewni im to finansowanie, lub że spodoba się to klientom, albo jest to decyzja zarządu. To są mądrzy ludzie; gdyby technologia była dobra, korzystaliby z niej dobrowolnie.
  6. To danie wielu szefów kuchni. Najlepsze języki programowania zostały opracowane przez małe zespoły. Java jest zarządzana przez komitet. Jeżeli okaże się, że jest to język odnoszący sukcesy, będzie to pierwszy przypadek w historii, gdy komisja stworzy taki język.
  7. Jest biurokratką. Z tego, co niewiele wiem o Javie, wydaje się, że istnieje wiele protokołów umożliwiających dowolne działanie. Naprawdę dobre języki takie nie są. Pozwalają ci robić, co chcesz i nie stają ci na drodze.
  8. Sztuczny szum. Teraz Sun próbuje udawać, że Java jest napędzana przez społeczność i że jest projektem typu open source, takim jak Perl czy Python. A jednak rozwój jest kontrolowany przez ogromną firmę. Istnieje zatem ryzyko, że język okaże się tą samą nudną nędzą, co wszystko, co wychodzi z wnętrzności dużej firmy.
  9. Jest stworzony dla dużych organizacji. Duże firmy mają różne cele wobec hakerów. Firmy potrzebują języków, które mają reputację odpowiednich dla dużych zespołów przeciętnych programistów. Języki o cechach takich jak ograniczniki prędkości w ciężarówkach U-Haul, ostrzegające głupców przed spowodowaniem zbyt dużych szkód. Hakerzy nie lubią języków, które ich poniżają. Hakerzy potrzebują władzy. Historycznie rzecz biorąc, języki tworzone dla dużych organizacji (PL/1, Ada) przegrały, natomiast zwyciężyły języki tworzone przez hakerów (C, Perl). Powód: dzisiejszy młody haker będzie jutro dyrektorem technicznym.
  10. Niewłaściwi ludzie ją lubią. Programiści, których najbardziej podziwiam, na ogół nie mają bzika na punkcie Javy. Kto ją lubi? Garnitury, ci, którzy nie widzą różnicy między językami, ale ciągle słyszą w prasie o Javie; programiści w dużych firmach, mający obsesję na punkcie znalezienia czegoś lepszego niż nawet C++; wszystkożerni uczniowie szkół podstawowych, którzy pokochają wszystko, co zapewni im pracę (lub zakończy się egzaminem). Opinie tych ludzi zmieniają się wraz z kierunkiem wiatru.
  11. Jej rodzic przeżywa trudne chwile. Model biznesowy firmy Sun jest atakowany na dwóch frontach. Tanie procesory Intel stosowane w komputerach stacjonarnych stały się wystarczająco szybkie dla serwerów. Wydaje się, że FreeBSD staje się równie dobrym systemem operacyjnym dla serwerów jak Solaris. Reklama firmy Sun sugeruje, że do zastosowań produkcyjnych potrzebne będą serwery firmy Sun. Gdyby to była prawda, Yahoo byłoby pierwsze w kolejce do zakupu Suna. Ale kiedy tam pracowałem, używali serwerów Intel i FreeBSD. To dobrze wróży na przyszłość Suna. A jeśli Sun zgaśnie, Java również może mieć kłopoty.
  12. Miłość do Ministerstwa Obrony. Departament Obrony zachęca programistów do korzystania z języka Java. A to wygląda na najgorszy znak ze wszystkich. Departament Obrony wykonuje doskonałą (choć kosztowną) robotę, chroniąc kraj, uwielbia plany, procedury i protokoły. Ich kultura jest całkowitym przeciwieństwem kultury hakerów; jeśli chodzi o oprogramowanie, często podejmują błędne decyzje. Ostatnim językiem programowania, w którym zakochał się Departament Obrony, była Ada.

Należy pamiętać, że nie jest to krytyka Javy, ale krytyka jej okładki. Nie znam Javy na tyle dobrze, żeby ją lubić lub nie. Próbuję tylko wyjaśnić, dlaczego nie interesuje mnie nauka języka Java.

Odrzucenie języka bez próby programowania w nim może wydawać się pochopne. Ale z tym muszą sobie radzić wszyscy programiści. Technologii jest zbyt wiele, aby je wszystkie poznać. Musisz nauczyć się oceniać po zewnętrznych znakach, czy będzie to warte twojego czasu. Z równym pośpiechem wyrzuciłem między innymi Cobol, Adę, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware i CORBA. Po prostu nie przypadły mi do gustu.

Być może mylę się w przypadku Javy. Być może język promowany przez jedną dużą firmę, aby konkurować z inną, opracowany przez komitet dla mas, wzbudzający wiele szumu i uwielbiany przez Departament Obrony, mimo to okaże się zgrabnym, pięknym i potężnym językiem, którego z przyjemnością program w. Może. Ale jest to bardzo wątpliwe.

Dziękuję za tłumaczenie: Denis Mitropolsky

PS

Źródło: www.habr.com

Dodaj komentarz