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-інде Гослинг 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 серверлері қажет екенін меңзейді. Егер бұл рас болса, Sun серверлерін сатып алу кезегінде бірінші болып Yahoo тұрар еді; бірақ мен онда жұмыс істеген кезде, барлық серверлер 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 мәселесінде менің қателесуім де әбден мүмкін. Бір үлкен компания басқасын құлату үшін алға сүйреген, көпшілікке арналып комитетпен жасалған, жер-көкке сыйғызбай мақталған және Қорғаныс министрлігінің сүйіктісіне айналған бұл тілдің соған қарамастан таза, әдемі, қуатты және мен бағдарлама жазудан ләззат алатын тіл болып шығуы да мүмкін. Солай болуы да мүмкін, бірақ бұл өте екіталай болып көрінеді.