[mdk-re] Logo for kernel

Maksim Otstavnov =?iso-8859-1?q?maksim_=CE=C1_otstavnov=2Ecom?=
Пт Янв 19 14:24:01 MSK 2001


Friday, January 19, 2001, 1:21:05 AM, Mikhail Zabaluev wrote:

>> Обратите внимание, что все это существует по отдельности. Ни один из
>> десктопов (ни MacOS'овский, ни винды, ни GNOME с KDE) не смог сожрать
>> это все. Так что простор для творчества еще есть ;)

MZ> Хотите крутой во всех отношениях редактор с memory footprint'ом мегов на
MZ> 50? http://jedit.sourceforge.net

Речь шла о дестопах, а не о конкретных программах. Черт с ним, с
Джейэдитом. См. соображения о RAD в Пресловутой Статье Вагнера (далее
- [ПСВ]. См. тж. мой предыдущий вопрос о меташелле. Я писал:

MZ> У меня по ходу дела возник совершенно чайницкий вопрос: а нельзя ли
MZ> шелл использовать как меташелл? Т.е. заставить его не выполнять
MZ> результирующий поток команд, а гнать их в трубу или сокет? (Почему
MZ> возник такой вопрос, я думаю, понятно? :) ).

Все же поясню.

Предположим, вы разрабатываете какую-то интерактивную программу в
обозначенной парадигме. Вы подумали, помоделировали, может быть,
поэкспериментировали с кодом, и определили удачный уровень абстракции
для интерфейсных команд (функций).

Допустим, вы пишете текстовый редактор, и разработали язык, включающий
команды OpenFile(string file), CloseFile, MoveCursor(int n),
InsertChar(char c), DeleteChar, функции Boolean eof() и char
currentChar().

(Доказательство теоремы о том, что это исчерпывающий набор для
текстового редактора, опускаю).

Допустим, вы написали прототип, который а) работает как поточный
редактор, запущенный в одном окне, и б) (факультативно) осуществляет
пошаговый рендеринг результатов редактирования в окне.

Теперь, до того, как добавлять третье окно, в котором будут элементы
GUI, нужно определить одну "мелочь". А именно, дополнить набор
элементов языка, имеющих семантику текстового редактирования, другими
элементами, которые и сделают его "правильным" в смысле [ПСВ].
Синтаксисом определения переменных, управляющих конструкций и т.п.
ерундой. Всего-то.

Теперь, смотрите, что делают разработчики. Столмен говорит: ага, есть
такой язык ЛИСП, я его знаю и люблю, давайте-ка его интерпретатор
засунем прямо в редактор. В MS ребята еще попроще, ЛИСП превышает
предел их компетентности, поэтому говорят: а мы засунем бейсик, чтоб
юзеру жизнь медом не казалась. Адаптируют свой бейсик-интерпретатор
образца 81 г. (vb у них еще не было) и засовывают в Word,
предварительно позаботившись о несовместимости. Ребята из StarDivision
говорят: ага, а мы чем хуже, и придумывают свой StarBasic, или как он
у них там называется...

Вместе с тем, если вернуться от этого буйства фантазии к твердой почве
проверенных и зрелых технологий, можно сообразить: а ведь у нас уже
есть основа универсального языка: системный шелл. Осталось добавить в
него ключ, отменяющий "исполнение" команд (задайте Кену вопрос,
если кто-то с ним знаком, что такое "исполнение", ;) и откуда взялась
в шелле абстракция системных вызовов, и почему шелл не является просто
препроцессором к рапперу системного вызова "исполнить") и направляющий
"команды" на стандартный вывод. Преимущества:

- шелл _уже есть_, его не нужно писать - и это основное преимущество;

- шелл _все знают_, его не придется учить - и это чуть ли не более
  важное преимущество;

- это достаточно изящно.

-- 
-- Maksim






Подробная информация о списке рассылки community