Другое

Основные недостатки 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 можно «обойти», если в этом есть необходимость.

 

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

Aws Lambda: что это такое, зачем оно используется и кому это нужно?
Другое

Aws Lambda: что это такое, зачем оно используется и кому это нужно?

Лучшие программы и инструменты для прототипирования интерфейсов
Другое

Лучшие программы и инструменты для прототипирования интерфейсов

Что такое блочное программирование: это язык или программа?
Другое

Что такое блочное программирование: это язык или программа?

Характеристики и описание маршрутизатора ASUS RT-N10, настройка роутера
Другое

Характеристики и описание маршрутизатора ASUS RT-N10, настройка роутера

×