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