Статьи
ГИС Программирование

ГИС и опенсорс: важность ПО с открытым исходным кодом для сферы геотехнологий

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

Что будет в этой статье

Что такое опенсорс (open source)

У каждой программы есть исходный код — набор команд на языке программирования, определяющих ее работу. Если исходный код приложения находится в открытом доступе, и лицензия позволяет его изменять — это опенсорс, или приложение с открытым исходным кодом. Код такого ПО можно посмотреть, предложить изменения и даже взять основу для своего проекта — все это позволяет открытая лицензия.
Самая известная и часто используемая лицензия в опенсорсе: GNU General Public License (GPL), и под ней как раз выпущен QGIS, самое известное открытое ПО ГИС. Есть и другие открытые лицензии: The Apache License, MIT License, CDDL, EDL и прочие. Не будем на них останавливаться прямо сейчас, это материал другой статьи, главное знать, что лицензия у открытого ПО тоже есть, и она диктует условия этой открытости.
Антоним опенсорса — проприетарное ПО. По условиям лицензии проприетарных приложений только авторы могут просматривать и изменять его исходный код: пользователи таких программ соглашаются не вносить в них никаких изменений, а разработчики не могут раскрывать код в сети.

Чтобы разобраться, посмотрим на известные примеры:

Проприетарное ПО — Microsoft Office, а опенсорс — OpenOffice.
Проприетарное ПО — Edge или Яндекс Браузер*, а опенсорс — Mozilla Firefox
Проприетарное ПО — Adobe Photoshop, а опенсорс — Gimp и Krita
И, конечно, проприетарное ПО — ArcGIS, а опенсорс — QGIS
*Хотя они основаны на опенсорс-движке, их нельзя отнести к открытым это проприетарное ПО

Философия опенсорса

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

Опенсорс и ГИС

Что важно знать

  • Как и любое другое ПО, геоинформационные системы могут быть и с открытым исходным кодом, и проприетарные.
  • Открытость/закрытость исходного кода не отражает качество ПО.
  • ГИС с открытым исходным кодом более гибкие по сравнению с проприетарным ПО, они доступны для большего количества операционных систем
  • Для гео-бизнеса ГИС с открытым исходным кодом позволяют экономить средства.

Значимые примеры опенсорс в ГИС

Это неполный список, здесь собраны только самые известные примеры.
QGIS — ГИС с очень большим набором функций. Если коротко, то QGIS позволяет редактировать слои с геоданными, проводить пространственный анализ и создавать карты. А если нет нужной функций под задачу, то что-нибудь найдется в плагинах.
GRASS GIS — набор модулей для более сложного пространственного анализа, чем то, что предлагает QGIS. И здесь тоже радует гибкость опенсорс-ПО: функции GRASS встроены в QGIS по умолчанию, поэтому этот более сложный анализ можно проводить в GRASS не выходя из QGIS.
GDAL — библиотека, которая помогает переформатировать векторные и растровые геоданные. Большая часть геоинформационных систем опирается на GDAL.
PostGIS — программа, добавляющая поддержку геоданных в PostgreSQL
Geoserver — веб-сервер для обмена и публикации геопространственных данных в веб.
Скриншот части главной страницы QGIS с совместной фотографией сообщества и приглашением присоединиться
Скрин с главной страницы QGIS. Сколько я помню главную страницу, на ней всегда было совместное фото разработчиков и пояснение, что за QGIS стоит сила опенсорс-сообщества

Плюсы open-source на примере ГИС и приложений для навигации

Укрепляет сообщество

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

Легко кастомизировать

Открытый исходный код делает приложение более настраиваемым и гибким. Такое ПО легче использовать на разных операционных системах, подстроить под свои задачи с помощью плагинов или интегрировать в рабочий процесс, используя сразу несколько программ в единой цепочке без лишних шагов.
Пример из сферы ГИС:
На сегодняшний день у QGIS есть более 2100 плагинов, которые отдельные разработчики создают для своих целей, чтобы дополнить функции программы. И потом делятся с другими пользователями!

Увеличивает продолжительность жизни ПО

Программное обеспечение с открытым кодом позволяет коду жить дольше, потому что другие разработчики могут подхватить проект и продлить срок его службы.
Примеры из сферы ГИС:
  • Кейс с веб-сервисом Placemark — когда разработчик Том Макрайт понял, что не может получить прибыль со своей веб-ГИС, он выложил весь код проекта открыто, и теперь им пользуются другие разработчики. Проект не погиб, он продолжает жить.
  • Главное решение — кейс приложения Maps.Me, которому в момент кризиса продлил жизнь Organic Maps. В тексте идея открыть исходный код так и называется главным решением.

Хорошо влияет на качество программного обеспечения

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

Дает возможность разработчикам показать себя

Как разработчику показать миру результату своей работы? Можно создать сайт- портфолио на сайте и разместить ссылки на свои проекты, но это не отразит все технические способности. Внешний вид проекта не позволит увидеть, что скрыто под капотом и насколько гениален программист. А вот профиль на GitHub с опенсорс-проектами — отличный показатель.

Дает ощущение ценности труда

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

Минусы open-source на примере ГИС и приложений для навигации

Тяжелее получить прибыль

Разработка ПО — это сложно, она стоит времени и сил. Разработчикам проприетарного ПО компания может заплатить за все сложности деньгами. А опенсорс-проекты чаще поддерживаются донатами и фондами, и поэтому сложнее управлять ресурсами и задавать вектор их развития.
Это не значит, что опенсорс-проекты всегда волонтерские и неприбыльные — они могут приносить прибыль, но им это делать сложнее, чем проприетарному ПО. В выпуске подкаста Mapscaping "Business side of QGIS Development" разбирают кейс платной разработки плагинов для отдельных организаций. Да что далеко ходить — посмотрите на NextGIS, опен-сорс проект, который развивается, создавая платные продукты.

Сложнее фиксить баги

Когда 10 лет назад меня в студенчестве знакомили с QGIS, сказали: "Ребята, это QGIS, он открытый, бесплатный и очень классный. Иногда он просто так вылетает на середине работы, и это нормально. Почаще сохраняйте проект".
Сейчас по моим ощущениям QGIS не вылетает просто так, но никто не гарантирует вам отсутствие багов или их быстрое исправление. Если за опенсорс-проектом стоит крупная компания или большое сообщество разработчиков, то таких рисков меньше. Но чем динамичнее приложение, тем легче его поломать.

Высокие ожидания пользователей

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

Проприетарное ПО может использовать опенсорсные разработки

Если код открыт, это значит, что его могут использовать и другие разработчики, в том числе конкуренты. Некоторые опенсорс-лицензии диктуют свои "вирусные" правила для открытого использования: приложения, которые их используют, тоже должны быть открытыми. Но это применимо не всегда.

Все ПО постоянно нужно обновлять

Создать открытое ПО — это только половина дела. Его еще надо постоянно поддерживать в рабочем состоянии. Даже если разработчик не планирует писать новые функции, приложение придется периодически обновлять: устранять уязвимости в системе безопасности, учитывать изменения в библиотеках и пакетах, от которых оно зависит, и сохранять совместимость с другими программами. Будет ли опенсорс-ПО регулярно обновляться? Да, но только если разработчик и сообщество будут готовы его регулярно обновлять.
Черно-белый схематичный комикс, где множество блоков разной формы не падают благодаря маленькому блоку
Комикс от xkcd "2347: Dependency" хорошо иллюстрирует, как может выглядеть зависимость от опенсорса. Подписи: "Вся современная цифровая инфраструктура" — "Проект, который с 2003 года поддерживает какой-то человек из Небраски, не получая за это даже спасибо". В ГИС-среде есть версия этого комикса, где этот маленький столбик — GDAL.

Как стать частью сообщества открытых ГИС

Чтобы стать частью сообщества, можно начать с малого, например, с исправления опечаток в документации или написания небольших надстроек под свои задачи, которые потом можно разместить открыто. Мониторьте интересные ГИС-проекты на GitHub, и подключайтесь к ним, если стоит метка, что разработчикам нужна помощь.
Участие в проектах с открытым исходным кодом — способ прокачать свои навыки, научиться новому у других разработчиков и получить опыт, если вы хотите попасть в разработку. А страница на GitHub с открытыми проектами будет хорошим подтверждением опыта работы.
Глобально развитием открытых ГИС занимается организация OSGeo (Open Source Geospatial Foundation). Они регулярно проводят международные конференции FOSS4G, и иногда доклады даже транслируют онлайн. Если интересна эта тема, следите за новостями, смотрите доклады и будьте в курсе.

И еще раз — почему это важно

  • Для ГИС-сферы открытое ПО — это способ увеличить количество хороших специалистов, которые готовы поддерживать друг друга и строить классные проекты вместе.
  • Открытый исходный код дает новые возможности решения задач: часто опенсорс-ПО может делать все то же самое, что и проприетарное ПО, при этом оставляя возможность разработчикам встроить или дописать нужные функции.

Поддерживайте опенсорс-проекты

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

Источники:

Что еще почитать на тему

Автор текста: Юлия Федорова