pg.gimran.org

Python парадоксы

Тамыз 2004 · Барлық эсселер

Пол Грэмнің «Python парадоксы» эссесінің аудармасы. Түпнұсқа: https://paulgraham.com/pypar.html. Машиналық аударма (Gemini).

Translation of Paul Graham's essay 'The Python Paradox'. Original: https://paulgraham.com/pypar.html. Machine translation (Gemini).

Жақында ғана жасаған бір баяндамамда мен көпшіліктің шамына тиген бір ой айттым: Java жобасына қарағанда Python жобасына әлдеқайда ақылды бағдарламашыларды табуға болады.

Бұл сөзіммен мен Java бағдарламашыларын ақымақ дегім келген жоқ. Мен Python бағдарламашылары ақылдырақ дегім келді. Жаңа бағдарламалау тілін үйрену — оңай шаруа емес. Ал адамдар Python-ды оларға жұмыс тауып беретіндіктен емес, бағдарламалауды шын мәнінде жақсы көретіндіктен және бұған дейін білетін тілдері көңілдерінен шықпағандықтан үйренеді.

Сондықтан олар дәл компаниялар жұмысқа алғысы келетіндей бағдарламашылар болып табылады. Осыдан келіп, одан жақсырақ атау таппағандықтан, мен «Python парадоксы» деп атайтын құбылыс туындайды: егер компания өз бағдарламалық жасақтамасын салыстырмалы түрде эзотерикалық (сирек) тілде жазуды таңдаса, олар жақсырақ бағдарламашыларды жалдай алады, өйткені олар тек осы тілді үйренуге құлшынысы жеткендерді ғана тартады. Ал бағдарламашылар үшін бұл парадокс тіпті айқынырақ: егер жақсы жұмысқа орналасқыңыз келсе, үйренуге тиіс тіл — бұл адамдар жай ғана жұмыс табу үшін үйренбейтін тіл.

Әзірге мұны түсінетіндей санаулы ғана компанияның ақылы жетті. Бірақ мұнда да өзіндік бір сұрыптау жүріп жатыр: олар дәл бағдарламашылардың өздері жұмыс істегісі келетін компаниялар болып шығады. Мысалы, Google. Олар Java бағдарламашыларына арналған бос орындар туралы хабарландыру бергенде, сонымен бірге Python тәжірибесін де талап етеді.

Көп қолданылатын тілдердің барлығын дерлік білетін менің бір досым жобаларының көпшілігінде Python-ды пайдаланады. Оның айтуынша, басты себеп — бастапқы кодтың сыртқы түрінің оған ұнайтындығында. Бір тілді екіншісінен артық көру үшін бұл жеңілтек себеп болып көрінуі мүмкін. Бірақ бұл сырт көзге көрінетіндей соншалықты жеңілтек емес: сіз бағдарламалаған кезде кодты жазудан гөрі, оны оқуға көбірек уақыт жұмсайсыз. Сіз мүсіншінің саз кесектерін илегені сияқты, бастапқы код кесектерін ары-бері жылжытасыз. Сондықтан бастапқы кодты сүйкімсіз ететін тіл, дәл түйіршіктері көп саз мүсіншінің жүйкесіне тиетіндей, талғампаз бағдарламашының да ызасын келтіреді.

Сүйкімсіз бастапқы код туралы сөз қозғалғанда, адамдар әрине Perl-ді еске алады. Бірақ Perl-дің үстірт сүйкімсіздігі — мен айтып отырған нәрсе емес. Нағыз сүйкімсіздік — көріксіз синтаксис емес, бағдарламаларды қате тұжырымдамалардан құрастыруға мәжбүр болу. Perl мультфильм кейіпкерінің былапыт балағаттағаны сияқты көрінуі мүмкін, бірақ оның тұжырымдамалық тұрғыдан Python-нан асып түсетін жағдайлары бар.

Әйтеуір әзірге солай. Қос тіл де, әрине, қозғалыстағы нысаналар болып табылады. Бірақ олар Ruby (және Icon, Joy, J, Lisp, әрі Smalltalk) сияқты тілдермен бірге, бағдарламалауды шын мәнінде жақсы көретін адамдар тарапынан жасалып, солардың тарапынан қолданылатындығымен ортақ. Ал ондай адамдар, әдетте, бұл істі жақсы жасайтындар болып келеді.