Кризис в программном обеспечении и способы его преодоления
Copyleft (С) Олег П. Филон ()
v1.0 Ноябрь 1999, Гомель, BY
см. также статью
За последнее десятилетие ПК (персональные компьютеры) получили широчайшее распространение и стали доступны практически повсеместно, от деревенской избы до современного оффиса. Тем острее встает проблема ПО (программного обеспечения), без которого компьютер представляет собой бесполезный металлолом.
Программы для компьютеров, как правило, стоят немалых денег, и обычно стоимость установленного ПО превышает стоимость собственно ПК. Таким образом, речь идет о сумме, сравнимой со стоимостью всего парка имеющихся компьютеров, и по самым приблизительным и скромным оценкам составляет миллиарды долларов. Часть этих денег уже уплачена за легально купленное ПО. БОльшая же часть ПО используется нелегально, в нарушение муждународных законов. Можно сказать, что мы используем это ПО в долг, и когда придет время этот долг платить - пока неизвестно. Долг в миллиарды долларов - это только одна сторона кризиса.
Вторая сторона кризиса ПО - закрытость коммерческих программ. Такая программа представляет собой "черный ящик", выполняющий какую-то работу, но внутреннее устройство которого закрыто и непознаваемо. При подключении ПК ко всемирной сети Интернет нет никакой гарантии, что какая-то из работающих программ не станет работать как передатчик, посылающий информацию из вашего ПК на другие компьютеры в сети. Любой серьезный пользователь должен знать о существовании такого "черного ящика" у себя в ПК. Для страны же в целом это настоящая угроза информационной безопасности.
Для понимания сути и глубины кризиса в индустрии программирования, а также путей его преодоления, необходимо пояснить некоторые технические детали разработки и распространения программ.
Закрытость программ обеспечивается системой мероприятий от самого начала разработки проекта вплоть до лицензионного соглашения, которое обязан выполнять пользователь при покупке программы. Вокруг исходного кода (текста программы) создается завеса секретности, и как правило, продаются и распространяются только исполняемые файлы, из которых невозможно и незаконно понять внутреннее устройство программы.
Это и есть тот самый запечатаный "черный ящик".
Исторически сложилась ситуация, что стандартной для ПК стала ОС (операционная система) Windows американской корпорации Microsoft. ОС - это самая первая программа, автоматически запускаемая при включении компьютера. Затем эта программа - ОС - по командам пользователя выполняет другие программы и предоставляет им ресурсы компьютера. Аппаратная архитектура, в нашем случае ПК с процессором от Intel или совместимым с ним, вместе с ОС образуют вычислительную платформу, и любая программа, работающая на ПК, привязана к этой платформе. Даже в США, где есть конкурирующие платформы и имеется зрелый рынок больших машин, правительство и эксперты пытаются бороться с угрожающей монополизацией рынка ПО империей Microsoft.
У нас же, и это тоже одно из проявлений кризиса, вышеупомянутая платформа Wintel практически вытеснила другие вычислительные платформы. Приученные к бесплатному сыру, многие наши специалисты-компьютерщики так и не поняли, что они оказались в мышеловке. Удобство работы пользователя, его привычка к определенному стилю работы, отсутствие системы подготовки профессионалов привели к тому, что ОС Windows устанавливают везде, где надо и где не надо. Затем оказывается, что сервер Windows отдает явное предпочтение другим программам от Microsoft, а с другими системами в общей сети Интернет Windows взаимодействует весьма неохотно. Таким образом круг замыкается, вы оказываетесь в плену у т.н. "решений Microsoft", и вырваться из этого плена все труднее.
Эти разоблачения происков Microsoft можно было бы с таким же успехом адресовать и любой другой фирме, занимающей монопольное положение на рынке. 30 с лишним лет назад фирма IBM также старалась заставить потребителей использовать только ее продукцию. И другие фирмы, торгующие коммерческими программами, отличаются от Microsoft разве что отсутствием монопольного контроля над вычислительной платформой. Возможно, у нас еще долго не было бы иного выбора, если бы не сеть Интернет и не предвидение одного человека.
Движение за свободное ПО, или т.н. проект GNU (Gnu Not Unix) основал легендарный программист Ричард Столмен в середине восьмидесятых. Его целью было создание совершенно открытой ОС с доступными исходными кодами, а также всех необходимых для нормальной работы приложений. И не только полностью открытых, но и с гарантией, что эти программы будут открытыми и доступными на все времена. Столмен вместе с первыми версиями своих программ разработал особое лицензионное соглашение, GNU GPL (General Public Licence). Это соглашение гарантирует, что автор программы разрешает как угодно использовать свою программу, дополнять, изменять ее, но требует всегда публиковать исходный код программы и сделанных изменений. Таким образом, фирмы, создающие коммерческие закрытые программы, или не могут использовать программы из проекта GNU, или обязаны предоставить исходный код своих доработок.
Это принципиальное разделение программ на коммерческие, т.е. закрытые, и свободные, распространяемые на условиях GNU GPL, долгое время не очень волновало ни преуспевающих продавцов программ, ни массового пользователя. Ситуация резко изменилась за последние несколько лет.
Первым фактором, кардинально изменившим привычное положение вещей, стало широкое распространение Интернет. Открытая модель разработки, использующая преимущество доступности исходного кода программ, позволила привлечь к разработке современных программ самых талантливых программистов по всему миру. Работая над одним проектом, люди зачастую общаются исключительно через Сеть (Интернет), находясь в разных концах земного шара. Открытость исходного кода резко ускоряет нахождение ошибок, гарантирует качество алгоритмов и невозможность замаскированых дыр в "черном ящике" внутри программ. Несмотря на отсутствие прямой денежной платы за работу над тем или иным проектом, сегодня армия программистов, так или иначе делающих вклад в проекты GNU, огромна, и для отдельных проектов далеко превосходит возможности даже такого монстра как Microsoft.
Вторым фактором стало обилие и качество программ, разработанных и распространяемых свободно. Сейчас несложно снарядить компьютер для выполнения практически любой задачи используя только бесплатный открытый софт. На рынке же серверных приложений и сервисов Интернет уже коммерческие программы пытаются догнать своих открыто развивающихся и свободно распространяемых конкурентов. Да и сама сеть Интернет развилась до своего нынешнего уровня именно так - открыто обсуждая стандарты и публикуя реализации алгоритмов.
Вместе оба эти фактора привели к смене парадигмы, как можно разрабатывать и распространять ПО. Сегодня любая программная фирма, даже самая мелкая, рекламирует свой товар через веб-сервер, сопровождает пользователей через электронную почту и доски объявлений, выкладывает в фтп-архив отдельные программы и исправления к ним. Но закрытость исходного кода, по-прежнему приносящая баснословные прибыли, сейчас работает против разработчиков закрытых программ. Например, цикл исправления неизбежных ошибок в закрытых программах составляет месяцы, а в открытых это делается за считаные часы. Закрытость программ приводит к закрытости исследовательской работы на переднем крае компьютерной науки, создавая неудобства программистам и обрекая их на отставание от своих более свободных коллег.
Свободное общение программистов и обмен исходными кодами программ как раз и были главными идеями Ричарда Столмена в его борьбе за свободное ПО. Без такого общения хорошие идеи не получают должного признания, одна и та же работа делается многократно. Столмен считает, что фирма, присвоив труд программиста - исходный код программ, и закрыв его от посторонних глаз, лишает общество результата этого труда.
США, бесспорный нынешний лидер в разработке компьютеров, программ и Интернет, казалось бы, меньше других заинтересованы с успехе альтернативной вычислительной платформы. Но и в продвижении открытых программ они остаются впереди. Фирмы, занимающиеся свободным ПО, процветают, к ним проявляет интерес большой капитал.
Не утихают попытки ослабить монополию Microsoft через суд. И хотя свободные программы уже прочно заняли часть рынка, их более широкому распространению мешает множество факторов. Вот некоторые из них, общие для всех стран:
Страны, в которых сеть Интернет менее доступна, испытывают дополнительные проблемы. Одна из таких проблема - это увеличивающийся разрыв в уровне программирования, в подготовке профессионалов-компьютерщиков. Серьезное отставание в технологии программирования связанно с изолированностью от программистского сообщества, а также с тем, что система образования не поспевает за стремительным темпом развития компьютеров и ПО. Как бы не были талантливы наши школьники и отдельные самоучки, без общения с мировыми лидерами в этой области, без участия в серьезных проектах мы остаемся только потребителями ПО.
Открытая модель разработки программ только обозначила свой колоссальный потенциал, и, возможно, станет определяющей в грядущем веке. Эта модель позволяет включиться в процесс разработки любому способному программисту, в том числе и зарабатывать на этом. К сожалению, среди десятков тысяч авторов и соавторов открытых программ фамилии из бывшего СССР большая редкость, а те кто есть, скорее всего, уже граждане дальнего зарубежья.
Многие страны предпринимают попытки вырваться из плена Microsoft и использовать возможности, предоставляемые Интернет и открытыми программами. Например, в Мексике принята государственная программа по установке более ста тысяч компьютеров с ОС Linux в школах по всей стране и подключении этих школ к сети Интернет. В Европе, в странах ЕС, также стараются поддержать альтернативную платформу, в первую очередь ОС Linux.Более подробно об этой ОС, наиболее яркой и перспективной из открытых систем, можно прочитать в интернет, например, на