Дослідження Java-співтовариства: 74 % розробників хочуть спрощення синтаксису


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Одна з пропозицій JEP (JDK Enhancement Proposal), а саме: JEP 286, викликала бурхливий відгук у співтовариства Java. Пропозиція полягає в тому, щоб спростити синтаксис мови за допомогою таких ключових конструкцій, як var і val. У цій статті ми спробуємо розібратися, що ж це означає, і як на це реагують самі програмісти.

Стисло про суть пропозиції

Мова про автоматичне виведення типів (Local Variable Type Inference) – синтаксичний цукор, який дозволить декларувати змінні не вказуючи їх тип. Виглядати це буде приблизно так:

var list = new ArrayList();val stream = getStream ();

Тоді треба писати таким чином:

List list = new ArrayList();final Stream stream = getStream ();

Як Ви можете бачити, автоматичне виведення типів дозволить писати замість конкретного типу змінної ключове слово var.

Java – громіздка мова, що, загалом, не так вже погано, коли Ви хочете прочитати чужий код і зрозуміти, що ж було у розробника на умі, коли він його писав. Але для тих, хто завжди вважав конструкції Java занадто стомливими для написання, ця пропозиція – велике зрушення. На жаль, в Java 9 цей JEP реалізований не буде.

Так введуть або не введуть?

Браян Гоец, архітектор мови Java в Oracle, опублікував результати дослідження, щодо цієї пропозиції. Головне запитання: “Що Ви думаєте з приводу пропозиції додати в мову автоматичне виведення типів?”. У дослідженні взяли участь 2453 розробники, і більшість відповіли на запитання позитивно:

“Що Ви думаєте з приводу введення в мову автоматичного виведення типів?”

Друга частина дослідження була присвячена майбутньому синтаксису. Опитуваним пропонувалися на вибір 4 варіанти, запозичених з інших мов, таких як C#, Scala, Swift, C++, або використання let. Переміг варіант з var і val:

Результати опитування щодо нового синтаксису

Детальніше про плани

Згідно із задумом, нову синтаксичну конструкцію можна буде використати для:

  • локальних змінних з ініціалізаторами;
  • індексів у вкладених циклах for;
  • локальних змінних усередині звичайного циклу for.

І точно не можна буде використати для:

  • параметрів методу або конструктора;
  • повертаних значень методу;
  • полів.

Якщо Ви точно не визначилися зі своїм ставленням до цього задуму, то можете скористатися неофіційним білдом OpenJDK, який її реалізує.

На сторінці JEP 286 є зауваження від Oracle:

Java залишається буквально єдиною популярною мовою, що статично типізується, в яку ця можливість ще не введена; таким чином, ця пропозиція вже не є спірною.

Проте до кінця не ясно, чи буде ця пропозиція реалізованою, і якщо так, то коли?

Джерело: blog.takipi.com

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *