Процесс разработки открытого программного обеспечения
Программы обеспечение с открытым исходным кодом как методология разработки имеет потенциал, способный в корне изменить подход к созданию программного обеспечения, обеспечивая в результате надежное программное обеспечение и упрощенный процесс разработки.
Теоретический процесс описан Эриком Раймондом в The Cathedral and the Bazaar и в Homesteading the Noosphere
В основе этого метода лежит совместная работа, посредством Интернета, над кодом программного обеспечения. Изменения в исходном коде обычно предлагаются в виде фрагментов кода на список разработчиков программы. Некоторые разработчики запускают эти фрагменты вручную и испытывают их на своих системах. Если основные разработчики одобряют эти изменения, то в конце концов фрагмент файла передается в хранилище кода CVS, которое фактически становится стандартной системой контроля версий.
В большинстве проектов списки адресатов (mailing lists) автоматически архивируются, доступны on-line, обеспечивают базовую reply-threading функциональную возможность и могут быть использованы для hypertext browsing. В основном, список адресатов (mailing list) предназначен для посылки сообщений об ошибках (bug-report mailing list) и используется в качестве системы контроля и учета ошибок.
Примеры проектов с открытым исходным кодом
В настоящее время в стадии разработки находятся тысячи проектов с открытым исходным кодом. Проекты, краткое описание которых приведено ниже, наиболее известны благодаря влиянию, которое они оказывают в своей области, масштабам и успешному осуществлению. Далее более подробно описаны два известных проекта–Apache Web Server и Linux kernel.
Linux
Можно утверждать, что Linux является наиболее известным на сегодняшний день проектом открытого исходного кода. Это ядро (kernel) операционной системы типа Unix, стремящийся к полной реализации в POSIX-спецификации с SYS V и BSD расширениями. Начавшись в 1991г. очень скромно, всего лишь как личное хобби Линуса Торвальдса, в то время студента Хельсинского универститета, с годами Linux приобрел возрастающую популярность и широкие функциональные возможности. Из небольшого ядра (kernel), содержащего всего 10,000 строк кода, Linux эволюционировал в современную операционную систему с полным набором функциональных возможностей, содержащую более 2 миллионов строк кода. Количество пользователей Linux выросло с менее чем 100 до более чем 20 миллионов в 2001г. По мере постепенного возрастания популярности Linux в академических кругах, среди Интернет Сервис Провайдеров и научных исследователей, в последнее время Linux широко освещается в средствах массовой информации, в радио- и теле-программах и бизнес-прессе.Linux является основой таких сайтов, как Deja.com, eBay, и многих серверов NASA.
Web-сервер Apache
Web-сервер Apache был создан в начале 1995г. из собранных воедино фрагментов кода (отсюда и название Apache – «A PATCHY server»; patches дословно переводится с английского как «заплаты»). Эти фрагменты кода были собраны в единое целое группой энтузиастов-добровольцев и являются вкладом отдельных web-мастеров, разочарованных отсутствием тенденций дальнейшего развития NSCA и затем представлены на рассмотрение сообщества web-разработчиков. Соединение фрагментов кода в одно целое было большим успехом, и группа разработчиков приступила к полному пересмотру дизайна и усовершенствованию сервера. Apache 1.0 был выпущен в массовое производство 1 декабря 1995 г. и начал свое восхождение на пути к полному доминированию на рынке web-серверов. Согласно опросу Netcraft survey, Apache составил 54% используемых web-серверов в феврале 1999 г. и 62% в апреле 2001 г.
Другие значимые проекты Открытого Исходного Кода перечислены ниже:
- GNU Проект GNU был запущен в 1984 г. для разработки законченной операционной системы типа Unix и является бесплатным программным продуктом под названием система GNU (GNU system)
- Gnome Проект GNOME создал полную бесплатную и простую в обращении desktop-среду для пользователя, а также мощную среду программирования для разработчиков программного обеспечения. GNOME представляет собой часть проекта GNU и является бесплатным программным продуктом ( иногда называемым также программным продуктом с открытым исходным кодом ). GNOME включен в состав дистрибутивных пакетов программ BSD и GNU/Linux и работает на многих других системах UNIX.
- Mozilla Mozilla является web-браузером с открытым исходным кодом, дизайн которого направлен на соблюдение принятых стандартов, высокий уровень функционирования и совместимость.
- KDE KDE является мощной графической desktop-средой с открытым исходным кодом для рабочих станций UNIX. Она совмещает в себе простоту использования, современные функциональные возможности и отличный графический дизайн, обусловленный технологическим превосходством системы UNIX.
- Perl Perl, язык программирования, используемый для обработки текстов, изобретен, разработан и усовершенствуется Ларри Уоллом (lwall@netlabs.com). Обладая изощренными возможностями сопоставления образцов (pattern matching), упрощенной системой ввода/вывода и гибким синтаксисом,Perl стал предпочитаемым языком программирования для многих программ ввода/вывода данных, обоаботки файлов, управления файлами, доступа к базам данных, графических программ, сетевых приложений, программирования во всемирной сети (world wide web) и решения задач системного администрирования.
- Python Python является интерпретируемым, интерактивным, объектно-ориентированным языком программирования. Он включает в себя такие возможности как модули, обработка исключений, динамический набор текстов, динамические типы данных очень высокого уровня и классы. Python совмещает в себе значительную мощь с очень внятным синтаксисом. Он обеспечивает интерфейсы для вызовов многих системных команд и библиотек, а также для разнообразных систем типа window и может быть расширен в С и С++. Он может быть также использован в качестве языка-расширения для приложений, которые нуждаются в программируемом интерфейсе. В заключение следует заметить, что Python обладает таким качеством, как совместимость: он работает на многих марках UNIX, на Mac и на персональных компьютерах под MS-DOS, Windows, Windows NT и OS/2.
- PHP PHP - это язык-скрипт с внедренным HTML для создания межплатформенных приложений серверной стороны.
- Wine Wine – это реализация Windows 3.x иWin 32 APTS поверх X и UNIX.
Основные инструменты Открытого Исходного Кода
Ниже приведен список основных инструментов, используемых раэработчиками при разработке Открытого Исходного Кода:
- GCC (GNU Compiler Collection) GSS (GNU c compiler, или gcc) , был разработан GNU с целью создания бесплатного компилятора для системы GNU. В настоящее время GCC способен компилировать программы, написанные на С, С ++, Objective C, Ada 95, Fortran 77 (g 77 ) и Pascal, отсюда и новое названиеGNU Compiler Collection (Коллекция компиляторов GNU). GNU Compiler Collection включает теперь и Java Compiler, то есть компилятор для языка программирования Java.
- Инструменты GNU (make, automake, autoconf)
- CVS – Version Control Systems (Система Контроля Версий)
- KDevelop Kdevelop – Project является простым в использовании C/C++ IDE (Integrated Development Inviromment (Интегрированная Среда Разработки)) для Unix.
Создание программного обеспечения путем сотрудничества
Сотрудничество в процессе создания Открытого Исходного Кода, в соответствии с описанием, приведенным в The Cathedral and the Bazaar, явилось толчком к зарождению специализированных web-сайтов, которые обеспечивают систематическую основу для сотрудничества в области разработки Открытого Исходного Кода. Этот метод был испробован в других областях, таких, как сотрудничество в совместном обзоре и редактировании журналов в Интернете, например, First Monday.
- SourceForge.net: Source Forge – это бесплатный сервис для разработчиков Открытого Исходного Кода, предоставляющий свободный доступ к CVS спискам адресатов (mailing lists), системе контроля и учета ошибок (bug tracking), доскам объявлений (message boards), форумам, системе контроля и выполнения задач (task management), перманентной архивации файлов, полному сохранению резервных копий (full backups), и полному web-администрированию.
- Tigris.org: Tigris org – это средних размеров сообщество Открытого Исходного Кода, сфокусированное на разработке усовершенствованных инструментов для сотрудничества в области разработки программного обеспечения. Tigris совмещает в себе наилучшие инструменты открытого исходного кода для разработки программного обеспечения в масштабах Интернета. Основными свойствами Tigris являются безопасность, гибкие масштабы использования, расширяемость и возможность проведения удобных с пользовательской точки зрения изменений. Tigris обеспечивает простые, но мощные web-интерфейсы для инструментов контроля версий, контроля, обсуждения и решения проблем, автоматизированной разработки, автоматизированного тестирования, управления проектом и пользования приобретенными знаниями.