std.hugeping: Блог Петра Косых

Ответ на: S4sJA2iZYo83k8ZnpjEX
От: vvs (ping,12) 14.10.21 12:25 UTC
Кому: hugeping
Тема: Re: Редактор acme: пишем почтовый клиент
Если кого-нибудь интересует практическая информация по языкам программирования, то проще начинать с википедии. Конкретно по Оберону там упоминается пару порталов на русском:

https://oberon.org/ru
https://oberoncore.ru/library/start

Я сам запускал Оберон лет двадцать назад. Меня тогда поразил его визуальный интерфейс. Когда гораздо позже я увидел ACME, то сразу вспомнил об Обероне. Поискав информацию убедился, что Пайк действительно позаимствовал идею оттуда. Помню, что тогда там не было никакой системы управления версиями и я качал исходники Оберона поштучно в браузере. Они даже должны у меня где-то до сих пор валяться. Но других интересных языков было много, поэтому именно Оберону я уделил мало внимания и до чтения литературы даже не добрался.

Lisp и Smalltalk - это отдельная песня. По ним я даже прочитал учебную литературу. Начинал с GNU Smalltalk, потом сразу перешёл на Squeek. Его пытался использовать на практике, в качестве рабочей системы. Пробовал разобраться с его виртуальной машиной, но меня отпугнула жутко запутанная система её построения. Еще у Smalltalk очень специфичная система управления версиями, в которой ведётся разработка. Поддержка Git там появилась только недавно и тоже довольно непривычная. Насколько я понял, Squeek больше ориентирован именно на конечного пользователя, чем Pharo. В своё время я постепенно переходил с Windows 98 на RedHat Linux несколько лет, когда использовал их параллельно и это был непростой опыт. На Smalltalk же перейти так и не удалось - не хватило мотивации и дальше отдельных экспериментов дело не пошло. Сейчас же я сижу на NixOS и там пока нет поддержки Squeek 5.x.

Тогда меня интересовали чисто инженерные аспекты компьютерных наук. Сейчас же меня интересует, в основном, логика и теория формальных языков, да и то не как самоцель, а как средство более глубокого понимания других наук, которые можно на них формулировать. Так что мне сейчас интересней устройство компиляторов, а не их практическое использование. Впрочем, исключение составляют языки с зависимыми типами, такие как Coq, Lean или Agda. На них можно формализовывать различные математические теории и доказывать теоремы, что мне и нужно. Так что в данный момент штудирую теоретическую литературу, коей хватит на несколько лет, а временами решаю задачки по логике, что лучше любой игры. На эксперименты с другими языками времени уже не остаётся - это всё больше в прошлом.


P.S. Кстати, Lean использует Emacs или VSCode в качестве интерфейса пользователя. В отличие от многих других языков, здесь это не просто удобство, а совершенно необходимая часть взаимодействия с языком.
[407 / 443]