Стоит ли изучать Java в 2021г? Чем была плоха Java и стало ли лучше?

05.05.2022
Ранее я выпускал ролик о тех головняках, которые делали Java очень непривлекательным языком, за что выхватил свою долю хейта. Но будем справедливыми, кое-что меняется. Поговорим о том, действительно ли имеет смысл учить Java в 2021г, что происходит в сообществе и какие новости были в последнее время. Давайте начнем с того, что нынче существует несколько дистрибутивов Java машин, условно платная и бесплатная. Отличие в сроках поддержки - то есть у платной Oracle JDK есть т.н. LTS что позволяет кровавому интерпрайзу не ставить новые версии, и экономить на регрессионном тестировании и патчах своих продуктов. Сейчас у нас есть версия 15, но в раннем доступе можно поставить версии 16,17. Еще момент, сейчас нельзя просто так взять и установить бесплатную Java на windows, но можно например использовать дистрибутив Liberica от нашей любимой отечественной фирмы JetBrains. Ну а тем, кому неймется опробовать на своем пет-проджекте новых фишечек, тех таки есть чем порадовать. давайте разберем что там завезли в 15 и 16 версиях: Ну в кои-то веке появился Pattern Matching, который в scala (это язык для java машины) был c самого начала, сто лет назад. Я еще с момента, когда добавили var понял, что фишечки скалы хотят переносить в язык Java, но процесс будет растянут на 50 лет, чтоб не избаловать народ сверх меры. Кейс классы скалы, которые record в java, ранее дженерики, которые, правда, были слегка кастрированными. Ну, давайте по порядку. Расшифровка NPE. Теперь из исключение NPE понятно, на какой переменной программа навернулась. Я может кого разочарую, но в Java еще раньше появились Option (опять скопированы из скалы), которые позволяют писать без обработки null. То что NPE ексепш требуется расшифровывать, говорит о том, что доисторической сообщество джавистов до сих пор не осилило без NPEшный стиль программирования, и до сих пор колется, но кактус жрать продолжает. Поэтому им завезли такой вот подарочек. Далее свичи, который в скале объединены с паттерн матчингом, а джаве конечно же без, и их наконец избавили от необходимости ставить брейки (так-то брейки - это легаси фишка, когда кейсы в свитче представляли собой ничто иное как метки гоуту - кто не знает, это такой артефакт годов 40х 20го века, такой программистский позор). Еще одни подарочек - текстовые блоки, ну это уже во всех наверное языках имеется, когда вы можете скопировать блок из текстового редактора, и вам не надо будет обрамлять каждую строку кавычками. Колхоз, казалось бы, но в джаве фишка появилась только что. А вот что бросается в глаза - Foreign Memory Access API, который должен существенно ускорить доступ в память нативных приложений, типа ин-мемори баз данных, если кому-то казалось, что jni это слишком медленно. Для этого появляются методы выделения сегмента памяти вне кучи и в ней, и предоставить к ним доступ для сторонних тритов. Вот это должно быть очень круто, и выведет Java на новый уровень. Что еще, Sealed классы. Кому они сдались, я понять не способен, идем дальше. Рекорды - это

Похожие видео

Показать еще