Глава 10. Какие мы имеем форматы данных?

Николай (unDEFER) Кривченков

2009-07-26

В этой статье мы зададимся вопросом: "Какие форматы данных мы имеем?". С какой целью они разрабатывались? И с какой целью применяются?

Ответ может показаться странным, но абсолютное большинство форматов данных хорошо подходят лишь для хранения и передачи данных, для архивирования. Фактически мы не имеем ни одного широко известного формата для редактирования.

Я поясню, что я имею в виду. Возьмём к примеру формат простого текста. Чтобы вставить строку в середину файла, необходимо сперва затереть старые данные в нужном месте, а затем переписать весь файл до конца. Файловые системы не предполагают операции вставки в файл.

Любой сжатый файл автоматически не пригоден для редактирования. Даже малое его изменение приводит к необходимости полного пережатия исходного файла.

Формат ODF (формат документов OpenOffice.org) мало того, что является архивом zip, плюс ко всему он даже плохо подходит для простого просмотра больших документов.  Чтобы просто узнать, где находится курсор в документе необходимо прочитать его весь. Курсор хранится в теле документа как особая последовательность символов, вроде <cursor>.

Фактически хорошие форматы для редактирования существуют -- это впервую очередь структуры применяемые в ОЗУ для обработки документов. Кроме того многие приложения рассчитанные на работу с большими документами создают такие файлы кеша на диске. Файловые системы, файлы баз данных -- всё это примеры форматов подходящих для редактирования.

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

Несомненно большинство файлов, которые приходят в систему из-вне (в формате удобном для обмена) вообще никогда не редактируются. Но файлы, которые создаются пользователем или любой другой файл, который был отредактирован пользователем однажды, с большой вероятностью будет отредактирован им множество раз. А значит нет никакой нужды всегда сохранять его в формате пригодном только для чтения. Пользователю не нужно вопросов о формате, не нужно потерь части информации из-за выбранного формата. Также как пользователя не интересуют форматы структур, используемых в оперативной памяти компьютера, его вряд ли интересуют форматы, которые будут использоваться, чтобы он мог всегда просмотреть историю документа, и чтобы вся информация, которую он ввёл в компьютер, была сохранена полностью.

В unDE при редактировании будут использованы форматы, которые максимально позволят съэкономить время пользователя в дальнейшем. Все они будут хорошо документированы и не возникнет проблем написать сторонние конверторы и обработчики этих форматов. Задача выбора формата будет возникать в unDE только при сохранении файла для длительного хранения (архивирования) и при передаче данных. При этом в зависимости от цели конвертирования система сможет предложить максимально подходящие форматы для этой задачи.

SourceForge.net Logo