Языки программирования и инструментальные средства разработки приложений с открытым кодом

Интегрированную среду KDevelop и другие аналогичные средства выбирают не потому, что не могут заплатить. Их преимущество состоит в том, что они позволяют решить стоящую задачу наилучшим образом
Реализация проектов разработки прикладных программ сопряжена со множеством трудностей. Начинается все с нехватки опытных специалистов и с нечетко сформулированных требований. Высокая стоимость средств разработки и нежелание разработчиков признавать ошибки (равно как и оперативно устранять их) также добавляют головной боли менеджерам проектов.

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

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

Дополнительные выгоды

Использовать свободно распространяемое ПО для разработки коммерческих приложений имеет смысл во многих случаях — и вовсе не только для того, чтобы сэкономить деньги. Если к реализации одного проекта привлечены силы всего мирового программистского сообщества, гарантирован регулярный выпуск новых версий, быстрое устранение обнаруженных ошибок и наличие большого числа дополнительных модулей. Эти преимущества инструментов с открытым кодом означают, что программистам придется писать меньше. Таким образом, снижается вероятность появления ошибок, а для реализации крупных проектов требуется меньше разработчиков.

Возьмем любой из популярных языков: PHP, Perl, Python или Tcl/Tk. Нетрудно заметить, что большинство вопросов, вызывающих сложности у программистов, здесь уже решены. Если же разработчика все же что-то не устраивает в существующем языке, он может самостоятельно внести изменения в исходный текст реализующих язык программ и адаптировать его к условиям поставленной задачи. Сделав это, он может предложить свои расширения для реализации аналогичных проектов. Это очень плодотворный подход, стимулирующий разработчиков и позволяющий им гордиться результатами своего труда.

Приложению, которое удачно адаптируется к особенностям нового оборудования и операционных систем, суждена гораздо более долгая жизнь по сравнению с программой, жестко привязанной к какой-то определенной платформе. В целом сообщество разработчиков программного обеспечения с открытым кодом значительно быстрее реагирует на появление новых технологий, чем производители коммерческих продуктов. К примеру, «коллекция компиляторов» GCC (GNU Compiler Collection), которая является любимым набором инструментальных средств у очень многих разработчиков, поддерживает гораздо более широкий спектр процессоров и операционных систем по сравнению с любым коммерческим компилятором, причем список этот постоянно расширяется.

Разработка программного обеспечения с открытым кодом, естественно, ассоциируется с операционными системами Linux и BSD; однако наиболее популярные языки и инструменты поддерживают, как правило, еще Solaris и Windows. Этому не мешает даже традиционная неприязнь сторонников создания программ с открытым кодом к корпорации Microsoft. В Windows нет стандартного компилятора C/C++ (а именно на этих языках написана большая часть инструментальных средств с открытым кодом), и приложения для Windows поставляются в уже скомпилированной форме.

Конфликт интересов

Производители коммерческого программного обеспечения предостерегают корпоративных пользователей от использования конкурирующих продуктов с открытым кодом. Проведенный еженедельником InfoWorld опрос показал, что техническое руководство предприятий в своем большинстве считает уровни надежности, безопасности и лицензионной чистоты программ, а также ответственности разработчиков программ с открытым кодом недостаточными. Но если вы повнимательнее присмотритесь к инструментарию с открытым кодом и послушаете отзывы тех, кто использует их на коммерческой основе, вы поймете, что для подобных опасений нет оснований.

Когда-то такие средства отличались большим количеством ошибок и функциональных ограничений, однако привлечение к реализации проектов высококвалифицированных и талантливых специалистов привело к тому, что большинство подобных неприятностей осталось в прошлом. К примеру, недавно мне понадобилось написать тестовую программу, которая должна была работать в среде Linux. У меня имелось много коммерческих инструментов, но я отдаю предпочтение KDevelop — интегрированной среде проектирования приложений на C/C++, созданной коллективом KDesktop Environment. С помощью KDevelop удалось не просто выполнить поставленную задачу, но сделать это настолько быстро, красиво и элегантно, что я не смог удержаться от звонка коллегам и от хвалебных слов. KDevelop и другие аналогичные средства выбирают не потому, что не могут заплатить. Их преимущество состоит в том, что они позволяют решить стоящую задачу наилучшим образом.

Вопреки распространенному мнению, в процессе совершенствования ведущих инструментальных средств с открытым кодом нет никакой анархии. В реализации проекта могут принимать участие сотни разработчиков, но обязательно присутствует один человек или группа, которые следят за выпуском новых версий. Да и текучка кадров здесь гораздо меньше, чем в коммерческих проектах. Каждая строка нового кода является предметом всеобщего обсуждения и тщательного тестирования. Обнаруженные ошибки тут же становятся достоянием гласности. Все это вместе взятое обеспечивает высокий уровень надежности и препятствует появлению неверного кода.

Рост популярности инструментальных средств с открытым кодом приводит к появлению их коммерческих версий: PHP превратился в Zend, Python — в Zope, Perl — в ActiveState, а GCC — в Red Hat GNUPro. Но начало распространения на коммерческой основе не влечет за собой заоблачных цен и функциональных ограничений. Поставщики коммерческих инструментальных средств с открытым кодом прежде всего стремятся обеспечить жизнеспособность проекта и его дальнейшее финансирование. Денежные вливания помогают поддерживать проект на должном уровне и ускоряют появление новых, качественных версий. Клиенты получают необходимую техническую поддержку. Со временем поставщики ПО с открытым кодом разрабатывают документацию, организуют обучение и консультации, сертифицируют свои службы.

Лицензионные соглашения на программное обеспечение с открытым кодом — еще один источник противоречий. Жадность отдельных лиц привела к тому, что теперь бесплатные программы не могут оставаться общедоступными без лицензионной защиты. И прежде чем устанавливать у себя комплект инструментов разработки, убедитесь в том, что ваши планы их использования не идут вразрез с лицензионными ограничениями. Не обращайте внимания на декларации конкурирующих производителей об экономической угрозе, которую несут в себе лицензии на ПО с открытым кодом. Лучше поговорите прежде с поставщиком, продвигающим на рынке те инструменты, которые вам приглянулись. Скорее всего окажется, что условия лицензионного соглашения позволят вам сэкономить деньги, обеспечить требуемую гибкость и переносимость, а также воспользоваться другими уникальными преимуществами языков и инструментальных средств с открытым кодом.