pg.gimran.org

Біртүрлі тілдер

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

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

Translation of Paul Graham's essay 'Weird Languages'. Original: https://paulgraham.com/weird.html. Machine translation (Gemini).

Адамдар өз тәжірибесінде барлық бағдарламалау тілдері негізінен бірдей деп айтқанда, олар тілдер туралы емес, өздері айналысқан бағдарламалау түрі туралы айтып тұр.

Бағдарламалаудың 99,5%-ы кітапхана функцияларын шақыруларды бір-біріне жалғастырудан тұрады. Барлық танымал тілдер мұны бірдей жақсы орындайды. Сондықтан адам бүкіл мансабын танымал бағдарламалау тілдерінің қиылысында өткізе алады.

Бірақ бағдарламалаудың қалған 0,5%-ы айрықша қызықты. Егер оның неден тұратынын білгіңіз келсе, біртүрлі тілдердің біртүрлілігі — соңынан еруге тұрарлық жақсы белгі.

Біртүрлі тілдер кездейсоқ біртүрлі болып қалған жоқ. Әйтеуір жақсылары олай емес. Жақсыларының біртүрлілігі, әдетте, кітапхана шақыруларын жай ғана жалғастырудан өзгеше бағдарламалаудың қандай да бір түрі бар екенін аңғартады.

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

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

Осының нобайын оқып шыққандары үшін Тревор Блэквеллге (Trevor Blackwell), Патрик Коллисонға (Patrick Collison), Дэниел Гаклге (Daniel Gackle), Амджад Масадқа (Amjad Masad) және Роберт Морриске (Robert Morris) алғыс білдіремін.