pg.gimran.org

Java тышлыгы

Апрель 2001 · Барлык эсселар

Пол Грэмның «Java тышлыгы» эссесы тәрҗемәсе. Төп нөсхә: https://paulgraham.com/javacover.html. Машина тәрҗемәсе (Gemini).

Translation of Paul Graham's essay 'Java's Cover'. Original: https://paulgraham.com/javacover.html. Machine translation (Gemini).

Бу эссе башка берничә программист белән Java'ның ни өчен шикле күренүе турында сөйләшүләремнән туды. Бу Java тәнкыйте түгел! Бу — хакер радары үрнәген тикшерү.

Вакыт узу белән, хакерлар яхшы (һәм начар) технологияне сизү сәләтен үстерә. Java'ның ни өчен миңа шикле тоелуын теркәп куярга тырышу кызык булыр дип уйладым.

Монны укыган кайбер кешеләр моны элек беркем дә язмаган нәрсә турында язарга кызыклы омтылыш дип саный. Башкалар исә үзем аңламаган нәрсәләр турында язган кебек күренгәнгә күрә бәлагә тарырмын ди. Шуңа күрә, файдасы тимәгәй дип, ачыклык кертим: мин монда Java турында түгел (мин аны беркайчан да кулланмадым), ә хакер радары турында язам (бу турыда мин күп уйландым).

«Китапны тышлыгына карап хөкем итмиләр» дигән афоризм китаплар һәр сатып алучы үз зәвыгы буенча төпли алсын өчен гади картон тышлыкта сатылган чорлардан калган. Ул көннәрдә китапны тышлыгына карап бәяләп булмый иде. Ләкин нәшрият эше шул вакыттан бирле алга китте: хәзерге нәширләр тышлыкны китапның нинди икәнен күрсәтерлек итеп ясарга күп көч куялар.

Мин китап кибетләрендә күп вакыт уздырам һәм нәширләр китап турында миңа ни әйтергә теләгәнен, хәтта, бәлки, бераз артыгын да аңларга өйрәндем шикелле. Китап кибетләрендә узмаган вакытымны мин күбесенчә санак каршында үткәрдем, һәм технологияне дә тышлыгына карап ниндидер дәрәҗәдә бәяләргә өйрәндем кебек тоела. Бәлки, бу бары тик уңыш кынадыр, ләкин мин үземне чын начар булып чыккан берничә технологиядән коткарып калдым.

Әлегә Java миңа начар технология булып тоела. Мин беркайчан да Java'да программа язмадым, аның турында белешмәлекләргә күз салганым гына бар, ләкин ул бик уңышлы тел булмас кебек тоела. Мин ялгышырга да мөмкинмен; технология турында фаразлар ясау — хәтәр эш. Ләкин ничек кенә булмасын, бер төрле заман капсуласы буларак, менә ни өчен Java'ның тышкы кыяфәте миңа ошамый:

1. Аны бик нык шау-шу кузгатып таныттылар. Чын стандартларны рекламаларга кирәкми. C, яки Unix, яки HTML телләрен беркемгә дә көчләп танытырга кирәк булмады. Чын стандарт күпчелек кеше аның турында ишеткәнче үк гадәттә урнашкан була инде. Хакер радары экранында Perl үз өстенлекләре көче аркасында гына да Java кебек үк зур, хәтта зуррак та.

2. Ул түбән дәрәҗәгә юнәлтелгән. Төп Java white paper документында Gosling ачыктан-ачык Java'ның C теленә ияләнгән программистлар өчен артык катлаулы булмаслык итеп эшләнгән булуын әйтә. Ул тагын бер C++ булырга тиеш иде: C һәм алдынгырак телләрдән алынган берничә фикер. Ситкомнар яки зарарлы ризык (фастфуд) яисә турпакетлар ясаучылар кебек, Java'ны эшләүчеләр үзләреннән акыллырак булмаган кешеләр өчен продуктны аңлы рәвештә проектлаштырганнар. Тарихи яктан караганда, башка кешеләр куллансын өчен эшләнгән телләр начар булды: Cobol, PL/I, Pascal, Ada, 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/I, Ada) оттырды, ә хакер телләре (C, Perl) җиңде. Сәбәбе: бүгенге яшүсмер хакер — иртәгәге CTO.

10. Ул дөрес булмаган кешеләргә ошый. Мин иң сокланган программистлар тулаем алганда Java белән сокланмый. Java кемгә ошый соң? Бер телне икенчесеннән аера белмәгән, ләкин матбугатта Java турында ишетеп торган «костюмлыларга» (чиновникларга); C++ теленнән дә яхшырак нәрсә барлыгын күреп шаккаткан эре компанияләр программистларына; һәм эшкә урнашуга ярдәм итәрлек теләсә нәрсәне яратырга әзер булган калып буенча эшләүче студентларга («бу имтиханда булачакмы?»). Бу кешеләрнең фикере һәр җил искән саен үзгәрә.

11. Аның «атасы» авыр хәлдә. Sun бизнес-моделе ике фронтта какшый. Эш өстәле машиналарында кулланыла торган арзан Intel процессорлары хәзер серверлар өчен дә җитәрлек тизлектә эшли. Һәм FreeBSD серверлар өчен ким дигәндә Solaris кадәр яхшы OS булып тора. Sun рекламасы сәнәгать куәтендәге кушымталар өчен Sun серверлары кирәк дип күрсәтә. Әгәр бу дөрес булса, Yahoo иң беренче булып Sun сатып алыр иде; ләкин мин анда эшләгәндә, серверлар барысы да FreeBSD эшләтүче Intel машиналары иде. Бу Sun киләчәге өчен начар билге. Әгәр Sun авырлыкка очраса, алар Java'ны да үзләре белән төпкә сөйрәргә мөмкин.

12. Аны Саклану министрлыгы (DoD) ярата. Саклану министрлыгы уйлап табучыларны Java кулланырга өнди. Бу миңа иң фаҗигале билге кебек тоела. Саклану министрлыгы илне саклау буенча яхшы (кыйммәт булса да) эш башкара, ләкин алар планнар, процедуралар һәм протоколлар ярата. Аларның мәдәнияте — хакер мәдәниятенә капма-каршы; программа тәэминаты мәсьәләләрендә алар гадәттә ялгыш сайлау ясыйлар. Саклану министрлыгына программалаштыру теле чыннан да ошаган соңгы очрак Ada иде.

Истә тотыгыз, бу Java тәнкыйте түгел, ә аның тышлыгын тәнкыйтьләү. Мин Java'ны ошатыр яки ошатмас дәрәҗәдә яхшы белмим. Бу бары тик ни өчен минем аны өйрәнүгә бернинди теләгем булмавын аңлату гына.

Берәр телдә программалар язып та карамыйча аны кире кагу җиңел акыллылык кебек күренергә мөмкин. Ләкин моны бөтен программистлар да эшләргә тиеш. Барысын да өйрәнү өчен технологияләр чиктән тыш күп. Тышкы билгеләргә карап, кайсысы синең вакытыңа лаек булачагын хөкем итәргә өйрәнергә кирәк. Мин шулай ук үз вакытында берсүзсез Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET протоколын, VMS, Novell Netware һәм CORBA кебекләрне кире кактым. Алар бары шикле тоелды.

Java очрагында мин ялгышамдыр, бәлки. Бер зур компания икенчесен җиңәр өчен алга сөргән, «киң катлам» аудитория өчен комитет тарафыннан проектланган, күкләргә чөеп макталган һәм Саклану министрлыгы яраткан тел барыбер дә чиста, матур, көчле һәм миңа анда программа язу ошаячак тел булып чыгуы да мөмкин. Мөмкин, ләкин бу бик шикле күренә.