Пол Грем про Java та «хакерські» мови програмування (2001)

Пол Грем про Java та «хакерські» мови програмування (2001)

Це есе стало розвитком бесід із кількома розробниками на тему упередженого ставлення до Java. Це не критика Java, а скоріше наочний приклад «хакерського радара».

Згодом, хакери розвивають нюх на хороші або погані технології. Вважаю, може виявитися цікавим спробувати викласти причини, з яких Java здається мені сумнівною.

Хтось із тих, хто прочитав, розцінював це як заслуговувальну увагу спробу написати про щось, про що раніше ніхто не писав. Інші ж застерігали, що я пишу про речі, в яких нічого не тямлю. Тож про всяк випадок, хотів би уточнити, що я пишу не про Java (з якою я ніколи не працював), а про «хакерський радар» (про який багато міркував).

Вираз «не судіть книгу по обкладинці» виник за часів, коли книжки продавалися в чистих картонних обкладинках, які покупець переплітав на свій смак. У ті дні ви нічого не могли сказати про книгу з її обкладинки. З того часу, однак, видавнича справа сильно просунулась, і сучасні видавці докладають чимало зусиль, щоб обкладинка могла сказати багато про що.

Я провів чимало часу в книгарнях, і гадаю, навчився розуміти все, що хочуть сказати мені видавці, а можливо, ще дещо. Більшу частину часу, яку я проводив поза книжковими магазинами, я провів перед екранами комп'ютерів, і вважаю, навчився, якоюсь мірою, судити про технології з їхніх обкладинок. Це може бути сліпим успіхом, але мені вдалося уникнути кількох технологій, які виявилися по-справжньому поганими.

Однією з таких технологій виявилася для мене Java. Я не написав жодної програми на Java, і обмежився лише поверховим вивченням документації, проте я маю почуття, що їй не судилося стати занадто успішною мовою. Я можу помилитись — робити передбачення про технології небезпечну справу. Проте своєрідне свідчення епохи — ось чому мені не подобається Java:

  1. Надмірний ентузіазм. Ці стандарти не потрібно нав'язувати. Ніхто не намагався просувати C, Unix чи HTML. Справжні стандарти встановлюються задовго до того, як більшість людей про них почує. На радарі хакера Perl виглядає не менше Java завдяки винятково своїм перевагам.
  2. Java мітить невисоко. В оригінальному описі Java, Гослінг прямо говорить, що Java була створена, щоб не викликати труднощів у програмістів, які звикли до Сі. Вона була розроблена, щоб стати черговим C++: З кількома ідеями, запозиченими з більш розвинених мов. Як творці ситкомів, фастфуду чи туристичних турів — творці Java усвідомлено розробляли продукт для людей, не настільки розумних, як вони самі. Історично, мови, розроблювані використання інших людьми, виявлялися невдалими: Кобол, PL/1, Паскаль, Ада, C++. Вдалими, проте, виявлялися ті, які розробляли собі: C, Perl, Smalltalk, Lisp.
  3. Приховані мотиви. Хтось одного разу сказав, що світ був би найкращим місцем, якби люди писали книги лише тоді, коли вони мали б що сказати, замість того, щоб писати тоді, коли їм хочеться написати книгу. Аналогічно, причина, через яку ми постійно чуємо про Java не в тому, що нам намагаються повідомити щось про мови програмування. Ми чуємо про Java як про частину плану Sun проти Microsoft.
  4. Ніхто її не любить. Програмісти C, Perl, Python, Smalltalk або Lisp закохані у свої мови. Я ніколи не чув, щоб хтось освідчувався в любові до Java.
  5. Люди змушені використати її. Багато хто з тих, кого я знаю і хто використовує Java, роблять це за потребою. Вони вважають, що це дозволить їм отримати фінансування, або думають, що це сподобається клієнтам або це рішення менеджменту. Це розумні люди; якби технологія була б гарною, вони використовували б її добровільно.
  6. Це страва багатьох кухарів. Найкращі мови програмування розробили маленькими колективами. Java керується комітетом. Якщо вона виявиться вдалою мовою, це буде вперше в історії, коли комітет створить таку мову.
  7. Вона бюрократична. З того небагато, що я знаю про Java, складається враження, що існує безліч протоколів для того, щоб зробити щось. По-справжньому добрі мови не такі. Вони дозволяють робити вам будь-що і не стоять у вас на шляху.
  8. Штучний галас. Зараз Sun намагається вдати, що Java управляється спільнотою, що це відкритий проект, як Perl або Python. Проте розвиток контролюється величезною компанією. Так що мова ризикує виявитися таким же похмурим убожеством, що і все, що виходить з надр великої компанії.
  9. Вона створена великих організацій. Великі компанії мають різні цілі з хакерами. Компаніям потрібні мови, які мають репутацію придатних для великих команд середніх програмістів. Мови з характеристиками на зразок обмежувачів швидкості на вантажівках U-Haul, що застерігають дурнів від заподіяння занадто великої шкоди. Хакери не люблять мови, які говорять з ними зверхньо. Хакерам потрібна міць. Історично мови, створені для великих організацій (PL/1, Ada) програвали, тоді як мови, створені хакерами (C, Perl) вигравали. Причина: сьогоднішній малолітній хакер – завтрашній CTO.
  10. Вона подобається не тим людям. Програмісти, якими я найбільше захоплююсь, загалом не в захваті від Java. Кому вона до вподоби? Костюм, тим, хто не бачить різниці між мовами, але постійно чує про Java в пресі; програмісти у великих компаніях, захоплені ідеєю знайти щось найкраще, ніж навіть C++; всеїдні переддипломники, яким сподобається все, що дозволить їм отримати роботу (або виявиться на іспиті). Думка цих людей змінюється від напряму вітру.
  11. У її батька важкі часи. Бізнес модель Sun атакується із двох фронтів. Дешеві процесори Intel, що використовуються в настільних комп'ютерах, стали досить швидкими і для серверів. І FreeBSD, схоже, стає такою самою гарною ОС для серверів, як і Solaris. У своїй рекламі Sun має на увазі, що вам знадобляться сервери Sun для програм промислового рівня. Якби це було правдою, Yahoo першим би зайняв чергу, щоб купити Sun. Але коли я там працював, там використовувалися сервери на Intel і FreeBSD. Це обіцяє похмуре майбутнє Sun. І якщо Sun піде вниз, неприємності можу потягнути на дно та Java.
  12. Кохання Міністерства Оборони. Міністерство оборони заохочує використання Java розробниками. І це виглядає як найгірший знак із усіх. Міністерство Оборони виконує чудову (хоча й недешеву) роботу із захисту країни, вони обожнюють плани, процедури та протоколи. Їхня культура повністю протилежна хакерській; у питаннях програмного забезпечення вони схильні робити неправильні ставки. Останньою мовою програмування, яку закохалося Міністерство Оборони, була Ada.

Врахуйте, це не критика Java, але критика її обкладинки. Я не знаю Java досить добре, щоб вона мені подобалася або не подобалася. Я лише намагаюся пояснити, чому не прагну вивчати Java.

Відкидати мову, навіть не спробувавши програмувати нею може здатися поспішним. Але це те, що доводиться всім програмістам. Технологій занадто багато, щоб вивчити їх усі. Доводиться навчитися судити за зовнішніми ознаками, чи коштуватиме воно вашого часу. З такою самою поспішністю я відкинув Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, протокол SET, VMS, Novell Netware та CORBA – крім інших. Вони просто не сподобалися.

Можливо, у випадку Java я помиляюсь. Можливо, мова, що просувається однією великою компанією з метою протиборства з іншою, розроблена комітетом для основної маси, з роздутим до небес галасом і улюблена Міністерством Оборони тим не менш, виявиться охайною, красивою і потужною мовою, якою я програмуватиму з радістю. Можливо. Але дуже сумнівно.

За переклад спасибі: Denis Mitropolsky

PS

Джерело: habr.com

Додати коментар або відгук