В мире не так много языков программирования, которые могут похвастаться своей
более чем 20-тилетней актуальностью. Одним из таких примеров, несмотря на свои
недостатки, является язык программирования Java. Вот как раз их, недостатки java языка, мы и обсудим в сегодняшней нашей статье. Java — это язык, который постоянно входит в ТОП-10 в различных рейтингах. Довольно долгое время, это был официальный язык для разработке приложений под ОС Андроид, а совсем недавно, ему стал создавать конкуренцию язык программирования Kotlin.
Немного о Java
Java уже больше 20-ти лет. Все это время, этот язык нес свою миссию для
программистов – «Писать код один раз и иметь возможность применять его везде».
Это кроссплатформенный популярный ЯП общего назначения. На нем можно
сделать практически все:
- написать приложение для смартфона;
- написать приложение для компьютера;
- создать игру;
- использовать для работы с базами данных;
- в микро устройствах;
- в автомобилестроении;
- и др.
Это уже не просто язык программирования, уже можно различать целую экосистему
Java, со своими:
- JDK — комплект программиста Java;
- JRE — система исполнения Java4;
- IDE — среда разработки для программистов.
Язык Java вы встречаете в каждый день, либо в своем смартфоне, либо на
компьютере. Но несмотря на свою популярность, широту применения, и огромное
число достоинств, Java имеет собственные недостатки, как и многие другие языки.
Недостатки Java языка
- Плата за коммерческое использование. В 2019-м году компания Оракл
приняла решение брать плату за коммерческое пользование этим ЯП. Многим
компаниям пришлось оценивать эффективность использования этого языка в
собственных целях и искать бесплатные альтернативы. Для простого
пользования Java остается абсолютно бесплатным языком. - Не высокая производительность. Любой высокоуровневый язык, из-за
использования виртуальной машины для своей компиляции, обладает более
низкой производительностью. Java в том числе, но не только это влияет на ее
«быстроту». Также производительность падает из-за проблем с очисткой
памяти, плохой настройки кэширования, вероятность блокировки потоков и д. - Отсутствует наивный дизайн. Для создания интерфейса пользователя на
компьютере для java-приложения, нет ни одного java-инструмента, поэтому
разработчики используют сторонние инструменты и библиотеки. - Сложность и многословность кода. При написании кода, есть вынужденное
использование большого количества лишнего текста. Из-за этого
улетучивается «компактность» языка, но в тоже время это облегчает
«понимание» кода неспециалистам Java.
С другой стороны, все недостатки Java языка, с лихвой перекрываются его
достоинствами. Именно это и позволяет ему оставаться довольно востребованным
языком долгие годы.
Java и корутины
Корутины — это облегченный поток исполнения кода, который может работать
поверх основных потоков программы. Они полностью подвластны разработчику, так
как переключаются в местах, которые указал сам программист, а не как основные
потоки, переключающиеся в произвольный момент времени самой операционной
системой. То есть корутины управляются пользователем, а основные потоки — ОС.
Они «легковесны» и практически не влияют на производительность, если сравнивать
с основными потоками.
Заключение
В большинстве современных языков программирования есть поддержка
использования корутинов на уровне самого языка. Java, к сожалению, пока не
поддерживает корутины. Так что, этот момент тоже можно отнести в «недостатки
Java». Есть шанс, что в скором будущем, разработчики Java это исправят, потому
что многие современные программисты используют в своей работе корутины. Плюс,
работу с корутинами применяет основной конкурент языка Java — язык Kotlin, это
тоже должно дать толчок разработчикам быстрее внести изменения, чтобы быть
конкурентоспособными.
Возможно вам будет интересно почитать статью “Создание программного продукта: этапы и особенности”
На данный момент есть одна «непрямая» возможность использовать корутины в
Java. Это писать их на языке С++, а потом, при помощи JNI, применять в своем Java-
коде. Получается, что любые недостатки Java, можно «обойти», если в этом есть
необходимость.