libGDX - фреймворк для кроссплатформенной разработки

Итак, я продолжаю писать свои мемуары или отчет о том, чем я занимался последний год.
В конце 2016 года мне вдруг захотелось сменить своё нынешнее место работы, потому что и денег хочется поболе, и расти профессионально. Я полистал вакансии на сайтах, чтобы оценить, что сейчас в тренде. Удивился, что Java как была, так и остаётся востребованной. Опыт изучения у меня был когда-то давно, но тогда я забил (возможно, что зря), смекнув, что лучше быть профи в одном языке, чем уметь писать хелловорлды в нескольких.
Достал с полки такую книжку и принялся читать:
Меня поначалу сразила простота этого языка. Действительно, сиподобный синтаксис без излишеств сделал своё дело.
Однако читать книги это, конечно, здорово, но нужна какая-никакая практика написания чего-либо. А так как я ничего, кроме игр, не умею, то и начал искать возможности в Java для разработки оных. И их действительно очень много. Остановился я на libGDX.
В подробности и в описание этого фреймворка я вдаваться не буду, т.к. вся инфа по нему давно есть в интернетах. Мне он приглянулся хотя бы потому, что позволяет писать код ОДИН раз, который буквально сменой назначения сборки с PC на Android, будет успешно работать на новой платформе, не требуя изменений хоть ОДНОЙ строки кода. Вот уж действительное соответствие лозунгу Java: "write once, run everywhere".
В рамках обучения языку была написана следующая игрушка под Андрюшку:
Которую можно скачать абсолютно бесплатно без регистрации и СМС на Google Play.
Затем я немного поизучал возможности этого фреймворка в части 3D. Они есть, но реализованы очень криво. Во всяком случае на конец 2016 было так.
Также я прошел до 12 уровня, кажется, в онлайн-уроках JavaRush. Не реклама, но ничего плохого об этом курсе я сказать не могу.
Прошёл два или три собеседования, где Java-программист уровня Junior оказался не нужен )
Тогда я решил попробовать перенести свой движок AntoshkaEngine на этот язык, используя LWJGL. Тут-то я и стал натыкаться на приколы Java, которые меня оттолкнули и вмиг отбили всяческое желание тратить на него время:
1. Тотальное следование навязывание ООП. Я люблю смешанный стиль. А решения типа использования классов со статическими методами выглядят, как какой-то костыль. Синглтоны вместо глобалок - хрень.
2. Урезанное количество типов переменных. Меня прям вывело из колеи отсутствие беззнаковых типов из коробки. Их можно получить битовыми операциями, но это тоже какая-то хрень.
3. Отсутствие перегрузки операторов.
4. Миллиарды библиотек, которые надо подключать для простых операций. Хорошо хоть современные IDE автоматом проставляют импорт. Intellij IDEA - вообще вещь! Жаль, что CLion от тех же разработчиков исключительно платный и не дёшев.
5. Все создаваемые объекты тусуют исключительно в куче, а потому скорость доступа к ним страдает. Это при разработке игр один из главных минусов.
6. Неуправляемый сборщик мусора и отсутствие ручного управления памятью. GarbageCollector действительно живет своей жизнью, потому что программист может только попросить его очистить память, но JVM может проигнорировать эти запросы.

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

Комментарии