Re: Что тяжелее - внешний процесс или вызов библиотеки?
Evgeny M. Zubok -> debian-russian@lists.debian.org @ Thu, 06 Feb 2014 00:57:01 +0400:
EMZ> Вообще, утилиты в *NIX надо бы писать изначально так, чтобы ими было
EMZ> удобно пользоваться в скриптах: то есть не только human-readable вывод
EMZ> делать, но также и удобный текстовый вывод для скриптов. Лучше даже
EMZ> как-то однообразно и для всех утилит, чтобы можно было единым образом
EMZ> получать какие-то параметры, единообразно получать информацию о
EMZ> прогрессе (если таковая выдается). Но вот как-то не сложилось в нашем
EMZ> мире. Культура у разработчиков разная. Если мне придется в будущем
EMZ> делать какие-то утилиты, то я изначально буду проектировать так, чтобы
EMZ> можно было удобно скриптовать.
Вот как-то не удается народу придумать более-менее универсальный
протокол машинночитаемого обмена данными. В основном не удается задать
структуру.
EMZ> Если по теме, то от утилиты зависит. Смотря какая утилита, смотря какая
EMZ> библиотека. Одни ломают каждый раз вывод, другие годами ничего трогают,
EMZ> а некоторые даже принципиально не меняют. Библиотека тоже смотря какая.
Все-таки утилита, выдающая человекомчитаемый формат, не только не
обязана, но ей и не следует упорствовать в неменянии формата. Мне
попадалось одна-две утилиты (rsync вот сходу вспоминается), у которых
есть _отдельный_ машинночитаемый формат. И то он у них обычно далек от
универсального, в смысле, страдает хреновой расширяемостью. Трудно
добавить данные. Ну, для rsync это не так страшно, у него все же задача
ограничена, там и нечего добавлять в отчет.
Прогресс, кстати, отдельный таракан. Понимание того, какую часть работы
ты уже сделал - отдельная задача, в ряде случаев еще и теоретически
неразрешимая. А в ряде других - разрешимая, но за слишком большую
дополнительную цену. Вон, у того же rsync сколько ручек для оптимизации
обработки набора файлов для синхронизации. Две трети из них приводят к
не особой осмысленности информации о прогрессе. Ну, знаешь ты, что тебе
еще треть файлов копировать. А по времени? Правильно, пока он все
файлы не синхронизирует, он этого не знает. Теория вероятности не
помогает, распределение изменений, как правило, неравномерно. А когда
синхронизировал - ну, 100%.
Reply to: