Как стать автором
Обновить

Комментарии 21

Примитивные типы те, что нативно обрабатываются процессором. Так что комплексные не станут нативными. Вот SSE и тому подобное можно бы ввести в виде расширений языка. В Си такое есть, про Java не знаю.

Не особо следил за их экосистемой, мог пропустить. Но в среднем довольно забавно наблюдать, как Zig повлиял на Java (спорное утверждение, доказывать я его конечно же не буду).

Да, по смыслу похоже на это. Единственное что я не уверен, что в С# в ссылке на структуру не может быть null.

Плюс стереть границы между примитивными типами из коробки и тем, что пользователь может сделать сам. Плюс по-моему специализация дженериков там же прилагается.

It is not a goal to guarantee any particular optimization strategy or memory layout. This JEP enables many potential optimizations; only some will be implemented initially. Future JEPs will pursue optimizations related to null exclusion and generic specialization.

Пока не прилагается. Если мне не изменяет память, в предыдущей версии прилагалось (которая оказалась настолько сложной, что лично мне хотелось плакать, глядя на изменения в спецификациях).

По эффекту: да. Но путь совсем другой. Точнее первые десять лет потратили на то, чтобы сделать как в С#. К счастью, в результате поняли, что сова в процессе натяжения на глобус может лопнуть и сделали всё совсем с другой стороны.

Не похоже. Судя по всему, это перевод доклада. Чтобы ощутить весь масштаб катастрофы, придется опуститься в пучину почтовых рассылок)

Единственное что этот процесс занял примерно лет десять, так как при этом нужно было сохранить обратную совместимость. Так что да, решили заимплементить, но это было не очень просто )))

Стремление сохранить обратную совместимость любой ценой дорого обходится Java. И вопрос, так ли уж это нужно, в общем, внятного ответа не имеет. Или я его не вижу. Смысл тащить за собой атавизмы и родовые травмы первых версий?

Думаю, что это уже давно не так. Сама Java может быть, и совместима (но это не точно, помню, была какая-то мелкая проблема несовместимости стандартной библиотеки с переходом с 7 на 8). Но самые популярные библиотеки и фреймворки регулярно депрекейтят и выпиливают/перепиливают функциональность. В итоге на обновлениях все равно нужно корректировать код. Практически все современные языки делают это, и чаще всего все более или менее довольны (хотя в истории с переходом Python с 2 на 3 реакция комьюнити вызвала у меня некоторое недоумение, хотя, в принципе, это объяснимо). Язык должен развиваться. И, если я правильно понимаю, Valhalla тянет за собой как изменения байт-кода, так и синтаксиса.

Спасибо за статью. Маленькое замечание

В результате ArrayList не может хранить int[] — приходится заворачивать числа в Integer[].

Технически, в ArrayList всегда создается Object[], т.к. невозможно создать массив по generic-типу.

Ну, вальгалла (точнее дополнительные jep к ней) хотят решить и эту проблему тоже

Зарегистрируйтесь на Хабре, чтобы оставить комментарий