Как создается программа
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, например, был изначально коммерческим
продуктом. За него платили деньги, но позже фирма-производитель
отказалась от дальнейшего исправления немереного количества багов
в своем продукте и "выбросила" в Интернет исходники со словами
и пожеланиями всем, кому не лень, наделать там новых багов. Так
до сих пор и делают. И удачно, надо сказать, поскольку глючит
по-страшному. ;-)