Computer Science, Innovations and Education vs Open Source

Открытое программное обеспечение (англ. open-source software) - программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет любому желающему принять участие в доработке самой открытой программы, использовать код для создания новых программ и для собственных продуктов.

Идеология Открытого Программного Обеспечения зародилась в конце 80-ых. Уже тогда разработка программного обеспечения была дорогостоящим бизнесом, ключевыми элементами которого было лицензирование, патентование закрытого кода и решений, что препятствовало свободному распространению новых знаний и технологий. Идеология зародилась в студенческой среде и привела к появлению открытого ядра Linux, набора открытых программ GNU. При их слиянии зародился проект GNU/Linux - свободно распространяемая открытая операционная система.

С тех пор, идеология открытого ПО набирает обороты. Количество открытых проектов растет с каждым годом. Многие университетские исследовательские проекты публикуются под открытыми лицензиями, включив Open Source в научный и образовательный процесс. Некоторые торговые компании, как например Red Hat, работают с открытым ПО и являются коммерчески успешными. Кроме того, полностью проприетарные, закрытые проекты содержат в себе сторонние открытые библиотеки и программы, и, фактически, не могут быть созданы “с нуля”, не используя в процессе их создания открытое ПО.

Таким образом, Open Source является частью образовательных, научно-исследовательских и коммерческих проектов. Данное явление, выйдя за рамки привычного подхода к разработке и распространению ПО, существенно повлияло на эти области.

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

Open Source стал так же неотъемлемой частью образовательного процесса в области компьютерных наук. Многие открытые проекты по своему качеству ничем не отличаются от коммерческих, а значит, что для их разработчиков предъявляются требования как для высококлассных специалистов закрытых проектов. Открытость проекта позволяет включиться в разработку, принять участие в создании нового функционала или отладке существующего. Конечно, доработки будут приниматься не сразу, и в первое время отсеиваться сообществом, ведь для того, чтобы код попал в <<upstream>> нужно существенно повысить его качество, что требует навыков и умений. Получить их можно только в процессе разработки, шаг за шагом повышая качество кода. Таким образом, приняв участие в Open Source проекте, любой будущий инженер может учиться на примере, постоянно совершенствуя свои навыки. Кроме того, включение в сообщество позволяет будущему разработчику определиться со специализацией и выявить умения, которых ему не хватает для профессиональной карьеры.

Развивающаяся концепция инженерного образования CDIO (Conceive, Design, Implement, Operate) подразумевает вовлечение будущего инженера в реальный инженерный проект в течение всего процесса обучения. Применимо к инженерам-программистам (Software Engineer), это может быть реализовано на базе уже существующих Open Source проектов, или при создании нового. Поскольку образовательные треки Software Engineers и Computer Scientists пересекаются, то участие магистров и бакалавров в Open Source проектов, возникающих в процессе научной работы аспирантов, способствует вовлечению молодых специалистов в научные проблемы.

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

Построение коммерческой компании на основе Open Source продукта требует специальной бизнес модели. Открытые исходные коды дают возможность конкурентам использовать наработки, а значит, в Open Source бизнес моделях ключевыми требованием к команде становятся ее производительность труда и эффективность. Коммерциализация происходит не на продаже продукта, а на обеспечении дополнительной поддержки - кастумизация продукта под определенные требования применения, техническая поддержка, консультации, внедрение. В этом случае компания близка по своей сути к сервисной модели, ведь <<продает>> она не продукт, а сервис по адаптации Open Source ПО к требованиям заказчика. В этой модели распространенность и популярность открытого кода способствует привлечению новых клиентов, ведь если проект качественный и является востребованным, то он включается в экосистему, на его основе разрабатываются новые продукты, расширения и дополнения. Что в конечном счете привлекает коммерческих потребителей. С этой точки зрения, открытый код способствует привлечению клиентов эффективнее, чем маркетинг и реклама.

Наиболее известной компанией в области Open Source является компания Red Hat. Компания Red Hat занимается разработкой дистрибутива Linux, создавая на его основе Enterprise решения в области облачных вычислений и виртуализации. Под эгидой Red Hat выпускается несколько дистрибутивов Linux, некоторые, например, Fedora вляется полностью открытыми, в то время как RHEL (Red Hat Enterprise Linux) бесплатно доступен только в начальной версии - обновления доступны только по подписке. При этом, связь между Fedora и RHEL очень тесная: Fedora Project является своего рода полигона для тестирования пакетов, которые в конечном счете попадают в стабильную, но не так быстро развивающуюся, RHEL. Компания Red Hat является публичной компанией, с оборотом в 1.13 млрд$ по итогам 2012 года.

Коммерческие корпорации, например, такие как Google и Facebook, способствуют развитию Open Source движения и проектов. Например, Google каждый год проводит Google Summer of Code, в рамках которого практически любой Open Source проект может получить поддержку от Google посредством оплаты труда нескольких студентов. Учащиеся старших курсов университетов могут принять участие в любом интересном Open Source проекте, а Google, соответственно, оплачивает стипендию тем, кто справился со своей задачей. Компания Facebook в 2012-2013 годах разработала и запустила программу Facebook Open Academy по интеграции Open Source и образовательного процесса в области компьютерных наук. Участникам этой программы, в рамках своих образовательных программ, могут засчитать участие в Open Source проектах в качестве образовательных курсов.


pdf версия