Основной вопрос программирования

Что первично - программа или данные?

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

  1. Если существует только одна программная среда под определенный формат данных, то она будет первична по отношению к этому формату, поскольку для любой иной среды он будет недоступен;
  2. Если формат данных поддерживается различными программными средами, то он будет первичен по отношению к ним, поскольку его существование не зависит от каждой из них в отдельности.

После такого уточнения вопрос о первичности из тривиальных переходит в разряд стратегических и даже становится основным, поскольку только на такой основе становится очевидной тенденция перехода программного инструментария в подчинение к универсальным форматам данным. В прежние времена эта тенденция проявлялась, в основном, неявно, т.е. в средствах экспорта-импорта. Теперь даже невооруженным взглядом можно заметить, как формат HTML без особых усилий подминает под себя такого универсального супергиганта, как MS Word.

Это происходит не из-за особых функциональных качеств формата HTML, а только вследствие его универсальности, которой потребители информации (главным образом, из интернета) отдают явное предпочтение, несмотря на его очевидную архаичность и полную неспособность обеспечивать эффективный машинный доступ к отдельным данным. В этом формате невозможно поддерживать целостность данных на таком же уровне, как, скажем, в электронных таблицах или СУБД. Зачастую приходится также отказываться от некоторых разновидностей дизайна, если они не поддерживаются по умолчанию в MS Internet Explorer. Можно абсолютно уверенно утверждать, что у формата HTML нет и не может быть никакого будущего, поскольку такая технология может существовать только в режиме, максимально приближенном к ручной обработке данных. Этот формат вполне отражает состояние самого большого кризиса в компьютерной индустрии, которого она никогда не испытывала и, похоже, еще до конца не прошла.

 

Вполне достойной альтернативой HTML может стать формат PDF, в котором информация сохраняется вместе со шрифтами, а ее графическое отображение вначале фиксируется при помощи виртуального принтера (Acrobat Distiller) и затем может воспроизводиться средствами Adobe Acrobat. Однако за однозначность воспроизведения информации формату PDF приходится платить своей самостоятельностью, поскольку все, что касается обработки данных, должно выполняться в другой программной среде.

Вопрос о том, какой формат может заменить HTML, совсем не праздный. Если уж такой непритязательный (с точки зрения компьютерной обработки данных) формат, как HTML, расчищает себе дорогу, словно мощный бульдозер, то можно представить себе, какой триумф ожидает появление не только универсального, но и программируемого формата данных? Разумеется, что это означало бы и триумф стратегии, основанной на первичности данных по отношению к программной среде. Пока такие технологии еще не появились1, однако путь к ним лежит, опять-таки, через основной вопрос, поскольку для того, чтобы не заблудиться на этом пути, нужно будет определиться, в каких случаях первичность должна оставаться за программной средой, а в каких - нет.

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

Вполне очевидно, что первые ростки будущего единого формата данных могут появиться только в поддерживающей его (системной) программной среде, которая, по крайней мере, на начальном этапе будет первичной по отношению к нему. Однако поддержка целостности данных для решения конкретных задач должна обеспечиваться (прикладными) программными модулями, создаваемыми с помощью встроенного (макро)языка программирования. Эти модули должны быть уже вторичными по отношению к конкретным позициям данных. Именно так обстоит дело в электронных таблицах типа MS Excel, однако этот табличный формат данных не может быть универсальным, а потому его применение ограничено лишь отдельными локальными задачами.

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

Первое требование - переход от табличных форматов данных к иерархическим, поскольку именно такая структура данных является наиболее универсальной, а относительно небольшое число параметров управления для иерархических структур ("КВ" №29/2000) позволяет в полной мере обеспечить их программируемость, т.е. автоматизированную поддержку целостности данных.

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

Вот только те возможности будущих новых технологий, которые пока остаются нереализуемыми:

  • независимость скорости доступа к данным от объема источника;
  • прозрачность технологий для внесения изменений в отдельные программные модули;
  • актуализация (изменение) технологий с коротким циклом жизни в процессе их применения;
  • обозримые и исчерпывающие результаты запросов в системах типа интернет;
  • отсутствие необходимости в защите от компьютерных вирусов, троянских коней и им подобных;
  • постепенный переход от универсального к единому формату данных.

Такими вот выводами может обернуться скучное исследование "тривиального" вопроса о первичности.

Юрий КРАСКОВ,
c_city2000@mail.ru

1 Впрочем, опытный образец был создан в среде MS DOS еще в 1995 году, а структура его ядра опубликована в "КВ" №6/2001

Версия для печатиВерсия для печати

Номер: 

20 за 2002 год

Рубрика: 

Новые технологии
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Страницы

Аватар пользователя NikE
> ...функциональных качеств формата HTML ...

Вообще-то HTML это способ представления тех самых данных, но никак не сами данные.

> Вполне достойной альтернативой HTML может стать формат PDF ...

Да ну бросьте :) Скорее XML. Уже есть стандарт - XHTML. Существует хорошая формула - XML + XSL = HTML. XML - это ваши данные, XSL - процессор по их обработке, выходом которого может быть HTML как частный случай. Задача XSL процессора трансформировать данные в представление или снова в данные (этот процесс может быть многоступенчатым). При желании можно и так сделать XML + XSL = PDF. Все зависит от того какой XSL Вы напишите.

Regards,

NikE

p.s. Хорошим примером использования XML-XSL идеологии в НЕ Интернет технологиях, является Visual.NET. Посмотрите в каком формате сделаны файлы проектов, сразу все поймете.

Аватар пользователя Викинг
> XML - это ваши данные, XSL - процессор по их обработке...

XML - не данные, а синтаксис описания данных.

Аватар пользователя Oleg
Мне статья тоже не понравилась. Когда читал, тоже всё время о XML думал. А причём здесь PDF, не понимаю
Аватар пользователя Викинг
Oleg: добро пожаловать в клуб ценителей Краскова :)
Аватар пользователя Piligrim
Статья сумбурная и не продуманая. Спутаны в кучу хранение и обработка данных, их отображение, да ещё и устройства. Если всё в такой куче рассматривать, то самый лучший и ещё ни кем не превзойдённый продукт - обыкновенная книга. Требуется лишь знание языка, всё остальное(механизм чтения - собственные глаза, механизм обработки - собственные мозги) - в наличии. Срок хранения превышает все имеющиеся сейчас в ширпотребе экземпляры этого направления. И никаких заморочек с форматами. Я так и не понял, что, по мнению автора, надо изобрести.
Аватар пользователя NikE
To "Викинг"

> XML - не данные, а синтаксис описания данных.

С уточнением согласен.

Аватар пользователя mike
Г-н Красков хороший приколист, но с теорией у него плоховато. Читая Краскова, начинаешь понимать, что не такой уж ты дуб. Огромное спасибо КВ за это. Интересно, знает ли г-н Красков о существовании математической лингвистики и ее связи с алгеброй? Или хотя бы одну теорему о неполноте арифметики? Читает ли первоисточники или ограничивается энциклопедиями?
Аватар пользователя Викинг
Да он вообще нихрена не знает, только гонит с умным видом псевдонаучный жаргон.
Аватар пользователя mike
А вообще-то Краскова читать надо. Ну, чтобы знать, до чего может дойти человек, который ничем, кроме таких вот опусов, не может заработать.
Аватар пользователя Михаил
Не понимаю, почему статья называется "Основной вопрос программирования"? На мой взгляд очень многие вопросы первичности данных и программ регулируются рынком, а не логикой.

Страницы