Другое

Основные недостатки Java и поддерживает ли язык корутины

Lorem ipsum dolor

В мире не так много языков программирования, которые могут похвастаться своей более чем 20-тилетней актуальностью. Одним из таких примеров, несмотря на свои недостатки, является язык программирования Java. Вот как раз их, недостатки java, мы и обсудим в сегодняшней нашей статье.

Java — это язык, который постоянно входит в ТОП-10 в различных рейтингах. Довольно долгое время это был официальный язык для разработки приложений под ОС Андроид, а совсем недавно ему стал составлять конкуренцию язык программирования Kotlin.

Java уже больше 20-ти лет. Все это время этот язык нес свою миссию для программистов «Писать код один раз и иметь возможность применять его везде». Это кроссплатформенный популярный ЯП общего назначения. На нем можно сделать практически все:

  • написать приложение для смартфона;

  • написать приложение для компьютера;

  • создать игру;

  • использовать для работы с базами данных;

  • использовать в микроустройствах;

  • использовать в автомобилестроении;

  • и др.

Это уже не просто язык программирования, теперь можно различать целую экосистему Java со своими:

  • JDK — комплект программиста Java;

  • JRE — система исполнения Java4;

  • IDE — среда разработки для программистов.

Язык Java вы встречаете в каждый день либо в своем смартфоне, либо на компьютере. Но, несмотря на свою популярность, широту применения и огромное число достоинств, Java имеет собственные недостатки, как и многие другие языки.

Недостатки Java

  1. Плата за коммерческое использование. В 2019-м году компания Оракл приняла решение брать плату за коммерческое пользование этим ЯП. Многим компаниям пришлось оценивать эффективность использования этого языка в собственных целях и искать бесплатные альтернативы. Для простого пользования Java остается абсолютно бесплатным языком.

  2. Невысокая производительность. Любой высокоуровневый язык из-за использования виртуальной машины для своей компиляции обладает более низкой производительностью. Java в том числе, но не только это влияет на ее «быстроту». Также производительность падает из-за проблем с очисткой памяти, плохой настройки кэширования, вероятности блокировки потоков и т. д.

  3. Отсутствует нативный дизайн. Для создания интерфейса пользователя на компьютере для java-приложения нет ни одного java-инструмента, поэтому разработчики используют сторонние инструменты и библиотеки.

  4. Сложность и многословность кода. При написании кода есть вынужденное использование большого количества лишнего текста. Из-за этого улетучивается «компактность» языка, но в то же время это облегчает «понимание» кода неспециалистам Java.

С другой стороны, все недостатки Java языка с лихвой перекрываются его достоинствами. Именно это и позволяет ему оставаться довольно востребованным языком долгие годы.

Java и корутины 

Корутины — это облегченный поток исполнения кода, который может работать поверх основных потоков программы. Они полностью подвластны разработчику, так как переключаются в местах, которые указал сам программист, а не как основные потоки, переключающиеся в произвольный момент времени самой операционной системой. То есть корутины управляются пользователем, а основные потоки — ОС. Они «легковесны» и практически не влияют на производительность, если сравнивать с основными потоками.

В большинстве современных языков программирования есть поддержка использования корутинов на уровне самого языка. Java, к сожалению, пока не поддерживает корутины. Так что этот момент тоже можно отнести в «недостатки Java». Есть шанс, что в скором будущем разработчики Java это исправят, потому что многие современные программисты используют в своей работе корутины. Плюс работу с корутинами применяет основной конкурент языка Java — язык Kotlin, это тоже должно дать толчок разработчикам быстрее внести изменения, чтобы быть конкурентоспособными.

На данный момент есть одна «непрямая» возможность использовать корутины в Java. Это писать их на языке С++, а потом при помощи JNI применять в своем Java-коде. Получается, что любые недостатки Java можно «обойти», если в этом есть необходимость.

 

Схожие статьи

Все про язык Swift: многопоточность, базовые операторы, функции
Другое

Все про язык Swift: многопоточность, базовые операторы, функции

Как поставить пароль на сервер, простой способ правильно это сделать
Другое

Как поставить пароль на сервер, простой способ правильно это сделать

Другое

Что такое передача данных? Как она работает в телефоне?

Фронтенд-разработчик: кто это, что ему нужно уметь и знать для карьеры?
Другое

Фронтенд-разработчик: кто это, что ему нужно уметь и знать для карьеры?