Search
Write a publication
Pull to refresh

Типы-значения в Java

Reading time1 min
Views25K
Duke
Этот пост — вольно-краткий перевод документа State of the Values, предложения по введению типов-значений в JVM и сам язык Java, который написали Джон Роуз, Брайан Гоетц и Гай Стил, разбавленный моими мыслями. Опущены детали предложения по реализации типов-значений на уровне байт-кода, что не очень интересно для большинства Java-программистов.



Важнейшая мысль: объектная (ссылочная) идентичность нужна только для поддержки изменяемости объектов. Объект может изменить состояние, но по ссылке мы всегда можем проверить, что это «тот же» объект. Поэтому типы-значения будут строго неизменяемые.

Предполагаемые варианты использования типов-значений:
  • Числа: комплексные, беззнаковые, 128-битные, с фиксированной запятой и т. д. Все, что не описывается имеющимися примитивами.
  • Алгебраические типы: Optional, Choice<T,U>, перечисления
    Кортежи: пары, тройки, ...
    Итераторы, курсоры
    «Уплощение» сложных структур

  • Я знаю, этот блог читает много сотрудников Oracle, которые куда внимательнее следят за списками рассылки и вообще ближе к теме, буду рад если они внесут важные уточнения.
Only registered users can participate in poll. Log in, please.
Нужны ли в Java типы-значения?
14.21%Очень, страдаю без них52
46.45%Было бы неплохо170
27.87%Не нужны102
11.48%Java не нужна42
366 users voted. 175 users abstained.
Only registered users can participate in poll. Log in, please.
Когда в Java добавят типы-значения (ваш прогноз)?
11.54%Java 942
23.9%Java 1087
17.31%Еще позже63
21.98%Никогда80
25.27%Не знаю92
364 users voted. 165 users abstained.
Only registered users can participate in poll. Log in, please.
Как вам предложение в текущем виде?
1.61%То что надо5
35.05%Нормально109
26.69%Я думал, намного лучше будет это все83
36.66%Сложно сказать, предложение неконкретное114
311 users voted. 189 users abstained.
Tags:
Hubs:
Total votes 29: ↑26 and ↓3+23
Comments25

Articles