[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