Re: Редактор acme: пишем почтовый клиент

[std.hugeping] Thu Oct 14 04:29:39 UTC 2021 @Andrew Lobanov -> vvs

vvs> Так ведь почему кому-то нравится Emacs? Причины могут быть разные, но я назову одну: Emacs - это интерфейс к elisp. Есть стремление всё делать средствами одного языка. А ACME - это ведь не язык, а чистый интерфейс и предполагает использование дополнительных средств. С точки зрения языка высокого уровня выгоднее вообще не использовать лишние концепции, такие как ОС. Как емаксер со стажем, люблю емакс по куче причин. Во-первых, лисп. Я обожаю лисп и ничего не могу с этим поделать. Во-вторых: это классный текстовый интерфейс а-ля Genera только текстовый. А ещё его можно хачить хоть до посинения. Это отдельный кайф. vvs> Есть такая тенденция языковой среды, когда начинается с языка и постепенно переходит к решению его средствами любых задач, включая построение интерфейсов. В Web - это, наверное, JavaScript из которого выросла целая платформа Node.js. То же самое наблюдается в Python, OCaml, Haskell и т.д. Дайте программисту Тьюринг-полный язык и он рано или поздно напишет на нём всё. vvs> Когда-то в Xerox из этого придумали целую парадигму ОО программирования в стиле Smalltalk (сильно отличающаяся от Simula 67/C++), где вся среда исполнения и интерфейс - это Smalltalk и пользователь меняет эту среду прямо из языка в реальном времени, избегая цикла компиляция-линкование-запуск. До него что-то похожее делали на Lisp, откуда и родился в итоге Emacs. Smalltalk это была действительно крутая концепция. Правда я до сих пор не представляю как можно пользоваться огромной объектной штукой, когда всё мутабельно. Но я особо и не вникал. Так, по верхам pharo тыкал. Кстати, у меня он на старте чистого образа ругается, начиная с 8 версии. Досадно. vvs> Концепции же Unix, в целом, довольно низкоуровневые. Кстати, идея ACME пришла из языка Oberon Н.Вирта. А где можно почитать поподробнее? Я про оберон читал, но что-то поверхностное. И про язык и про систему. Интересуют, конечно, обе штуки. +++ Caesium/0.4 RC1

copyleft 2021 difrex at lessmore dot pw; source code