asd111, а кастомные реализации структур возникают не потому что программисты умные и им ничего не стоит их написать, а потому что "ой у нас CPU и память жрёт, нужно оптимизировать". А оптимизация на раннем этапе это корень всех зол.
asd111, вы работали в яндекс и в гугл?
Я отправлял патчи в git. И с уверенностью могу сказать, что велосипеды они не принимают.
А Линус Торвальдс никогда не написал бы git, если бы начал с реализации дерева. Если глянуть историю, то в начале 2005 года ни о каких графах речи и не было, структура была линейная. Раз он такой умный, почему же он взял библиотечные реализации SHA1 и zlib? Можно было бы и самому накатать.
Не знаком с олимпиадниками. Но на хабре то ли статейка была, то ли развернутый комментарий с тем посылом, что олимпиадники хороши на сферическом коне в вакууме. К реальным задачам они не готовы, и чаще всего их производительность стремится к нулю. Потому что на олимпиадах главное уложится в отведенное время и память, а в бизнесе нужно еще что бы код был легко читаем, т.к. над ним в последствии будут работать другие люди.
Оформление кода отнимает довольно много времени. А если этим не заниматься и не делать ревью, то толку от олимпиадника? Он за 4 часа нахуевертит кода и уйдет на больничный. А работа встанет.
Речь конечно об вчерашних олимпиадниках и выпускниках.
hHup, но всё же учтите, что если вы раньше не делали подобного, то не стоит сразу лезть в NEON. Пишите сначала эталонную реализацию на чистой джаве. А потом уже подключайте нативный код. Быть может некоторые ваши алгоритмы будут настолько быстрые, что java-версия будет отрабатывать быстрее нативной, т.к. на передачу данных между jvm и C уходит довольно много времени.
hHup, всё зависит от того, насколько кроссплатформенной должна быть нативная часть. Если arm и x86 достаточно (а это наверное 90% устройств или больше), то в NDK все для этого имеется https://developer.android.com/ndk/guides/cpu-arm-neon никаких вставок не нужно.
Писать лучше на чистом C. Потому что для C++ кода нужно будет все равно делать сишный интерфейс, что бы использовать его в JNI.
Хотя возможно сейчас уже есть в Android Studio какой-нибудь glue-генератор, который большую часть работы сделает за вас. Я же делал по старинке через javah.
Роман, как же вы правы. Встречал людей, которые без IDE вообще ничего не могут, они не представляют ни одного этапа преобразования кода, который пишут по 5+ лет.