Как развивается движение открытого кода

Термин «открытое ПО» часто упоминается в связи с понятием «свободное программное обеспечение». Одни полагают, что эти термины практически синонимы. Другие – что между ними лежит пропасть. Фото: pexels.com (CC0).
Термин «открытое ПО» часто упоминается в связи с понятием «свободное программное обеспечение». Одни полагают, что эти термины практически синонимы. Другие – что между ними лежит пропасть. Фото: pexels.com (CC0).

Без откры­то­го про­грамм­но­го обес­пе­че­ния (ОПО) или про­грамм­но­го обес­пе­че­ния с откры­тым исход­ным кодом весь мир был бы иным. На нем созда­вал­ся, напри­мер, Интер­нет. Рабо­ту Все­мир­ной сети и сей­час в основ­ном обес­пе­чи­ва­ют реше­ния с откры­тым кодом: сер­вер­ное при­ло­же­ние Apache Web Server, MySQL для баз дан­ных, язык PHP и жем­чу­жи­на коро­ны – опе­ра­ци­он­ная систе­ма Linux. ОПО – это бра­у­зер Mozilla Firefox, гра­фи­че­ский редак­тор GIMP, OpenOffice, ана­лог Microsoft Office, опе­ра­ци­он­ная систе­ма Ubuntu, систе­мы управ­ле­ния кон­тен­том Joomla, Magento или Drupal, архи­ва­тор 7-Zip, FTP-кли­ент FileZilla и тыся­чи дру­гих.

Для того что­бы ПО счи­та­лось откры­тым, его лицен­зия долж­на отве­чать ряду тре­бо­ва­ний. Наи­бо­лее обще­при­знан­ны­ми счи­та­ют­ся 10 кри­те­ри­ев орга­ни­за­ции Open Source Initiative.

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

Кро­ме того, лицен­зия долж­на быть ней­траль­ной: не содер­жать эле­мен­тов дис­кри­ми­на­ции, не быть при­вя­зан­ной к опре­де­лен­но­му про­дук­ту или тех­но­ло­гии.

Тер­мин «откры­тое ПО» часто упо­ми­на­ет­ся в свя­зи с поня­ти­ем «сво­бод­ное про­грамм­ное обес­пе­че­ние». Одни пола­га­ют, что эти тер­ми­ны прак­ти­че­ски сино­ни­мы. Дру­гие – что меж­ду ними лежит про­пасть.

Прин­ци­пы сво­бод­но­го ПО гла­сят, что оно долж­но гаран­ти­ро­вать четы­ре сво­бо­ды поль­зо­ва­те­лей:

  1. сво­бо­ду любо­го исполь­зо­ва­ния;
  2. сво­бо­ду изу­че­ния, адап­та­ции и моди­фи­ка­ции;
  3. сво­бо­ду копи­ро­вать и рас­про­стра­нять про­грам­му;
  4. сво­бо­ду менять, улуч­шать и рас­про­стра­нять свои изме­не­ния.

Любо­пыт­но, что, вопре­ки обы­ва­тель­ско­му мне­нию, ни то, ни дру­гое поня­тие не под­ра­зу­ме­ва­ют бес­плат­ность. И сво­бод­ное, и откры­тое ПО часто рас­про­стра­ня­ют­ся без­воз­мезд­но, но ино­гда его моне­ти­зи­ру­ют, и это не про­ти­во­ре­чит пра­ви­лам.

Напри­мер, постав­щик может пред­ла­гать бес­плат­ную базо­вую и более рас­ши­рен­ную плат­ную вер­сию раз­ра­бот­ки или про­сить поль­зо­ва­те­ля вне­сти сум­му на свое усмот­ре­ние. Для бес­плат­но­го ПО суще­ству­ет свой ярлык – freeware. Исход­ный код таких про­дук­тов может быть и закры­тым, и откры­тым.

Несмот­ря на внут­рен­ние раз­но­гла­сия, при­вер­жен­цы как сво­бод­но­го, так и откры­то­го ПО высту­па­ют еди­ным фрон­том про­тив дру­го­го кла­сте­ра – соб­ствен­ни­че­ско­го, или про­при­е­тар­но­го.

Исход­ный код этих про­грамм, при­ло­же­ний или систем пол­но­стью закрыт, а лицен­зия крайне огра­ни­чи­ва­ет их рас­про­стра­не­ние и исполь­зо­ва­ние. Microsoft Office, Windows, про­грам­мы Adobe (Photoshop, InDesign) – все это про­при­е­тар­ное ПО.

История

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

С нача­лом мас­со­во­го рас­про­стра­не­ния ком­пью­тер­ных тех­но­ло­гий на пер­вый план ста­ли выдви­гать­ся ком­мер­че­ские инте­ре­сы. В 1976 году Билл Гейтс высту­пил со зна­ме­ни­тым «Откры­тым пись­мом люби­те­лям», в кото­ром выра­зил край­нее воз­му­ще­ние тем, как они зани­ма­ют­ся «пират­ством» и нару­ша­ют автор­ские пра­ва постав­щи­ков ПО. Ком­па­нии нача­ли все чаще пря­тать исход­ный код сво­их про­дук­тов. К сере­дине 1980-х годов боль­шая часть выпус­ка­е­мо­го про­грамм­но­го обес­пе­че­ния ста­ла про­при­е­тар­ной.

Отве­том ком­пью­тер­но­го сооб­ще­ства на нарас­та­ю­щие в сре­де отчуж­де­ние и инди­ви­ду­а­лизм ста­ло дви­же­ние сво­бод­но­го про­грамм­но­го обес­пе­че­ния. Его цен­траль­ной фигу­рой явля­ет­ся Ричард Столл­ман, про­грам­мист и борец за сво­бо­ду досту­па к тех­но­ло­ги­ям.

В 1983 году он осно­вал GNU Project с иде­ей дать людям воз­мож­ность исполь­зо­вать их ком­пью­те­ры и ПО без каких-либо огра­ни­че­ний. Он же осно­вал Free Software Foundation (Фонд сво­бод­но­го про­грамм­но­го обес­пе­че­ния), кото­рый сей­час одоб­ря­ет лицен­зии СПО.

Наи­бо­лее рас­про­стра­нен­ная из них – GNU General Public License. Про­ект Столл­ма­на зани­мал­ся раз­ра­бот­кой бес­плат­ных про­грамм­ных ана­ло­гов основ­но­го про­при­е­тар­но­го соф­та, необ­хо­ди­мо­го для рабо­ты ком­пью­те­ра. Его глав­ная раз­ра­бот­ка – опе­ра­ци­он­ная систе­ма GNU/Linux. Ее ядро Linux раз­ра­бо­тал про­грам­мист Линус Торвальдс.

В 1997 году про­грам­мист Эрик Рей­монд опуб­ли­ко­вал ста­тью «Собор и базар». В ней он обсуж­дал тех­ни­че­ские и про­из­вод­ствен­ные досто­ин­ства откры­той моде­ли раз­ра­бот­ки про­грамм­но­го про­дук­та, кото­рую назвал «базар­ной моде­лью».

Его эссе ста­ло новой отправ­ной точ­кой во всей этой исто­рии. Ком­па­ния Netscape под впе­чат­ле­ни­ем от аргу­мен­тов Рей­мон­да опуб­ли­ко­ва­ла код сво­е­го про­дук­та Navigator. Сей­час он состав­ля­ет осно­ву бра­у­зе­ров Mozilla Firefox.

До это­го собы­тия круп­ные постав­щи­ки ПО мало инте­ре­со­ва­лись иде­я­ми откры­то­го исход­но­го кода. Более того, счи­та­ли его враж­деб­ным трен­дом, под­ры­ва­ю­щим инду­стрию. Как пола­га­ли мно­гие, при­чи­ны кры­лись в двой­ствен­но­сти англий­ско­го поня­тия free software – «сво­бод­ное про­грамм­ное обес­пе­че­ние», посколь­ку сло­во «free» часто обо­зна­ча­ет «бес­плат­ное». А вари­ант без­воз­мезд­но рас­про­стра­нять свой про­дукт эти ком­па­нии не инте­ре­со­вал.

В 1998 году тер­ми­ну был устро­ен реб­рен­динг. Тогда ряд акти­ви­стов реши­ли отой­ти от взгля­дов Столл­ма­на и дру­гих, отста­и­вав­ших пра­во юзе­ра делать с ПО все, что душе угод­но.

Они пред­ло­жи­ли аль­тер­на­тив­ный и более праг­ма­тич­ный под­ход. Было «выко­ва­но» новое поня­тие – «откры­тое про­грамм­ное обес­пе­че­ние» без идео­ло­ги­че­ской состав­ля­ю­щей. Его авто­ром явля­ет­ся Брюс Перенс.

Для про­дви­же­ния новой кон­цеп­ции была осно­ва­на орга­ни­за­ция Open Source Initiative. Она долж­на была стать инстру­мен­том мар­ке­тин­га для быв­ше­го сво­бод­но­го, а ныне откры­то­го про­грамм­но­го обес­пе­че­ния и пода­вать его исклю­чи­тель­но с точ­ки зре­ния прак­ти­че­ской поль­зы.

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

Сре­ди про­чих цити­ро­ва­лась, напри­мер, более низ­кая сто­и­мость про­из­вод­ства тако­го соф­та из-за деше­виз­ны исход­ных раз­ра­бо­ток, а так­же боль­шая надеж­ность, так как за каче­ством кода мог­ло сле­дить боль­шое коли­че­ство людей. И это сра­бо­та­ло.

Движение открытого программного обеспечения сегодня

Боб Янг, гла­ва ком­па­нии Red Hat, одно­го из круп­ней­ших про­из­во­ди­те­лей откры­то­го ПО, еще в 1999 году заявил: «Рево­лю­ция закон­чи­лась, рево­лю­ци­о­не­ры побе­ди­ли». Об окон­ча­тель­ном тор­же­стве ОПО вновь заго­во­ри­ли в про­шлом году, когда ком­па­ния Microsoft, в 2001 году назы­вав­шая дви­же­ние откры­то­го кода «рако­вым забо­ле­ва­ни­ем», полу­чи­ла пла­ти­но­вое член­ство в Linux Foundation. Кста­ти, в 2017 году ком­па­ния ста­ла офи­ци­аль­ным спон­со­ром Open Source Initiative.

За 20 лет ОПО пре­вра­ти­лось из экзо­ти­че­ско­го фрук­та в мейн­стрим и стан­дарт. Если в 1998 году ОПО исполь­зо­ва­ло лишь око­ло 10 про­цен­тов IT-ком­па­ний, то, соглас­но опро­су Future of Open Source в 2015 году, 78 про­цен­тов респон­ден­тов исполь­зо­ва­ли его в рабо­те, а две тре­ти – созда­ва­ли реше­ния для сво­их кли­ен­тов на базе ОПО. Более того, чис­ло ком­па­ний, участ­ву­ю­щих в раз­ра­бот­ке опен­сорс­ных про­ек­тов, достиг­ло 64 про­цен­тов.

К досто­ин­ствам ОПО отно­сят, в част­но­сти, его более низ­кую, чем про­при­е­тар­ные ана­ло­ги, сто­и­мость. По оцен­кам, ОПО поз­во­ля­ет биз­не­сам эко­но­мить око­ло 60 мил­ли­ар­дов дол­ла­ров в год.

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

Это кол­лек­тив­ное уси­лие обес­пе­чи­ва­ет высо­кий уро­вень надеж­но­сти ОПО. Кро­ме того, такой софт уни­ка­лен по уров­ню гиб­ко­сти. Его мож­но пере­пи­сать, дора­бо­тать, подо­гнать под свои нуж­ды или тре­бо­ва­ния заказ­чи­ка.

Огром­ное коли­че­ство про­ек­тов с откры­тым исход­ным кодом начи­на­ет и про­дол­жа­ет жизнь на веб-сер­ви­се GitHub, бес­плат­но обслу­жи­ва­ю­щем подоб­ные ини­ци­а­ти­вы. Там раз­ме­ща­ют свои репо­зи­то­рии бук­валь­но все, кто так или ина­че под­дер­жи­ва­ет ПО с откры­тым кодом, от Facebook и Google до пра­ви­тель­ствен­ных ведомств США.

В 2016 году спе­ци­аль­но для послед­них Белый дом раз­ра­бо­тал пра­ви­ла пере­хо­да на откры­тый метод раз­ра­бот­ки. Соглас­но им весь код, напи­сан­ный для одно­го феде­раль­но­го агент­ства, дол­жен быть досту­пен дру­гим феде­раль­ным агент­ствам. Более того, 20 про­цен­тов это­го кода долж­но поме­щать­ся во все­об­щий доступ. Прав­да, пока эта часть про­ек­та рабо­та­ет в пилот­ном режи­ме.

В послед­нее вре­мя наи­бо­лее горя­чая тема в сфе­ре откры­то­го исход­но­го кода – ком­плекс про­грамм OpenStack для облач­ных хра­ни­лищ и сер­ви­сов. Сей­час его под­дер­жи­ва­ют око­ло 500 ком­па­ний. Соглас­но опро­су SUSE 81 про­цент раз­ра­бот­чи­ков исполь­зу­ют или пла­ни­ру­ют начать исполь­зо­вать OpenStack.

Открытый исходный код как философия

Совре­мен­ное ОПО достиг­ло мощ­но­сти, каче­ства и уров­ня про­ник­но­ве­ния, пре­вос­хо­дя­щих харак­те­ри­сти­ки любо­го про­при­е­тар­но­го ПО. Как пола­га­ют мно­гие, идеи в осно­ве кон­цеп­ции откры­то­го кода – доступ­ность инфор­ма­ции, сотруд­ни­че­ство и откры­тость – пре­вра­ти­лись в фило­со­фию и выплес­ки­ва­ют­ся за пре­де­лы ком­пью­тер­но­го мира, пре­вра­ща­ясь в «куль­ту­ру откры­то­го кода». Неко­то­рые раз­мыш­ля­ют о том, что она во мно­гом пере­кли­ка­ет­ся с иде­ей откры­то­го обще­ства в части, каса­ю­щей­ся про­зрач­но­сти.

Так, к нара­бот­кам дви­же­ния откры­то­го кода мож­но отне­сти, напри­мер, Вики­пе­дию или лицен­зии Creative Commons, на созда­ние кото­рых авто­ров вдох­но­ви­ли идеи GNU Project. Про­ект «Гутен­берг» или Open Textbook Library, пуб­ли­ку­ю­щий учеб­ни­ки с откры­той лицен­зи­ей, – при­ме­ры откры­то­го кода в обра­зо­ва­нии.

OpenTripPlanner поз­во­ля­ет пла­ни­ро­вать марш­ру­ты. Реше­ния на его осно­ве сей­час тести­ру­ют­ся в Хель­син­ки, Вален­сии, Нью-Йор­ке, Позна­ни. Arduino выпус­ка­ет элек­тро­ни­ку, в том чис­ле тан­цу­ю­щий робот-чай­ник с откры­тым исход­ным кодом. Openmoko – про­ект для опен­сорс­ных мобиль­ных теле­фо­нов.

В 2017 году IKEA объ­яви­ла о выпус­ке дива­на с откры­тым исход­ным кодом. Тре­тьи сто­ро­ны полу­чат воз­мож­ность улуч­шать и дора­ба­ты­вать его. Есть даже опен­сорс­ная кола и сво­бод­ное пиво, чьи рецеп­ты опуб­ли­ко­ва­ны под лицен­зи­ей GNU.

Реше­ния с откры­тым исход­ным кодом мож­но най­ти повсю­ду: в меди­цине, напри­мер, OpenEMR для управ­ле­ния меди­цин­ски­ми исто­ри­я­ми и ката­ло­га­ми, робо­то­тех­ни­ке и дру­гом про­ек­ти­ро­ва­нии физи­че­ских объ­ек­тов. В инду­стрии это направ­ле­ние назы­ва­ет­ся откры­тым про­ек­ти­ро­ва­ни­ем.

Автор Guardian и соци­аль­ный пред­при­ни­ма­тель Джефф Кокс счи­та­ет, что идеи ОПО спо­соб­ны вдох­но­вить на новый стиль веде­ния биз­не­са и про­дви­нуть соци­аль­ное пред­при­ни­ма­тель­ство. Он выде­ля­ет три уни­вер­саль­ные харак­те­ри­сти­ки дви­же­ния откры­то­го кода:

  1. откры­тый обмен иде­я­ми и зна­ни­я­ми. Такой под­ход, как счи­та­ет Кокс, спо­со­бен уско­рить инно­ва­ции в любой сфе­ре;
  2. удо­вле­тво­ре­ние от сотруд­ни­че­ства. Откры­тый исход­ный код моти­ви­ру­ет тыся­чи талант­ли­вых людей вме­сте зани­мать­ся усо­вер­шен­ство­ва­ни­ем. Таким обра­зом, ОПО «воз­рож­да­ет силу кол­лек­ти­ва и вза­и­мо­по­мо­щи»;
  3. ОПО – живое дока­за­тель­ство суще­ство­ва­ния успеш­ных биз­нес-моде­лей, кото­рые при­во­дят к созда­нию бес­плат­но­го или доступ­но­го про­дук­та или услу­ги. Как пишет Кокс, в них стан­дарт­ные «осно­ван­ные на поис­ке выго­ды и экс­плу­а­та­ции» пары «про­из­во­ди­тель – потре­би­тель» заме­ня­ют­ся на «сотруд­ни­ча­ю­щие сооб­ще­ства».

Идеи откры­то­го исход­но­го кода отлич­но сум­ми­ру­ет OpenSource.com, назы­вая их систе­мой взгля­дов на жизнь:

«Откры­тый исход­ный код озна­ча­ет готов­ность делить­ся, сотруд­ни­чать с дру­ги­ми в про­зрач­ной мане­ре (так, что­бы осталь­ные мог­ли наблю­дать и при­со­еди­нять­ся к рабо­те), вос­при­ни­мать неуда­чи как спо­соб стать луч­ше, убеж­дать дру­гих посту­пать так же. Это зна­чит играть актив­ную роль в улуч­ше­нии мира вокруг, что воз­мож­но лишь тогда, когда у каж­до­го чело­ве­ка есть доступ к его струк­ту­ре. Вокруг столь­ко «исход­но­го кода» – чер­те­жи, рецеп­ты, пра­ви­ла. Они опре­де­ля­ют нашу жизнь и пове­де­ние. Мы счи­та­ем, что этот «код» дол­жен быть откры­тым и обще­до­ступ­ным, что­бы как мож­но боль­ше людей мог­ли при­ло­жить руку к его усо­вер­шен­ство­ва­нию».