Сегодня две темы. Про перспективность использования
метаданных. И про «глючность» системы.
Когда-то давно, в ранних рассылках я сравнивал метаданные с
набором ДНК. Сегодня я думаю по-другому…
Попробую объяснить. Для того чтобы сформировать систему при
помощи генераторов кода, нужны три составляющие:
План создания системы, или метаданные
Правило создания системы по этому плану
Решение о начале процесса создания
У этого процесса есть совершенно точная аналогия в мире
живой природы, и в человеческом существовании, в частности.
План, или душа
Правило сборки - ДНК
Решение о создании
ДНК, а это уже известно, это именно правило сборки белковых
структур. И совершенно понятно, что генетика должна была зайти в тупик.
Они не могут обнаружить план сборки. Скорее всего, мы его никогда научными
методами и не обнаружим.
У нас в этом смысле гораздо больше возможностей. Мы
можем поставить эксперимент и получить результат. Для нас проблема выглядит
абсолютно так же. Если бы нам в руки попалась готовая информационная система
(даже вместе с генераторами), и мы начали бы исследовать ее структуру, то пришли
бы к выводу, что в структуре не хватает информации, чтобы построить такую же
систему. И правильно, потому что эта информация, или план системы, находится не
в структуре, а в данных.
Теперь еще одно. Если система обладает двумя компонентами
(планом и правилом) и возможностью управлять моментом создания следующей
копии, то она имеет потенциальную возможность вирусного размножения. Такая
система проявляет свойства живого. А значит мы плотно подходим к грани творения.
Вы готовы к роли творца ?
Вот такова, с моей точки зрения, перспектива использования
метаданных. Я думаю, что рассматривать метаданные отдельно от правил
генерации бесперспективно. Именно поэтому начинаю разговор с генераторов кода.
Я прекрасно понимаю желание скорее увидеть результат всей
этой болтовни, но терпение – лучшая добродетель, которая у нас есть.
Теперь про «глючность» и генерацию кода. Представьте себе,
что ваша система содержит несколько сотен таблиц в базе данных. И предположим,
что мы использовали генератор кода, чтобы создать код, который работает с этой
сотней таблиц. Даже с учетом того, что взаимосвязи между таблицами очень
сложные. Это совершенно неважно сейчас. Важно другое. Генератор не обладает
творческими способностями. Он всегда, в отличие от человека, делает идентичный
код. А это значит, что если в коде есть потенциальная ошибка (такое
возможно, потому как сам генератор пишут люди), то эта ошибка постоянно
тиражируется. А значит, вероятность найти ошибку возрастает пропорционально
количеству повторенного кода, в нашем примере раз в 100. Больше того. Исправлять
ее надо не 100 раз, а только один раз и то в генераторе кода.
Так какие системы потенциально стабильнее?
Короче, плюсы сплошные. Код создается быстрее, ошибки
ищутся быстрее. Где-то должна быть засада….