Boost C++ libraries на Android; и не только

Итак, мы запустили регулярное регрессионное тестирование библиотек Boost на Android. С результатами все желающие могут ознакомиться на официальной страничке Boost (develop branch) или на нашем сайте (Android-only): master, develop.На данный момент есть немало регрессий, часть из которых вызвана багами в Boost, а часть — багами в CrystaX NDK. Мы, естественно, на этом не останавливаемся и продолжаем работать, так что количество фэйлов будет уменьшаться со временем. Тем не менее, это довольно важный шаг, т.к. процесс тестирования теперь полностью налажен и работает в автоматическом режиме, так что теперь сделать Boost полноценно поддерживаемым на Android — относительно несложная техническая задача и всего лишь вопрос времени. Призываю всех заинтересованных обращать внимание на регрессии и, если причиной окажется баг в CrystaX NDK — заводить тикет. Само собой, мы этим занимаемся тоже, но эффективность, очевидно, будет выше при участии большего количества людей.

Добиться такого результата удалось с помощью CrystaX NDK — нашего проекта, главной задачей которого является создание полноценного набора инструментов для нативной разработки под Android. Нативной — это не обязательно C/C++. Мы работаем над обеспечением максимального соответствия стандартам — C, C++, POSIX и т.д., так что поддержка других языков программирования, фреймворков и библиотек, реализация которых уже есть на других POSIX платформах, сильно облегчается. D, Erlang, Lisp, Ocaml, you name it — мы не видим принципиальных ограничений, препятствующих использованию данных языков для программирования под Android. Очевидно, что обеспечивая качественную реализацию базовых библиотек (таких, как libc), мы тем самым значительно облегчаем портирование рантаймов и стандартных библиотек этих языков на Android. В еще большей степени это относится к существующим прикладным библиотекам (ffmpeg, libpng, openssl, etc) — просто потому, что они, как правило, менее сложны в портировании, чем рантаймы языков программирования.

Однако на все это нужно время. Я начал этот проект в 2009-ом году и с тех пор вел его в свободное время. Деньги я зарабатывал, выполняя заказную работу для многочисленных коммерческих проектов и тратил их на CrystaX NDK. Тем не менее, даже в таком режиме CrystaX NDK все время был и до сих пор остается значительно более «фичастым», чем Android NDK от Google; главным образом потому, что Google никак не заинтересован в нативной разработке под Android и который год игнорирует нужды огромного количества разработчиков. Это становится особенно интересным в свете того, что сейчас Android — это уже не только телефоны. Сегодня это уже и довольно мощные планшеты, и умные телевизоры, и автомобильные навигаторы —, а значит, востребованность в легкой портируемости кода между платформами все больше увеличивается. Ибо рекомендуемый Google путь — для Android переписывать все на Java — это абсолютно несерьезно.

Восемь месяцев назад мы отказались от всех сторонних контрактов и начали работать над CrystaX NDK в режиме full time. Мы абсолютно уверены, что сможем сделать наш проект основой для полноценной разработки под Android — в идеале, на любом языке, без обязательного использования Java, как это происходит сегодня. Эффективность работы в режиме full time очевидна — за эти восемь месяцев мы продвинулись больше, чем за последние три года. Мы хотим продолжать и уверены, что найдем поддержку среди огромного количества программистов.

Мы работаем над проектом, но очевидно, что привлечение дополнительных средств и/или программистов увеличит эффективность наших усилий. Поэтому мы призываем всех, заинтересованных в нативной разработке под Android, поддержать нас — либо финансово, либо участием в проекте. Мы запустили кампанию по сбору средств на BountySource и хотим собрать средства, которые позволят нам работать дальше над проектом, будучи независимыми от заказчиков и делясь результатами с open source сообществом. По ссылке на BountySource я изложил суть проекта, существующие недостатки в мире разработки под Android, и наши планы по изменению ситуации. Почитайте — и проголосуйте рублем, если вам нравится то, что мы делаем.

Готов ответить на любые вопросы.

© Habrahabr.ru