Здравствуйте, Cyberax, Вы писали:
>> Не пайпом единым... Открываем кого либо через popen(), и общаемся в обе >> стороны. C>А все равно. Нет нормального механизма передачи исключительных ситуаций.
Как нет? Оно обычно в протокол зашито. Ни разу с этим трудностей не испытывал.
>> C>2. Или ограниченность простыми текстовыми данными, или необходмость >> C>парсить данные в каждой программе. >> Это ни фига не недостаток. Это огромнейшее преимущество!!! C>Недостаток. Кроме простого текста есть: C>1. XML
Это — простой текст. Только очень дерьмовый простой текст. У меня всегда практически для обмена структурированной информацией S-выражения используются.
C>2. JSON C>3. Да хотя бы ini-файлы C>4. Файлы с многострочными значениями
И? Где тут проблемы, а?
C>Какие стандартные утилиты догадаются, что последовательность ಩ (код C>вымышлен) — это буква "а"? Правильно, никакие.
Unix-way не завязан на "стандартные" утилиты. Никак.
C>Значит надо как-то канонизировать документы, включая в пайпы C>дополнительные программы. И прощай простота.
>> C>4. С бинарными данными еще хуже. >> Да? tar -xf — бла-бла-бла | bzip2 C>А как там у нас grep будет работать, например?
А зачем для бинарных данных grep?
C>Кстати еще минус — отсутствие методов работы с непотоковыми данными. То C>есть "cat somefile | rar | mail ..." уже не сделать — так как C>rar'у нужен произвольный доступ для создания solid-архивов.
Ну так убогий rar — не unix way, он просто не вписывается. Любая компонентная система требует от компонентов следования определённой идеологии (и хорошо если идеологии, а не фиксированному API).
C>Ну и иногда еще ОЧЕНЬ мешает невозможность сделать свою реализацию C>файлов (я знаю, что можно использовать FUSE на Линуксе, но в общем C>случае в юниксах эта задача не решается).
ЗАЧЕМ?!? Named pipes и unix domain sockets рулят со страшной
силой.
C>Мой любимый пример: как мне таблицу с графиками из Calc вставить в C>AbiWord, а потом ее там же редактировать с помощью inplace-редактора?
Обе эти убогонькие программульки никакого отношения к unix way не имеют. А вот R + MySQL + Python + latex + gnuplot + maxima идеально вяжутся в одну систему, и, как показывает практика, вендовозные ламеры, любители поредактировать табличку в текстовом процессоре, по эффективности работы просто рядом не валялись с теми кто пользуется подобной связкой. Пара дней — и идеального полиграфического качества статья готова, с идеальными графиками и достоверно проверенным качеством вывода и рассчётов. Вордописцы будут с тем же самым возиться не меньше месяца, как, опять же, демонстрирует та же самая практика.
C>Я не спорю, pipe'ы — это очень элегантное решение, позволяющее C>эффективно решать большую часть административных задач. Только C>вот пора бы уже что-то новое придумать.
Те же самые пайпы ИДЕАЛЬНО решают задачу построения любого, сколь угодно сложного GUI. И все эти "объектно-ориентированные" решения из просто рядом не валялись с простым и элегантным решением в стиле unix way.