Здравствуйте, 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>>