Первопроходцам Всемирной паутины посвящается...
Человек привыкает ко всему. Но быстрее всего он привыкает к тому, что - пусть немного - добавляет ему удобства, уменьшает рутину, выпрямляет (укорачивает?) путь к цели. Шариковая ручка вместо чернильной, посудомоечная машина, пиво Miller с крышкой "винтом", которое не надо открывать консервным ножом или глазом, однажды войдя в нашу жизнь, не только становятся необходимы, но и превращаются в мерило прогресса.
Мы быстро привыкаем к предметам, которые рассчитаны на однократное использование. Одноразовая посуда, одноразовая бритва, одноразовая книга или видеокассета... Может быть, так и должно быть? Всякое одноразовое изделие предназначено для того, для чего предназначено. Тому, кто его производит, не надо заботиться о подготовке к следующему использованию. Одноразовой книге не требуется хорошая бумага и твердая обложка, одноразовый шприц можно сделать из материала, который непригоден для процедуры стерилизации. Можно сосредоточиться на главном.
По этому пути пошло развитие многих технологий. Скажем, пятнадцать лет назад большинство считало, что космические ракеты-носители доживают свой век и в ближайшие годы будут заменены "шатлами". И что же? Применение по-прежнему находят и те и другие. Ракеты-носители выводят спутники на орбиту, многоразовые корабли время от времени возвращают с орбиты на Землю попутные грузы.
Не миновать одноразовости и компьютерной индустрии. Internet, дотянувшись до настольного компьютера, сулит в ближайшее время перекроить сверху донизу его программную архитектуру. Так, несколько лет назад Windows предложила для приложений единый внешний интерфейс и сначала позволила интегрировать настольную среду внешне, а затем, развиваясь внутрь, обрела механизмы для реальной интеграции программ и наряду с этим постепенно превратилась в полноценную операционную систему. Вместе с Windows расцвела и индустрия "коробочных" прикладных программ, которые (наконец!) не только обрели разумно схожий внешний вид, но и стали единообразно устанавливаться и управляться.
Но, не успевшая повзрослеть, эта программная среда вот-вот будет заменена иной. Роль настольной ОС обещает взять на себя супербраузер, со всех сторон облепленный модулями расширения (plug-in). В идеале подобная архитектура должна помочь каждому владельцу компьютера построить, как из кирпичиков, собственную, необходимую именно ему программную среду. Откуда наш пользователь берет модули расширения? Все оттуда же - загружает с Internet, из коллекционера полнофункциональных приложений, пре-вращаясь в собирателя бесконечных бета-версий "плагинов".
Часть модулей расширения используется многократно и во всей полноте своих возможностей, часть - время от времени и только для какой-либо выделенной операции, есть и те, которые наверняка больше одного раза не пригодятся. Но все они десятками и сотнями мегабайт хранятся на дисках настольных компьютеров, занимают лишние мегабайты оперативной памяти, выполняясь, работают не столь эффективно, оставаясь универсальными, конфликтуют между собой при достижении критической массы. Как клиенту остаться "тонким"?
А может быть, удастся не хранить некоторые (или все?) модули расширения, а скачивать их с Internet по мере необходимости перед очередным использованием? (В конце концов, некоторые модули и без того обновляются так часто, что руки сами тянутся загружать их вновь и вновь.) А может быть, удастся организовать жизнь так, что загружаться с сер-вера будет не расширение целиком, а только его часть, выполняющая требуемую в текущий момент задачу и оптимизированная в соответствии с конкретными условиями? Если так, это положит начало новой компьютерной отрасли, индустрии одноразовых программ.
Достаточно хорошо известны некоторые формальные методы, позволяющие построить по универсальным алгоритмам менее общие, но более эффективные при заданных дополнительных ограничениях (эту операцию так и называют специализацией). Понятно, как по процедуре нахождения минимума из множества, над которым задано отношение порядка, построить функцию сравнения двух целых чисел. Известно, что фиксация размерности позволяет найти решение задачи, не существующее в общем случае (назовем задачу N тел). К подобным методам можно отнести классические методы оптимизации программ, используемые при компиляции (например раскрытие циклов или замена в теле цикла опе-раций умножения сложением), а также процесс компиляции как таковой, подразумевая под этим специализацию интерпретатора по исходной программе. Более формально теория таких преобразований развита в работах А.П. Ершова, посвященных "частичному выполнению" программ.
Создается впечатление, что необходимый теоретический фундамент для построения идеальным образом решающих ваши конкретные задачи, быстрых и маленьких одноразовых программ уже сформирован. Дело за малым - научить Сеть находить универсальное решение любых мыслимых и немыслимых задач, сверх-быстро вычисляя требуемый срез программ и молниеносно доставляя его потребителю.
Изменения затронут не только технологию, но и экономику. Индустрию одноразовых программ не устроят традиционные правила компьютерного рынка. Красивую коробку с компакт-диском, руководством по инсталляции и учебником заменит другой товар, им станет услуга: покупателю будет предоставляться возможность заказать по Internet требуемое приложение, предварительно указав условия специализации. Наверняка эту услугу быстро возьмут на вооружение компании-операторы, всегда готовые поддержать все новое, если это новое ведет к увеличению оплачиваемого трафика. Стоимость программных продуктов растворится в счетах за доступ.
Не исключены и социальные последствия. Наверняка изменится облик компьютерного злоумышленника. Действительно, одноразовые изделия воруют редко. Одноразовую программу на Митинском рынке не продашь. Поэтому "классические" компьютерные пираты, скорее всего, исчезнут, уступив свое место "пиратам доступа".
Впрочем, трудно предсказать все изменения, к которым приведет развитие индустрии одноразовых программ. Да и не стоит - во всяком случае, в одноразовой статье.
С Павлом Христовым можно связаться через Internet по адресу: pkh@osp.ru.