Господа, приехал из командировки, а в netmail 4 письма из 12 так или иначе
задевают вопросы портируемости (переносимости) программ на ассемблере на
различные платформы. В своих письмах по OOP я не заострял на этом внимание,
поскольку считал, что ответ на данный вопрос и так понятен, но видимо это не
так. Придётся сформулировать мысль, которая для некоторых программистов возможно
покажется бредовой (их я ещё раз отсылаю к тем письмам Teach OOP, которые были
написаны ранее). Итак, объектная среда, написанная на ассемблере, обладает
большей портируемостью, чем те продукты которые сегодня представлены на рынке
как в виде спецификаций, так и ввиде закоченных систем, включая виртуальные
Java-machines.
Для тех, кому данное утверждение, кажется более чем смелым, я повторю некоторые
выводы из своих писем. Там рассматривалось два примера: GUI и система хранения
информации (нечто вроде СУБД, только более гибкая и мощная). Было показано, что
для реализации полноценного GUI достаточно всего трёх объектов: дуга, текст и
линия; унаследованных от объекта точка. Для реализации информационной системы, в
свою очередь, создаётся линейка объектов, обслуживающих информационные pools. В
зависимости от типов данных: 1 бит, 2 бита, 4 бита, ..., 128 бит (если хотите,
то и больше), создаётся линейка из 7 объектов.
И в первом и во втором примере - это И ЕСТЬ ВСЁ, ЧТО ТРЕБУЕТСЯ ЗАКОДИРОВАТЬ,
поскольку остальные объекты КОHСТРУИРУЮТСЯ из перечисленных. Конструироние -
есть определение логики взаимодействия между объектами внутри контейнера,
посредством механизма передачи сообщений. Здесь существуют логические схемы,
которые не имеют собственного машинного кода, они интерпретируются контейнером и
могут быть переносимы на любую платформу.
Отсюда следует вывод, что для переноса объектной среды на иную платформу
(железо and/or OS) требуется переписать 30-100 Кб кода, что существенно меньше,
чем код любой Java-machine.
С уважением, Александр Усов.