10 апреля 2002
Обновлено 17.05.2023

Всеобщая Программная Анархия или две стороны одной медали

Всеобщая Программная Анархия или две стороны одной медали - изображение обложка

Согласно закону Мура, вычислительная мощность компьютеров удваивается каждые 18 месяцев. Каждая следующая версия продуктов Microsoft работает в полтора раза медленней предыдущей. С какой скоростью корпорация Microsoft должна выпускать новые версии, чтобы пользователи не заметили действия закона Мура? Юрий Нестеренко Перед вами две статьи. Две зарисовки нашей с вами нелегкой компьютерной жизни. Две статьи, которые на первый взгляд никак между собой не связаны. Однако, если присмотреться, можно уловить тонкую связь, на грани таких зыбких в наше время понятий, как совесть и уважение к личности. К личности пользователя, распятого на кривых программах, к личности свободного программиста, который вынужден лавировать среди опасных софтверных гигантов, встреча с которыми грозит неминуемой гибелью. Все это — мое личное видение текущего положения дел (подчеркиваю: мое личное, а не мнение всего журнала). Вам решать, прав я или нет. Цена комфорта Хотел я недавно тряхнуть стариной и поиграть в Deus Ex. Хорошая, добротная во всех отношениях игра. Ладно сколочена умелыми сценаристами, художниками… но, к сожалению, не программистами. Ибо тормозит в особо ответственные моменты, да и грузится долго. Не так чтобы сильно тормозит, но все равно раздражает. И это притом, что компьютер у меня совсем не слабый. А уж во времена этой игры о такой машине мечтал каждый геймер. Очевидно, Deus Ex также мечтал о такой машине, так как на более слабых шел с явной неохотой. Что стоило сделать эту хорошую игру еще лучше и потратить пару месяцев на оптимизацию и доводку? Давление со стороны издателя? Желание разработчиков поскорее закончить все дела и уехать на Канары? Об игроках, как обычно, никто не подумал. MS

Всеобщая Программная Анархия или две стороны одной медали - фото 1

Word вылетел — не к добру. Пришлось предыдущий абзац второй раз перепечатывать… Что-то глюков у моего компьютера в последнее время прибавилось. Стало быть, надо Windows сносить. Ведь уж полгода целых стоит. Деградирует. Несомненно, вам знаком этот синдром. Впрочем, постепенной деградации сейчас подвержены не только операционки. Все, от больших программных пакетов до маленьких стокилобайтных программ-пигалиц, стремятся на выходные порадовать вас свежеприобретенной россыпью глюков. Ладно бы маленькие программы, созданные на коленке кустарями-одиночками, — им можно простить многое. Но почему крупные программы солидных компаний позволяют себе подобное хамство по отношению к пользователям — непонятно. С их гигантскими сроками разработки и не менее гигантским штатом программистов… Стыдно, товарищи, стыдно. Интересная наблюдается картина. Чем компания больше и жирнее, тем глючнее у нее программы. Господа с freeware.ru могут вам определенно сказать, что маленькие программки, созданные в условиях белых медведей и балалаек (вот стереотипы!), выгодно отличаются от своих не в меру больших и наглых конкурентов надежностью, стабильностью и удобством в работе. И именно такие программы становятся народными. Даже если автор программы потребует небольшую мзду за свой скромный труд, в глубине души он сам понимает, что на особые доходы можно не рассчитывать. Умельцы быстро “растаможат” его программу, выложат на варезные сайты, снабдят кряками, приблизят к народу. Чем крупнее компания, чем благоприятнее условия труда, чем больше зарплата, тем ленивее разработчики. Впрочем, у таких империй, как Microsoft и иже с ними, процент программистов в общем штате сотрудников весьма невелик. Нынче правят бал менеджеры, агенты по продажам, рекламе, маркетингу, лизингу и еще черт-его-знает-чему. Впрочем, они не зря едят свой хлеб. В социальных условиях страны, где новые игры и программы покупают в супермаркетах наравне с заранее нарезанной колбаской и чипсами, по-другому и быть не может. Покупателя должна привлечь яркая, броская упаковка, цветистые слоганы и цветастые буклеты. Обертка, а не содержание, оценивается в первую очередь. А рядом лежит белая замызганная коробочка с напечатанным на туалетной бумаге руководством по

Всеобщая Программная Анархия или две стороны одной медали - фото 2

эксплуатации и блестящим диском… Надпись на коробке “Текстовый процессор нового поколения” совершенно не привлекает покупателей, ибо современная поп-культура забыла дореволюционное слово “Лексикон”. И пусть немногочисленные эксперты честных, а посему малопопулярных изданий утверждают, что возможности нового “Лексикона” вполне сопоставимы с MS Word, а в некоторых случаях даже превосходят его… Помилуйте, кому он нужен, когда рядом лежит вся из себя блестящая, ламинированная коробочка с красивыми летящими окошками вверху и заманчивой рекламной фразой внизу. А по центру, красиво так, синим по белому написано: “Microsoft Word XP”. Наслаждайтесь, товарищи. К сожалению, эта удручающая картина скоро придет и к нам. Мы американизируемся, потихоньку, еще нехотя, изредка поглядывая на свои корни, но — тянемся к ложному солнцу. В этом году “Лексикон” действительно не отстает от Ворда, его активно покупают. Покупают, потому что его лицензия стоит гораздо дешевле. Но при первой же возможности переметнутся на другую сторону. Все мы скоро окажемся там, за бугром. Но что тогда останется здесь? Среди особо воинствующих программистов бытует мнение, что, проявив немного усердия и находчивости, можно сделать так, чтобы Quake 3 под Windows XP шел без тормозов на 286. Конечно, это преувеличение. Но ребята недалеко ушли от сути. Я думаю, 486 — реальное число. То есть вполне возможно так написать Windows XP и Quake 3, чтобы они свободно шли на 486 процессоре (при 16 Мб оперативки). И не зависали. Никогда. Не верите? Попробую отстоять свою точку зрения. Многие знают о таком виде, не побоюсь этого слова, искусства, как демо-сцена. Группа чокнутых программистов и сумасшедших дизайнеров ваяет высококачественное трехмерное со стереозвуком

Всеобщая Программная Анархия или две стороны одной медали - фото 3

действо, длящееся минутами, даже часами, и вольготно размещающееся на дискете. Чокнутые программисты применяют не менее чокнутые алгоритмы компрессии данных, обработки трехмерной графики и эффектов, хранения стерео. В итоге получается НЕЧТО. Приведу пример. На нашем диске вы легко найдете небольшую демо-сценку ( mesha.com ). Она в течение почти десяти минут демонстрирует довольно красивые трехмерные эффекты, достойные тысяч полигонов, трансформирующиеся друг в друга 3D-объекты и т.д. Размер этой демо-сцены — 4 кб. Для не-программиста эта цифра, возможно, не столь впечатляющая. Поясню: 4 кб — это примерно одна A4 страница текста. Точнее, двоичных кодов. Одна страница — и десять минут первоклассного трехмерного шоу. Воистину чародеи эти демомейкеры! Теперь представьте себе, что было бы, возьмись эти люди за написание игр, а тем более — операционных систем. Прогресс остановился бы. Зачем нужны Пентиумы 4, если на нашем родном Pentium II 266 спокойно пойдут новейшие и навороченнейшие игры и самые крутые операционные системы. Поэтому и не допускают демомейкеров до написания операционных систем. Боятся. Боятся производители новомодного железа — кому оно тогда нужно будет? Боятся производители операционных систем. Да и сами демомейкеры боятся: “Как это мы будем не ваять демки, а заниматься какими-то операционными системами? На кой нам это нужно?” А покуда держится такая ситуация, все вроде бы довольны. Все — только не мы с вами. А мы с вами так и останемся не у дел, пока софтом занимаются корпоративные ленивцы. Проект GLScene
Не могу удержаться от того, чтобы не рассказать об одном замечательном Open Source проекте, который развивается и набирает силы уже третий год, и который очень близок к завершению. Речь идет о GLScene — универсальном бесплатном графическом (и не только) 3D-движке для разработки программ и игр под Дельфи. Начал проект Майк Лишке , однако потом он отошел от дел, передав бразды правления Эрику Гранжу. Они оба еще до GLScene проявили себя в разработке многих популярных программ и компонентов, но это поистине их триумф. GLScene по своей функциональности и возможностям подбирается к таким тяжеловесам индустрии, как Unreal Engine и Lightech 2.0 , а по некоторым аспектам даже превосходит их. И это притом, что движок абсолютно бесплатный и доступен любому программисту. В настоящее время над проектом постоянно работает около десятка программистов, а время от времени — еще сотня. Несмотря на то, что финальная версия GLScene еще не создана, движок уже используется в нескольких программах и разрабатываемых в данный момент играх. GLScene уже оброс рядом утилит и примочек, редактором моделей, уровней, рельефов и т.д. Проект поддерживается обществом SourceForge и разрабатывается в зоне CVS. Проект полностью открытый, поэтому в разработке GLScene может принять участие любой желающий. Исходники GLScene — замечательный учебник грамотного структурного и объектно-ориентированного программирования. Официальный сайт проекта http://glscene.org
На пути к совершенству Есть такое компьютерное сообщество разработчиков программ и игр — Open Sourсe. Собственно, никакой организации или движения с таким названием не существует. Термином Open Source обозначаются все проекты (программы, игры, компоненты, библиотеки и т.д.), имеющие открытый исходный код и обычно распространяемые бесплатно или условно-бесплатно (хотя есть и коммерческие Open Source проекты). Под таким сухим и емким определением скрывается громадная негласная организация свободных программистов (и не только), ставящих на первый план не только личную выгоду, но и взаимопомощь, взаимовыручку — те качества, которые, казалось бы, утеряны в современном обществе. Думаю, не ошибусь, если скажу, что число свободных программистов переваливает за миллион. Они объединяются, сообща создают программы или игры, сообща их тестируют, а потом бесплатно выкладывают на всеобщее обозрение. Большая часть freeware программ и игр, которые вы видели, написаны именно ими. Что скрывается за термином “исходный код”? Это все ресурсы и все исходные тексты программных модулей, из которых в

Всеобщая Программная Анархия или две стороны одной медали - фото 4

процессе компиляции получается программа. Открытые исходные коды программ выкладываются программистами в Интернет. Существуют сотни Интернет-ресурсов, с которых любой желающий может бесплатно получить исходники тех или иных программ и игр. Имея исходные коды программы, можно делать с ней все что угодно. Изучая их, начинающие программисты приобретают навыки рационального программирования, узнают интересные и полезные алгоритмы, которые впоследствии могут сэкономить десятки часов напряженной работы. Пользоваться чужими алгоритмами здесь не считается зазорным. Более того, написав автору программы, вы наверняка получите детальные и исчерпывающие ответы на все вопросы. Единственное, что здесь презирается, — плагиат, воровство идей. Хорошие программисты в окошке About обязательно приводят список всех используемых алгоритмов и компонентов с обязательным указанием авторства. Чем были бы современные программисты без Open Source? Это великая школа для новичков, грандиозный вуз для продвинутых и поднебесная мастерская для грандов. В сети вы легко найдете представительства тысяч свободных проектов, так или иначе имеющих отношение к Open Source. Свободных от предрассудков, от корпоративных ленивцев, здоровых и насыщенных великолепными идеями, с громадными амбициями и надеждой свернуть горы (и это хорошо!), и, самое главное, с реальной возможностью это сделать. На таких людях и держится современный программистский мир. Существует несколько крупных проектов, объединяющих Open Source программистов. Примером может служить SourceForge — громадный программистский портал, объединяющий сотни разработчиков. Он предоставляет всем желающим свободную зону для размещения сайтов и поддерживает замечательную онлайновую систему совместной работы, когда программисты, живущие в разных уголках мира, могут совместно разрабатывать большие и сложные проекты без всяких проблем с общением, согласованием изменений и синхронизацией программных модулей (эта система называется CVS ). В рамках SourceForge существует множество конференций, посвященных как общим вопросам, так и конкретным проектам. Любой может попросить здесь помощь и никогда не получит отказа. Open Source — уникальное социальное

Всеобщая Программная Анархия или две стороны одной медали - фото 5

явление. С одной стороны, его никто не создавал. Оно возникло само по себе, и задолго до появления Интернета. Интернет лишь облегчил общение и поддержку проектов. Программисты всегда тянулись друг к другу, стремились объединиться, создать свои сообщества, а компании, в которых они работали, стремились их разъединить. Понять это можно — в среде Open Source ни одна идея, ни один уникальный алгоритм не пробудет долго в тайне. Если он полезен и нужен, он в короткие строки станет достоянием общественности. Компаниям это не нравилось, ведь многие их “эксклюзивные” и “уникальные” идеи и проекты плавно вытекали из плотно закрытых ворот фирмы на волю. Сейчас Open Source как никогда подвергается нападкам со стороны крупных компаний, но уже по другой причине. Они не могут понять, как можно трудиться и не получать за это денег. И их это страшит. Программы, разработанные в среде Open Source, всегда оказывались гораздо удобнее, функциональнее и надежнее, чем их корпоративные аналоги. Флагманы Open Source с нетерпением ждут того дня, когда откроются все исходные коды, излечатся все баги, и все программисты мира объединятся под единым лозунгом “Свобода!”. Корпорации ждут не дождутся того дня, когда последний оплот Open Source рухнет под напором зеленого змия — доллара. Самым ярым противником Open Source становится приснопамятная Microsoft. За последние пять лет маркетологи и юристы Microsoft как только не издевались над ПО с открытым исходным кодом: и в грязь втаптывали, и всякими словами нехорошими клеймили. Дошло до того, что в ряде официальных заявлений (в том числе в лицензионном соглашении к одной из их программ) Microsoft приравнивает Open Source программы чуть ли не к вирусам. Большие шишки наперебой заявляют, что Open Source подрывает саму основу существования ПО, что это глубоко антисоциальное явление, чуть ли не Всеобщая Программная Анархия. Еще бы, ведь Open Source проекты уже сумели многим видным компаниям прищемить мягкое место. Им следовало бы подумать о положительных сторонах Open Source, прежде чем кидаться оскорбительными обвинениями. А положительных сторон очень много. Это не парадокс: отрытое ПО действительно может быть вполне коммерческим. Теряется только одна из трех основных концепций: доступность (в смысле

Всеобщая Программная Анархия или две стороны одной медали - фото 6

бесплатность). А все остальные очевидные достоинства перед классической схемой “закрытой” разработки остаются: прозрачность проекта на всех стадиях разработки и возможность легкой и безболезненной модификации как на стадии разработки, так и в конечном продукте. Как правило, разработка открытого ПО для заказчика гораздо дешевле, а для разработчика гораздо проще, чем разработка “под ключ”. Благодаря прозрачности всех стадий разработки заказчик может попросить исправить или дополнить что-то уже на ранних стадиях, а разработчик — мгновенно среагировать на эту просьбу. А как это было раньше? Разработчик трудился “в поте лица” в течение нескольких месяцев, а то и лет, изредка устраивал для заказчика “шаманства с бубнами”, показывая несомненные преимущества своей программы. После окончания разработок (если они вообще когда-нибудь кончались, иногда разработчик просто тянул из заказчика деньги) заказчик наконец-то получал свою программу и хватался за голову: глюки и баги лезут изо всех щелей, программа абсолютно неудобна и не приспособлена к требуемым задачам, и вообще он не это заказывал. Получалось “заказчик говорил одно, а разработчик услышал другое”. Программа отправлялась на доработку (сопровождаемую дополнительными финансовыми издержками со стороны заказчика), снова “шаманства с бубнами”, снова глюки, баги, снова доработка… ну и так далее, покуда у заказчика не лопалось терпение. С Open Source такого никогда бы не случилось. Увидев малейшие отклонения программы от нормы, заказчик вносит определенные поправки и коррективы в проект, а разработчик мгновенно претворяет их в жизнь. К концу недолгого срока разработки заказчик получает надежную и функциональную, удобную, как домашние тапочки, программу, “заточенную” под его нужды и вкусы. И все довольны. Знаете, какая самая интересная часть любой программы? Ее лицензия. Не верите? А вы хоть раз читали? А, с нетерпением жали на кнопку “Далее” и даже не удостаивали лицензионное соглашение взглядом? Ну и напрасно. Там столько интересного можно обнаружить! Ради интереса последние два месяца читал от начала до конца лицензионные соглашения всех устанавливаемых программ. Уже набралось столько опусов, что этого хватит на отдельную постоянную рубрику в “Мании”. К сожалению, главвред мне такого

Всеобщая Программная Анархия или две стороны одной медали - фото 7

безобразия не позволит, поэтому поверьте на слово: лицензионные соглашения большинства программ — это квинтэссенции глупости их разработчиков и издателей. Такое написать — надо еще очень постараться! Самыми интересными и оригинальными, как всегда, оказались лицензионные соглашения от Microsoft. В предисловии к одному из своих продуктов Microsoft запрещает его использование совместно с потенциально вирусным программным обеспечением. А к таковому можно в первую очередь отнести программы самой Microsoft (в частности, Windows с его COM-архитектурой)! Один MS Visual Basic для приложений чего стоит. Это ведь просто рассадник эпидемий макровирусов! Да уж, умеют разработчики извратиться… Кстати, а как обстоят дела с лицензиями Open Source продуктов? Гораздо лучше. Несмотря на то, что большинство открытого ПО бесплатное, без лицензии обойтись нельзя. Но разработчики Open Source проектов не стали городить многотомных лицензионных монстров, а разработали несколько глобальных форм лицензионных соглашений. Таким образом, при установке открытого ПО вы увидите лишь ссылку на форму лицензии или хорошо знакомые строки. Самыми популярными лицензиями Open Source являются GNU General Public License и Mozilla Public License. Вот некоторые основные пункты этих лицензий: 1. Свободное распространение. Открытое ПО может свободно распространяться как отдельно, так и в составе другого открытого или закрытого ПО. В составе закрытого ПО открытое ПО должно распространяться открыто. 2. Исходный код. Любое открытое ПО должно распространяться вместе с полным исходным кодом и полными или ограниченными вспомогательными ресурсами. Любой человек может как угодно изменять или совершенствовать открытое ПО, а также распространять измененное открытое ПО с обязательным сохранением изначальных авторских прав и форм лицензии. Измененное открытое ПО не может стать закрытым ПО. 3. Лицензия на открытое ПО не может дискриминировать отдельное лицо или группу лиц по любым признакам. 4. Любой человек может использовать открытое ПО в любых целях и в любых областях человеческой **

Всеобщая Программная Анархия или две стороны одной медали - фото 8

деятельности**, если это не противоречит пунктам данного лицензионного соглашения. [Обратите внимание на этот пункт — в любых целях!]5.Лицензия на открытое ПО не должна включать запрещения совместного использования любого другого ПО, как открытого, так и закрытого.[Именно эту международную норму нарушает Microsoft.] Как видите — это самая открытая и самая либеральная лицензия из всех, что когда-либо рождал род людской. Вот мы и подошли к самому интересному и волнующему феномену открытого ПО. Итак, приготовьтесь: открытое ПО удобно, надежно и практически безглючно. Если какое-либо открытое ПО неудобно, ненадежно или глючно, но все еще кому-то нужно, то вскоре оно станет удобным, надежным и практически безглючным. Это аксиома. ЭтоВеликий Закон Open Source. Как так получается? Да очень просто. Допустим, программист задумал проект интересной игры, например, небольшого варгейма. Он начинает проект, и когда понимает, что начало хорошее, выкладывает описание проекта на каком-нибудь общественном Open Source ресурсе. Это сразу же привлекает многочисленных программистов/любителей стратегий. Пока нет демо-версии, на почтовый ящик программиста начинают сыпаться различные предложения/советы по добавлению к проекту новых фишек, модификации идей и концепций и т.д. Естественно, многое из этого отсеивается, но и многое программист принимает к сведению. В результате проект обрастает деталями и подробностями. Вскоре программист выкладывает на всеобщее обозрение демо-версию, и тут для него начинается ад. На него сваливается еще больше одобрений/негодований/советов, а также предложения сотен программистов о помощи. В результате программист решает начать открытую разработку, выкладывает исходники игры на свой сайт и создает**.plan** файл. С этого момента он может быть уверен, что больше половины работы за него сделают другие. Он руководит потоками разработки, принимает исправленные или оптимизированные варианты разных частей игры, пишет дополнительные модули и т.д. Естественно, все желающие могут свободно скачать игру на всех стадиях разработки. Если кому-то что-то не нравится, если кто-то хочет что-то предложить, он пишет об этом автору проекта,

Всеобщая Программная Анархия или две стороны одной медали - фото 9

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

Всеобщая Программная Анархия или две стороны одной медали - фото 10

К концу разработки хороший проект становится известным повсеместно, в его разработке принимают участие сотни программистов, художников, дизайнеров и специалистов всех нужных профессий (хотя изначально проект создавал один человек либо горстка энтузиастов), его с нетерпением ждут тысячи, даже десятки и сотни тысяч человек, он приобретает славу и популярность, а его первоначальные авторы превозносятся людской молвой до небес. В итоге получается качественный, добротный, вылизанный от глюков и недоработок, удобный и надежный продукт, который к тому же хорошо разрекламирован. И это с минимумом усилий со стороны его авторов. Это не сказка. Таков путь любой мало-мальски полезной программы, игры или компонента, если они избрали типом лицензии Open Source. Открытый исходный код — поистине воплощение идей коммунизма сообщества свободных разработчиков. Сейчас с определенностью можно сказать: за Open Source будущее! P.S. На компакте нами выложено несколько программ, созданных программистами демо-сцены. Упомянутая по тексту mesha.com и еще парочка. Посмотрите на досуге. Open Source в Интернете
1) www.opennet.ru — русский центр Open Source. 2) www.linux.com — официальный сайт всех Линукс-дистрибутивов. 3) http://sourceforge.net — система поддержки и координации Open Source проектов. 4) www.osdn.com — система поддержки совместных разработок. 5) http://freshmeat.net — громадный архив для всех программистов Open Source. 6) http://slashcode.com — еще одно сообщество разработчиков открытого ПО.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь