Oracle планирует убрать sun.misc.Unsafe
в Java 9. Очень негативно подобное решение может сказаться на всей экосистеме. Кто не в теме, можете почитать об этом звере. Если вкратце, то это приватное API использовалось для низкоуровневого программирования: напрямую работать с памятью и т.п.
Чтоб оценить размах, можно глянуть список проектов, которые используют unsafe:
- Netty
- Hazelcast
- Cassandra
- Mockito / EasyMock / JMock / PowerMock
- Scala Specs
- Spock
- Robolectric
- Grails
- Neo4j
- Spring Framework
- Akka
- Apache Kafka
- Apache Wink
- Apache Storm
- Apache Hadoop
- Apache Continuum
Небольшой комментарий из переписки:
Let me be blunt — sun.misc.Unsafe must die in a fire. It is — wait for it — Unsafe. It must go. Ignore any kind of theoretical rope and
start the path to righteousness
Аргументация удаления сводится по большей части к тому, что они хотят убрать возможность «выстрелить себе в ногу».
Из предложений (взамен полного удаления пакета) можно выделить:
- Задокументировать это API вместо полного выпиливания. А так же сделать публичным.
- В то же время Oracle должны сделать публичную альтернативу Unsafe с тем же функционалом, чтоб люди потихоньку переходили на него. В таком случае люди автоматически откажутся от Unsafe и переведут постепенно проекты на новое API.
Что-то подобное было с bytecode verifier в Java 7.
СЕО Hazelcast Greg Luck предлагает, если всё же API будет выпилено, оставаться на Java 8 и не переходить на девятку (которая предположительно выдйте в 2016).
ссылка на оригинал статьи http://habrahabr.ru/post/263787/
Добавить комментарий