UNIX-way

UNIX-way подразумевает текстовый протокол взаимодействия между программами. Причём взаимодействие осуществляется обычно через безымянные каналы. Если можно так выразится, «отвязанность» от имен каналов нужна для того, чтобы можно было безболезненно разрывать и соединять программы в любые мыслимые цепочки. Этот подход рождает гибкость UNIX-а.

Вообще, UNIX-way подразумевает, что:

1. Любая программа — это монолитный качественный кубик.
2. Каждый кубик имеет один вход и два выхода. Один выход для результатов работы, а второй — для того чтобы сигнализировать о проблемах в работе кубика.
3. Мы можем соединять эти кубики в цепочки, наподобие бусинок на нитке.
4. В цепочке выход одного кубика подключается ко входу другого.
5. При необходимости между любыми двумя кубиками мы можем установить другие кубики.

Протокол «общения» между кубиками должен быть рассчитан на то,  что любые кубики будут однозначно понимать входящие данные. Самый простой случай «общения» — это обмен данными в текстовом виде.

Да, текстовый формат не такой эффективный как двоичный. Но в мире очень много задач, в которых не требуется чрезвычайной или запредельной скорости. Да, и современные компы обладают колоссальной вычислительной мощностью.

Преимущества текстового обмена нельзя скидывать со счетов. Текст — он и в Африке текст! Если что-то не получается, можно вывод направить на консоль, на принтер, в файл — да, куда угодно! И всегда есть уверенность, что текст можно будет прочитать и при необходимости подправить.

Текстовый формат нельзя недооценивать. Текстовый формат обмена — это огромное преимущество!

Допустим, вы пишите какую-то программу по обработке экспериментальных данных. Но сама установка, которая будет генерировать эти данные, еще не готова. Но вам уже нужно как-то отлаживать вашу прогу.

Если вы не приняли UNIX-way и решили пойти по пути двоичного обмена, то вам придется написать дополнительную программу, которая будет эмулировать выход экспериментальной установки. А если ваша прога отвечает UNIX-way, то вы просто создаете обычный текстовый файл и тупо скармливаете его своей программе.

Теперь, если окажется, что данные нужно слегка изменить, то в первом случае вам придется править исходники программы-эмулятора, а заново ее компилировать. А во втором случае — вы просто отредактируете текстовый файл. Где быстрее и проще достичь результата?

Не надо прогибаться под машинный (двоичный) формат данных, особенно там, где это совершенно не требуется. Пусть лучшекомпы прогибаются под наш человеческий (текстовый) формат данных!

Компам ведь всё равно. Они ведь не страдают от того, что загружены работой. Я даже больше скажу — компы вообще не загружены работой!

Не верите ? — Посмотрите на занятость процессора своего компа!

Вы можете возразить, что текстовый формат занимает в разы больший объем памяти по сравнению с двоичным форматом. Да это так. Но разве кто-то запрещает использовать компрессоры-декомпрессоры?

Компрессор — это точно такой же кубик на нитке. Вы скармливаете поток текстовых данных компрессору, а вывод его направляете в файл. В результате Вы получаете сжатый файл. Разве это трудно сделать?

С таким же успехом вы можете подключить выход компрессора к каналу передачи данных. А на другом конце канала установите декомпрессор. Тогда на выходе декомпрессора вы получите восстановленный поток текстовых данных. А по каналу связи побежит сжатый поток двоичных данных.

Обычно текстовые данные хорошо сжимаются до десяти и более раз. Так что по сравнению с передачей несжатых двоичных данных, в этом случае будет еще и выигрыш в объеме и скорости трафика!

Не пренебрегайте текстовым форматом данных! В нем заложены очень большие возможности для маневров. Сколько раз в вашей жизни ломались какие-нибудь двоичные файлы? (Например, Реестр в Виндовсе.) С какой вероятностью его можно было восстановить и как ни в чем не бывало продолжить работу? А сколько раз в вашей жизни ломались текстовые файлы?

Для создания и редактирования двоичных файлов требуются специализированные программы. Для создания и редактирования текстовых файлов требуется простой текстовый редактор. На любом компе имеется текстовый редактор, и зачастую даже не один! А вот со специализированными программами для обработки специфических двоичных данных — не просто беда, а зачастую — катастрофа!

И если вы считаете, что это не так, то это значит, что вы еще не «попадали» по-настоящему.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s