Исследование Java-сообщества: 74% разработчиков хотят упрощения синтаксиса
7К открытий7К показов
Одно из предложений JEP (JDK Enhancement Proposal), а именно JEP 286, вызвало бурный отклик у сообщества Java. Предложение состоит в том, чтобы упростить синтаксис языка с помощью таких ключевых конструкций, как var
и val
. В этой статье мы постарались разобраться, что же это значит, и как на это реагируют сами программисты.
Коротко о сути предложения
Речь об автоматическом выведении типов (Local Variable Type Inference) — синтаксическом сахаре, который позволит декларировать переменные не указывая их тип. Выглядеть это будет примерно так:
Тогда как сейчас нужно писать следующим образом:
Как вы можете видеть, автоматический вывод типов позволит писать вместо конкретного типа переменной ключевое слово var
.
Java всегда была достаточно громоздким языком, что, в общем-то, не так уж плохо, когда вы хотите прочитать чужой код и понять, что же было у разработчика на уме, когда он его писал. Но для тех, кто всегда считал конструкции Java слишком утомительными для написания это предложение — большой сдвиг. К сожалению, в Java 9 этот JEP реализован не будет.
Так введут или не введут?
Браян Гоец, архитектор языка Java в Oracle, опубликовал результаты исследования, касательно этого предложения. Главный вопрос звучал так: “Что вы думаете, по поводу предложения добавить в язык автоматическое выведение типов?”. В исследовании приняли участие 2453 разработчика, и большинство ответило на вопрос положительно:
Вторая часть исследования была посвящена будущему синтаксису. Опрашиваемым предлагалось на выбор 4 варианта, заимствованных из других языков, таких как C#, Scala, Swift, C++, либо использование let. Победил вариант с var
и val
:
Подробнее о планах
Согласно задумке, новую синтаксическую конструкцию можно будет использовать:
- Локальных переменных с инициализаторами;
- Индексов во вложенных циклах
for
; - Локальных переменных внутри обычного цикла
for
.
И точно нельзя будет использовать для:
- Параметров метода или конструктора;
- Возвращаемых значений метода;
- Полей.
Если вы точно не определились со своим отношением к этой задумке, вы можете воспользоваться неофициальным билдом OpenJDK, который её реализует.
На странице JEP 286 есть следующее замечание от Oracle:
Java остаётся буквально единственным популярным статически типизированным языком, в который эта возможность ещё не введена; таким образом, это предложение уже не является спорным.
Тем не менее, до конца не ясно, будет ли это предложение реализовано, и если будет, то когда.
7К открытий7К показов