bash.im ithappens.me zadolba.li
10079

Посмотреть глазами и поправить руками

29 октября 2012, 07:15

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

Правда, периодически при обновлениях версий возникали проблемы: появление лишнего бита могло привести к необходимости расширения разрядности поля флагов с последующим обновлением описания форматов, добавлением поля версии, добавлением проверки на корректность версии, обновлением необходимых библиотек на другой принимающей стороне и т. д. Хуже всего, когда разработчик менялся или переставал поддерживать изменения — приходилось изобретать конвертеры. А если требовалось залезть ручками, посмотреть или поправить, приходилось писать специальные просмотрщики и редакторы.

Прошло время. Сейчас мало кого можно удивить терабайтным диском или парой гигов оперативной памяти. Модная тенденция — использовать XML. Для того чтобы передать значение пары переменных, создадим XML-файл и DTD к нему, поставим с десяток тегов и задействуем парочку библиотек для корректного формирования и корректного разбора. А что — теперь же все понимают, что такое переносимость и как избавиться от проблем бинарных форматов!

А в UNIX (теперь и в Linux) по-прежнему для обмена данными используют текстовый формат. Который можно посмотреть глазами, исправить любым текстовым редактором, сохранить в архив и поднять из архива десятилетней давности.