[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: