Re[18]: КОП в linux
От: Андрей Хропов Россия  
Дата: 23.06.06 19:30
Оценка:
Здравствуйте, Kolhoz, Вы писали:

АХ>>то что вы пишете в Unix как

АХ>>"ls | more"
АХ>>можно записать как (условно)
АХ>>"File result = more.Process( ls.Process(input) )".
АХ>>more и ls некие компоненты.

АХ>>Чуть больше слов, но суть та же.


K> Не та же. Я не могу между more и ls вставить в этой модели ничего (sort, например).

Почему?
"File result = more.Process( sort.Process( ls.Process(input) ) )"
Как я уже говорил, на мой взгляд вся эта работа через каналы — частный случай КОП.

K>>> Дао Unix way:

K>>>- на каждую функциональную единицу — отдельный компонент
АХ>>Правильно — в любой компонентной системе так.

K> Не в любой. В объектных моделях для этого функциональная единица должна совпадать с объектом. А это не всегда возможно. Скорее, это почти никогда не возможно — объектная иерархия редко совпадает с семантической.

Почему это она не должна совпадать с семантической?

K>>>- к компоненту предъявляются требования:

K>>> * возможность как программного так и интерактивного задействования всех его функций.
АХ>>Правильно. Так как вы там интерактивность в Unix way обеспечиваете?

K> Не понял вопроса. Легко и непринуждённо обеспечиваем.

Ну и как вы будете игру (не многопользовательскую, а самую обычную) писать через Unix way?

K>>> * корректное сообщение о любых исключительных ситуациях

АХ>>Сообщение мало. Надо еще данные не убить по возможности.
АХ>>Без поддержки исключений обработка ошибок — это геморрой жуткий.
АХ>>Я уж не говорю про RAII. А это предполагает ОО.

K> ОО тут совершенно не при делах...

Аргументируй.

АХ>>Эээ. Вот тут мне видится фундаментальный изъян.

АХ>>Дело в том что для того чтобы вставить на вход одного компонента выхлоп из другого нужно чтобы у них были совместимы интерфейсы, т.е. передаваемая информация была в одном формате,
АХ>>в unix way используется наименьший общий знаменатель — простой текст.

K> Не обязательно. Не нужна совместимость, на самом деле.

Как это так? Подаем ASCII а программа хочет Unicode и привет!

АХ>>Вот LaTeX — это Unix way?

АХ>>в цепочке "latex -> dvips -> ps2pdf" ты можешь вставить (точнее, смысл есть?) между dvips и ps2pdf grep?

K> Могу, и как правило вставляю (psnup, ps2ps, мелкие самописные пошкрип-фильтры). Смысла много — postscript обрабатывать весело, легко и просто, буклетик там из него сшить, водяные знаки наложить, или ещё что, а вот pdf потом править обломно будет. Так уж лучше я поправлю ps на этом этапе.

Правильно, но это уже не ЛЮБЫЕ, а специализированные компоненты, предназначенные для обработки ps.

K>>> Всё. Текстовые потоки, awk-и с netcat-ами — это частности и следствия означенного дао.

АХ>>Имеют свои плюсы, но не универсальны.

K> Естественно. А Unix way не требует использования обязательно текстовых потоков.

А как же тогда вы между ЛЮБЫМИ двумя компонентами третий вставите?

AX>> Теперь уже дальше идем в сторону скрещения ОО с функциональщиной . Даже в скриптовых языках, без которых Unix way никуда .


K> Простите, какие языки? Какая функциональщина? Мне глубоко наплевать на ОО и функциональщину в языках. Наплевать и растереть.

А позволь поинтересоваться на каких языках ты пишешь?

K> В данном случае источник мирового зла — это OOD, то есть, ОО на уровне проектирования, на компонентном уровне.

Ужас какой-то. И чем тебя OOD угнетает? Это американский заговор, да?

K> Тут пока никаких языков нет и не предвидится.

Где тут?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.