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-ның тәүге аҡ китабында Гослинг, 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 кеүек үк яҡшы операция системаһы булып тора. Sun-дың рекламаһы, сәнәғәт кимәлендәге ҡушымталар өсөн һеҙгә мотлаҡ Sun серверҙары кәрәк, тип ишара яһай. Әгәр был дөрөҫ булһа, Yahoo Sun-ды һатып алыу өсөн сиратта беренсе булыр ине; әммә мин унда эшләгәндә, серверҙарҙың барыһы ла FreeBSD эшләгән Intel машиналары ине. Был Sun-дың киләсәге өсөн яҡшылыҡ вәғәҙә итмәй. Әгәр Sun ҡыйынлыҡтарға осраһа, улар Java-ны ла үҙҙәре менән бергә төпкә һөйрәй ала.

12. Ул DoD-ҡа (АҠШ Оборона министрлығына) оҡшай. Оборона министрлығы эшләүселәрҙе Java-ны ҡулланырға дәртләндерә. Был миңә иң шикле, фажиғәле билдә булып тойола. Оборона министрлығы илде һаҡлау буйынса яҡшы (ҡиммәт булһа ла) эш башҡара, әммә улар пландарҙы, процедураларҙы һәм протоколдарҙы үлеп ярата. Уларҙың мәҙәниәте — хакерҙар мәҙәниәтенең ҡапма-ҡаршыһы; программа тәьминәте мәсьәләләрендә улар ғәҙәттә яңылыш яҡҡа өҫтөнлөк бирәсәк. DoD-ҡа ысынлап оҡшаған һуңғы программалау теле Ada булғайны.

Онотмағыҙ, был Java-ны тәнҡитләү түгел, ә уның тышлығын тәнҡитләү. Мин Java-ны яратыр йәки яратмаҫлыҡ кимәлдә яҡшы белмәйем. Был бары тик ни өсөн уны өйрәнергә атлығып тормауымды аңлатыу ғына.

Телдә берәй программа яҙып ҡарамай тороп уны кире ҡағыу еңел-елпелек кеүек күренергә мөмкин. Әммә быны бөтә программалаусылар ҙа эшләргә мәжбүр. Барлыҡ технологияларҙы өйрәнеп бөтөү өсөн улар сиктән тыш күп. Тышҡы билдәләренә ҡарап, ҡайһыһы һеҙҙең ваҡытығыҙға лайыҡ икәнен аңларға өйрәнергә кәрәк. Мин шулай уҡ бер һүҙһеҙ Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET протоколын, VMS, Novell Netware һәм CORBA-ны, башҡалар араһында, кире ҡаҡтым. Уларҙан насар еҫ килә ине.

Java осрағында мин яңылышамдыр ҙа, бәлки. Бер ҙур компания икенсеһен ҡаҡшатыу өсөн алға этәргән, комитет тарафынан «киң ҡатлам» аудитория өсөн эшләнгән, күктәргә сөйөп маҡталған һәм Оборона министрлығының һөйөклөһөнә әйләнгән телдең, шуға ҡарамаҫтан, мин ҡулланып рәхәтләнеп яҙырлыҡ таҙа, матур һәм ҡеүәтле тел булып сығыуы ихтимал. Бәлки, шулайҙыр, әммә был бик икеле күренә.