![](../004.gif)
Как создается программа
Спецвыпуск Хакер, номер #004, стр. 004-012-1
The Hound of Winter (thow@ireland.com)
Привет! Тебе уже надоело изучать языки программирования только в теории? Хочется попробовать свои силы на настоящем проекте с бета-версиями и релизами? Тогда поговорим о том, как создается Программа - настоящая Программа, а не дружеские фишки типа HackInternetPasswords (о них ты и сам все знаешь). ;-) Обычно в процесс создания коммерческой программы вовлекается очень много людей, начиная с художников-дизайнеров, которые рисуют логотипы и окна диалогов, и заканчивая продюсерами, которые под конец работ собирают деньги и сбегают. ;-) Но существуют также и проекты "Open Source Projects" - проекты с открытыми исходными текстами, которые обычно ведут одни программисты. Вернее, они по совместительству являются еще и художниками, и продюсерами, и распространителями, и координаторами... и т.д. Обычно они создают абсолютно бесплатные программы, которые энтузиасты потом дописывают и поддерживают по нескольким причинам. Во-первых, это обыкновенный понт - желание выпендриться и показать собственную крутость: "А я вот так умею да так, что именно как я никто не смог!". ;-) Это же самое чувство сподвигло многих стать демомейкерами, вирусописателями и прочими кодерами. Во-вторых, обычно это желание иметь хорошую и неглючную утилиту, которая умеет больше, чем всякие поделки от M$. В-третьих, это просто интересно, и, однажды втянувшись, человек уже не может не писать программы. А когда это делаешь не один, а в группе таких же кодеров, которые один лучше другого, то со временем приобретается бесценный опыт кодинга и программерства. Дело это довольно долгое и на самом деле состоящее из множества этапов. Пройдемся по каждому из них и посмотрим, какие подводные камушки могут подстерегать наш Титаник. ;-)
Часть 1. Идея
Итак, все начинается с идеи. Кому-то (поначалу весь проект ведет один человек) падает на голову кирпич или еще что, но этот кто-то однажды заявляет: "Э! А почему бы мне не написать вот такую классную прогу!". Тут-то все и закручивается. Сначала придумываются всевозможные фичи, которые должна поддерживать эта программа, придумывается ей название и устанавливается первоначальный порядок авторства (чтобы в больших коллективах потом не возникало проблем вроде: "А почему Пупкина опять первым написали? Он вообще ничего не делал!!!"). Идея обязательно должна быть красивой и привлекательной - иначе на нее никто не клюнет, и все придется делать тому, кто ее придумал. Писать в одиночку обычно надоедает, особенно если проект большой, а идея не так уж и интересна. ;-)
Часть 2. Набор участников
После того как идея сформирована, обрела достаточную прочность и представляет собой законченную мысль, инициатор проекта может начать агитировать своих знакомых, друзей и близких просто начать рекламную кампанию по продвижению этой идеи. Попросту говоря, набираются те, кто потом будет на халяву трудиться над проектом. А то, что это должен быть проект, - понятно само собой. Немного официальности, немного растопыренных по-хорошему пальцев, и (вуаля! - как говорят французы) находятся добровольцы, которые также загораются идеей проекта бесплатного навороченного мейлера-почтовика со встроенными возможностями дистанционного управления холодильником или проекта драйверов для микроволновой печи под Windows 2000. Да-да, открытый проект - это не обязательно только Linux/Unix. Например, совсем недавно ко мне в руки попал Dos Navigator Open Source Project, написанный под DOS и DOS/DPMI на Borland Pascal 7.0. Так что платформа, язык программирования и погода на улице особой роли не играют. Важна именно идея. Dos Navigator, например, был изначально коммерческим продуктом. За него платили деньги, но позже фирма-производитель отказалась от дальнейшего исправления немереного количества багов в своем продукте и "выбросила" в Интернет исходники со словами и пожеланиями всем, кому не лень, наделать там новых багов. Так до сих пор и делают. И удачно, надо сказать, поскольку глючит по-страшному. ;-)