Ничей OSRM
История самого популярного движка для прокладки маршрутов, похоже, приближается к финалу. Или, если повезёт, к новой странице. Проект уже несколько месяцев сидит без программистов: можно сказать, что разработка мертва.
В начале 2012 года OSRM всех удивил необычно быстрой прокладкой маршрутов: линия перемещалась быстрее, чем загружались тайлы подложки. Этот движок хитрым образом сворачивает дорожную сеть в предобработке и затем держит все данные в памяти — поэтому вычисления выполняются за миллисекунды, а не секунды, как в то время у альтернативных проектов.
Не удивительно, что спустя год его автора, Денниса Люксена, завербовали в Mapbox — сразу после защиты диплома в университете Карлсруэ. В то время это было позитивной новостью: OSRM не откладывался на полку отработанных дипломных проектов, как это случилось, например, с MapSurfer, а получал поддержку деньгами и коллегами от крупной компании. С тех пор OSRM становился всё умнее, получая полезные на практике функции, вроде улучшенных пошаговых инструкций, поддержки полос и restriction:conditional.
Всё поменялось в январе 2018 года. Именно тогда Mapzen объявил о закрытии всех своих сервисов, включая движок роутинга Valhalla. Его особенностью была разбивка данных по тайлам, что предположительно помогало обновлять данные и загружать их в память фрагментами. В то время (да и в это) векторные тайлы захватили воображение руководства Mapbox, поэтому не очень удивляет, что всего через три дня все пять разработчиков присоединились к компании. Спустя месяц Valhalla уже строила маршруты по пробкам на сотнях серверов Mapbox.
А что OSRM? В апреле 2018 активность главного репозитория проекта внезапно снизилась на два порядка: с двадцати коммитов в день до пары коммитов в неделю. Деннис ушёл ещё в начале 2015. Часть разработчиков перевели на другие проекты, но большинство, судя по слухам и активности на GitHub, просто уволили. Из верхних десяти участников проекта (одиннадцатый — Лев из Juno) активность после того апреля проявлял только сотрудник Mapbox Дэниел Паттерсон. Да и то — он лишь проверял и принимал пул-реквесты от пользователей библиотеки, не тратя много времени на разработку. По косвенным признакам ощущалось, что изменения даже не тестировались как следует.
«Линия жизни» репозитория, график коммитов, дважды за последний год прерывалась на месяц: в августе и в декабре. Когда я залил очередной несложный пул-реквест, я ожидал, что нынешний перерыв тоже скоро закончится. Но с последней правки кода прошло уже больше двух месяцев. Дэниела, судя по строчкам вида «42 contributions in private repositories», загрузили работой в Mapbox, и OSRM остался без мейнтейнера. Некому даже нажимать на кнопку принятия пул-реквестов. Другими словами, проект мёртв.
Почему так получилось? У всех всё работает. OSRM как-то страхует Valhalla на серверах Mapbox, но в нём ничего не изменится, потому что вся работа теперь в векторных тайлах. Maps.Me, который когда-то удивил работой движка на смартфонах, пару лет как выкорчевал OSRM из кода, заменив своей, более гибкой навигацией. Для публичных серверов, типа недавно добавленного на глагне роутинга от немецкого FOSSGIS, достаточно старых версий. Вероятно, OSRM просто исчерпал возможности для развития, а отсутствие даже теоретической возможности поддержать различные профили, пробки и прочие динамические ограничения толкают корпоративных пользователей к разработке альтернативных решений. Если энтузиастов не найдётся и среди сообщества OpenStreetMap, проекту крышка.
Не сказать, что это плохо: GraphHopper ещё жив. Разработка движка Valhalla, разумеется, очень активна, но как и другие проекты Mapbox, поднять его на своём сервере будет непросто. А в недрах Гейдельбергского университета Амандус Бутцер и Тим Макколи растят достойную смену: OpenRouteService.