[mdk-re] The Never-ending Thread
Mikhail Zabaluev
=?iso-8859-1?q?mookid_=CE=C1_sigent=2Eru?=
Пн Янв 22 14:36:07 MSK 2001
Hello Maksim,
On Fri, Jan 19, 2001 at 14:23 +0300, Maksim Otstavnov wrote:
>
> Все же поясню.
>
> Предположим, вы разрабатываете какую-то интерактивную программу в
> обозначенной парадигме. Вы подумали, помоделировали, может быть,
> поэкспериментировали с кодом, и определили удачный уровень абстракции
> для интерфейсных команд (функций).
>
> Допустим, вы пишете текстовый редактор, и разработали язык, включающий
> команды OpenFile(string file), CloseFile, MoveCursor(int n),
> InsertChar(char c), DeleteChar, функции Boolean eof() и char
> currentChar().
>
> (Доказательство теоремы о том, что это исчерпывающий набор для
> текстового редактора, опускаю).
>
> Допустим, вы написали прототип, который а) работает как поточный
> редактор, запущенный в одном окне, и б) (факультативно) осуществляет
> пошаговый рендеринг результатов редактирования в окне.
>
> Теперь, до того, как добавлять третье окно, в котором будут элементы
> GUI, нужно определить одну "мелочь". А именно, дополнить набор
> элементов языка, имеющих семантику текстового редактирования, другими
> элементами, которые и сделают его "правильным" в смысле [ПСВ].
> Синтаксисом определения переменных, управляющих конструкций и т.п.
> ерундой. Всего-то.
>
> Теперь, смотрите, что делают разработчики. Столмен говорит: ага, есть
> такой язык ЛИСП, я его знаю и люблю, давайте-ка его интерпретатор
> засунем прямо в редактор. В MS ребята еще попроще, ЛИСП превышает
> предел их компетентности, поэтому говорят: а мы засунем бейсик, чтоб
> юзеру жизнь медом не казалась. Адаптируют свой бейсик-интерпретатор
> образца 81 г. (vb у них еще не было) и засовывают в Word,
> предварительно позаботившись о несовместимости. Ребята из StarDivision
> говорят: ага, а мы чем хуже, и придумывают свой StarBasic, или как он
> у них там называется...
>
> Вместе с тем, если вернуться от этого буйства фантазии к твердой почве
> проверенных и зрелых технологий, можно сообразить: а ведь у нас уже
> есть основа универсального языка: системный шелл. Осталось добавить в
> него ключ, отменяющий "исполнение" команд (задайте Кену вопрос,
> если кто-то с ним знаком, что такое "исполнение", ;) и откуда взялась
> в шелле абстракция системных вызовов, и почему шелл не является просто
> препроцессором к рапперу системного вызова "исполнить") и направляющий
> "команды" на стандартный вывод. Преимущества:
>
> - шелл _уже есть_, его не нужно писать - и это основное преимущество;
>
> - шелл _все знают_, его не придется учить - и это чуть ли не более
> важное преимущество;
>
> - это достаточно изящно.
По-моему, недостаточно - нет namespaces и исключительных ситуаций. Вот
python будет в самый раз. Жаль, что его мало кто знает.
А чем все-таки плохо решение на Java, кроме требований к ресурсам?
jEdit легко расширяется на Java, скриптуется на мэйнстримовом для Java
языке BeanShell, и я даже собирал JNI-расширение для работы с X clipboard.
--
Stay tuned,
MhZ mailto:mookid на sigent.ru
-----------
For most men life is a search for the proper manila envelope in which to
get themselves filed.
-- Clifton Fadiman
Подробная информация о списке рассылки community