Philip Torchinsky bio photo

Philip Torchinsky

UNIX, developer relations, skiing

Twitter

Правительства разных стран в последние 15 лет охотно поощряли использование открытых продуктов для государственных нужд, а многие компании видели в открытом ПО спасение от высоких затрат на программное обеспечение. Однако ожидания и реальность совпали не во всем. Попробуем разобраться подробнее, что именно важно открывать, и чем открытым - пользоваться.

Терминология

(пропустите этот раздел, если вы и так знаете, что такое открытые код, форматы данных и данные)

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

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

Открытый формат данных - это формат, вся информация о сохранении данных в котором публично доступна. Проще говоря, любой программист может написать свою программу для работу с данными в этом формате. Примеры таких форматов - .txt, .jpg, .odt. Формат .doc таким, например, не является.*

Открытые данные - это информация (обычно собранная государственными органами), которая публично доступна в каком-либо (обычно) открытом формате. Например, Росстат может публиковать в интернете статистику по отраслям промышленности или демографические данные по всей стране, МВД - статистику преступности, и т.д.

Зачем нужно открытое ПО?

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

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

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

Важно помнить, что любая компьютерная программа потенциально может жить очень долго. Например, “Экспресс-2”, систему продажи билетов на поезда в РЖД, написали в 1980-е (если не 1970-е) годы, и с тех пор она несколько устарела, но до сих пор используется. Поэтому львиная доля затрат на ПО возникает не при покупке, а при обслуживании программного обеспечения.

Все не так просто: эксперимент в Мюнхене

Соответственно, для серьезных организаций, а не для частного пользователя, основное преимущество открытого ПО не в том, что оно часто (хотя и не всегда) бесплатно, а в том, что его обслуживание может быть дешевле. В середине 2000-х бытовало мнение, что обслуживание открытого ПО всегда дешевле, однако на практике это оказалось еще одним мифом. Муниципалитет Мюнхена провел весьма дорогостоящий, но показательный эксперимент: в 2001 году запланировали перевод 80% компьютеров городских властей на Linux, в 2006 начали его воплощать, в 2014 - задумались об отмене перехода. Оказалось, что на лицензиях деньги сэкономили, но на доработку открытых решений под свои нужды потратили едва ли не больше, чем сэкономили.

Если серьезно взглянуть на проблемы этого перехода к открытому ПО, то они сводятся к следующему: интерфейс новой системы непривычен для пользователя и интуитивно непонятен, форматы данных отличаются (пусть незначительно) от форматов, в которых ведут переписку коллеги из других организаций документы, созданные в прошлом или на домашнем компьютере, или в других программах корреспондентами из других организаций, внешне отличаются при открытии в новых офисных программах в новой системе не всегда доступны привычные функции (не проиграть присланный по e-mail видеофильм из-за отсутствия кодека, не открыть документ, не запустить чат и т.п.)

Ровно те же проблемы, кстати, ждут любого пользователя, который захочет перейти с Windows на Mac OS, например, так что эти проблемы не уникальны для открытого ПО, они возникают при любом переходе на ПО, заметно отличающееся от ранее использовавшегося.

Еще одна ловушка открытости

Несмотря на то, что код открытого ПО на самом деле полностью открыт, большинство пользователей не скачивают сам этот код для последующего использования. Это происходит потому, что код сам по себе не начнет работать у вас в компьютере - для превращения кода в работающую программу надо ее “собрать”, т.е. вначале передать код компилятору - инструменту разработчика ПО, который переведет код с языка программирования в коды, понятные процессору компьютера, затем соединить полученный код с кодом программных библиотек (ранее написанных компонентов программ, которые используются многими программистами в мире) и т.п. Сборка программы выполняется специальными инструментами и обычный пользователь не имеет ни этих инструментов, ни квалификации, чтобы программу собирать. Поэтому он просто жмет на кнопку Download на сайте и привычно загружает программу в том виде, в котором она готова для работы на его компьютере. А в таком виде программа с открытым кодом ничем не отличается от программы с закрытым кодом.

И подавляющее большинство пользователей никогда не будет проверять, есть ли в загруженной из интернета программе зловредный код или нет: вы же никогда не проверяете, положил ли кто-нибудь на заводе дохлую крысу в вентиляцию вашего нового автомобиля?

Что важно открывать

Для надежного функционирования любой компьютерной системы, особенно в большой корпорации или в государстве, важно, чтобы:

  1. данные в системе хранились в открытом формате - т.е. во всем известном и однозначно описанном в публично доступных документах,
  2. формат был достаточно хорошо известен специалистам, чтобы при необходимости можно было достаточно быстро написать новое программное обеспечение для чтения и модификации документов в этом формате.

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

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

Что важно понимать

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

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

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

Стоит ли использовать открытое ПО?

Если оно так же удобно, как и неоткрытое - безусловно да. Моя мама (ей уже больше 70 лет) пользуется Linux (а Linux - это открытое ПО) и использует три программы в нем - почтовый клиент, браузер и Skype. Для нее они выглядят совершенно также, как много лет назад - в Windows XP. Единственное, что мне пришлось настроить после установки системы - это вид рабочего стола: известную всем фотографию Napa Valley с холмами и облаками пришлось перенести со старого ноутбука.

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

Что важнее - открытое ПО или открытые форматы данных?

Открытое ПО и открытые форматы не противоречат и никак не мешают друг другу, однако если государство или компания стоят перед выбором: инвестировать в открытое ПО или в открытые форматы данных, я бы выбрал - для начала - форматы данных.

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


* точнее говоря, формат .doc существует с 1990-х годов, и с 2008 года он открыт, ибо его описание опубликовано, однако сложность формата и неидеальность описания снижает практическую пользу открытости.