LINUX.ORG.RU

Oracle опубликовал новые спецификации Java 7 и 8

 , , , ,


0

1

Mark Reinhold, главный архитектор платформы Java в Oracle, объявил о представлении четырёх спецификаций платформы Java для утверждения комитетом Java Community Process:

  • JSR 334 - небольшие улучшения языка программирования Java;
  • JSR 335 - лямбда-выражения для языка Java;
  • JSR 336 - состав Java SE 7;
  • JSR 337 - состав Java SE 8.

Набор тестов, обязательных для сертификации платформы - TCK, по-прежнему содержит ряд ограничений, не позволяющих создание OpenSource-версии платформы. Так, ограничение Field of Use запрещает создание реализаций для мобильных телефонов, нетбуков, киосков, телевизоров, принтеров и некоторых других классов устройств. Другой пункт лицензии явно запрещает создание альтернативных реализаций спецификаций.

Голосование по спецификациям продлится две недели. Фонд Apache Software Foundation ранее объявил о планах голосовать против принятия спецификаций.

>>> Подробности

★★★★★

Последнее исправление: Dendy (всего исправлений: 6)

Ответ на: комментарий от goingUp

>> Набор тестов, обязательных для сертификации платформы - TCK, по-прежнему содержит ряд ограничений, не позволяющих создание OpenSource-версии платформы.

Эм, тоесть Java 7 от оракла будет проприетарной?

Java 7 будет в нескольких версиях: проприетарные платные Business, Professional, еще какая то экзотика в наследство от JRockek. проприетарные бесплатные - Oracle JDK. открытые версии - OpenJDK, IcedTea.

Дальше для создания СВОЕЙ java нужно ИЛИ наследоваться от OpenJDK ИЛИ покупать лицензию на TCK. Apache не хочет ни того, ни другого - почему читайте в mail-lists и прочих сайтах.

VoDA ★★
()
Ответ на: комментарий от GblGbl

> Интересно, а переопределение операторов они думают делать? А то, например, при работе с большими числами, простые выражения из +-*/ и скобок растягиваются на несколько строчек.

Коротко - Нет.

Длинно - нужно учесть, что при переопределении операторов функция должна корректно работать для всех НАСЛЕДНИКОВ, что не так просто и очевидно. Ввиду высокой вероятности неправильного использования данной фичи она как и множественное наследование забанены в java.

Если так нужно переопределение операторов - Jython, Groovy, JavaScript и им подобные языки в ваших услугах.

Хотя по мне очень редкие задачи действительно требуют переопределения операторов. Чаще это математика на большом количестве примитивов - а это быстрее будет работать на С/С++.

VoDA ★★
()
Ответ на: комментарий от RADO

>> Так, ограничение Field of Use запрещает создание реализаций для мобильных телефонов, нетбуков, киосков, телевизоров, принтеров и некоторых других классов устройств.

Забыли чайники, холодильники, микроволновки и т. д.

PS: А она разве не для этого, в том числе, писалась?

если вашей компании действительно нужна JavaSE для этих устройств... и не подходит ни JavaME ни Android, то ваша компания достаточно большая чтобы договариваться о лицензировании TCK в индивидуальном порядке.

VoDA ★★
()
Ответ на: комментарий от VoDA

Чаще это математика на большом количестве примитивов

Для примитивов то как-раз математические операции прекрасно работают. Перегрузка нужна в основном для высокоточных вычислений с BigInteger/BigDecimal (в основном используется во всяком финансовом софте).

а это быстрее будет работать на С/С++.

Иногда проще пожертвовать 10-15% производительности и не городить отдельную числодробильную библиотеку на сях.

Nagwal ★★★★
()
Ответ на: комментарий от GblGbl

>Интересно, а переопределение операторов они думают делать?

Это концептуальный вопрос и святая корова.

KRoN73 ★★★★★
()

>киосков Каких ещё киосков? Роботы-продавцы? оО

anonymous
()
Ответ на: комментарий от vgudkov

Ну жабка за интерфейс не отвечает, но вот дает очень высокий прирост в производительности в сравнении например с пыхом.

vertexua ★★★★★
()
Ответ на: комментарий от GblGbl

На пару дней дебаг себе не хочешь продлить из-за неочевидного оператора?

vertexua ★★★★★
()

Зря они эту лямбду ввели. Типа закос под функциональщину? Все ведь сразу кинутся использовать новомодную фичу. И так пишут код как макаки, теперь ситуация усугубится.

sun-lsd
()
Ответ на: комментарий от VoDA

Это ведь частный случай. Жабка же не дотнет, чтобы обрастать такими копипастами и дублями функциональности. Она то обрастает, но такими темпами как дотнет - это пошло

vertexua ★★★★★
()
Ответ на: комментарий от matumba

А что блистало на стойках? Интерестно послушать и посмеяться

vertexua ★★★★★
()
Ответ на: комментарий от VoDA

> Дальше для создания СВОЕЙ java нужно ИЛИ наследоваться от OpenJDK ИЛИ покупать лицензию на TCK. Apache не хочет ни того, ни другого - почему читайте в mail-lists и прочих сайтах.

TCK бесплатен для non-profit организаций (т.е. для Apache)

maxcom ★★★★★
() автор топика

у меня в голове уже все перемешалось, SunJDK, OpenJDK, ASF Harmony, TCK. Кто нить может внятно объяснить? попытался по полочкам разложить, вот что получилось. Насколько я знаю предыстория такова:

0. Sun создает концепцию языка, комитет по стандартизации JCP, тесты TCK. Набор платных тестов TCK - это фактически одобрение саном использования ее технологий сторонней компанией, содержит запрет на создание open-source реализации JDK. Тесты можно было не проходить, но назвать это джавой уже нельзя и есть риск патентных исков от сана.
1. Sun JDK HotSpot была написана саном и включала JRE для спарков и х86 процессоров.
2. Производители кофеварок/сотовых телефонов могли сами написать реализацию JRE для своего устройства и пройти тест TCK, что бы показать разработчикам что их виртмашина совместима со стандартом.
3. Сторонние вендоры могли сделать свою реализацию JDK (включая компилятор), при условии прохождения TCK, и свободно продавать ее.
4. Некрософт создает свою реализацию JDK, фейлит TCK, называет язык J++, получает патентный иск от сана, проигрывает, закапывает свою реализацию.
5. Сан открывает HotSpot под гпл, который с этого момента начинает назваться OpenJDK.
6. ASF создает сво реализацию JDK - Harmony, но тесты TCK не проводятся (по какой причине?). Есть еще вагон и маленькая тележка различных опенсорс реализаций JDK, все используют GNU Classpath и не прошли тест TCK
7. Оракел покупает сан
8. Гугл создает конвертер скомпилированного (на JDK Harmony) джава байткода в формат своей виртуальной машины и получает патентный иск от оракла (каким местом, хз...)
9. ASF пытается пройти TCK, оракел ей не дает это сделать (см. пункт 0)
10. Оракел делит OpenJDK на 2 части - коммерческую и публичную. Коммерческую закрывают, и бустят кусками из ораклового JDK JRockit
11. ASF угрожет выйти из комитета JCP, если ей не дадут пройти TCK

короче имеем на сегодняшний день OpenJDK, где версия патрициев отдельно. Толку от того что оно ГПЛ вообще никакого, форкнуть ее нельзя, тк тесты TCK не пройти и иск от оракла неизбежен.
Если еще короче, то ситуация «жрите что дают, а то и это отберем».

FollowTheRabbit
()

не понятно только одно. Если HotSpot это и есть OpenJDK, почему пакеты с оракла одни, с openjdk.java.net другие?

FollowTheRabbit
()
Ответ на: комментарий от FollowTheRabbit

> 0. - содержит запрет на создание open-source реализации JDK. Это не совсем так. Если ваша реализация наследуется от OpenJDK, то вы можете юзать TCK совершенно свободно.

6. ASF создает сво реализацию JDK - Harmony, но тесты TCK не проводятся (по какой причине?).

Ну вообще хронология другая. Сначала Апачи начили пилить Harmony и только потом (видимо от страха потерять контроль над джавой) Sun заопенсурсили HotSpot под GPL. Кстати на 5-ю джаву вроде бы Harmony прошел TCK, это на 6-й санки заговнились.

10. Оракел делит OpenJDK на 2 части - коммерческую и публичную. Коммерческую закрывают, и бустят кусками из ораклового JDK JRockit

Ну вообще-то бустят открытый. закрытый отличатеся только поддержкой, возможностью тонкого тюнинга, ну и какими-то совсем экзотическими плюшками из коммерческих версий сановских и оракловских джав. Впрочем пока релиза нет, говорить сложно. Но помоему все будет именно так, то есть как раньше и было в плане разделения на платную/бесплатную.

Толку от того что оно ГПЛ вообще никакого, форкнуть ее нельзя, тк тесты TCK не пройти и иск от оракла неизбежен.

Нет. во-первых GPL это implicit patent grant, поэтому Ораклу будет ну очень трудно засудить форк OpenJDK. А во-вторых TCK предоставляется всем форкам OpenJDK без ограничений - поэтому OpenJDK можно форкать сколько угодно и безболезненно. В принципе Ораклу будет сдожно что-то с вам сделать даже если вы запилите несовместимую джаву на базе OpenJDK

anonymous
()
Ответ на: комментарий от anonymous

тогда я не понял, ну будет еще одна опенсорс реализация JDK, ничего же не изменится. С какой целью ораклу ставить палки в колеса ASF? Не устраивает лицензия? Или дробление сообщества?

FollowTheRabbit
()
Ответ на: комментарий от FollowTheRabbit

> С какой целью ораклу ставить палки в колеса ASF? Не устраивает лицензия?

Именно. На базе Апачевской джавы, согласно лиценизии Apache 2.0, можно будет сделать закрытую джаву для киосков, чайников и спутников за которую Оракел не получит ни цента. В частности Оракел не сможет троллить Гугл.

anonymous
()
Ответ на: комментарий от VoDA

> нужно учесть, что при переопределении операторов функция должна корректно работать для всех НАСЛЕДНИКОВ, что не так просто и очевидно. Ввиду высокой вероятности неправильного использования данной фичи она как и множественное наследование забанены в java.
А чего виртуальные методы не убрали? А то вдруг индус и их неправильно использовать будет.

PayableOnDeath
()

а в чем собсно проблема с Boolean.TRUE? никому-ж и не мешал.
Лучше бы прикрутили:
- нормальные дженерики (вроде по ссылкам собираются),
- добавили const по типу сишного (final это совершенно иное),
- @Nullable в аннотации методов и их аргументов,
- лямбду, что бы 'new' лишний раз не вызывать (тоже в планах)

FollowTheRabbit
()
Ответ на: комментарий от ansi

> Угораздило аффтора учить Java, еклмн..... И алтернативы никакой....

(Шёпотом) C++ спасёт!

hobbit ★★★★★
()
Ответ на: комментарий от FollowTheRabbit

Договорились, сегодня же начинай вместо 1, 2, 3 писать Integer.ONE, Integer.TWO, Integer.THREE. ООП головного мозга рулит.

PayableOnDeath
()
Ответ на: комментарий от anonymous

Это на русский переводится как «вставка костылей»? В Python вот просто: True и False, в С++ true и false, и пока никто не умер. Особенно доставляет еще: f((byte) 2) для void f(byte p). Костыль, требующий явного приведения к меньшему типу вставили, а числовым константам типы приписываются так же, как в С++.

PayableOnDeath
()
Ответ на: комментарий от PayableOnDeath

>В Python вот просто: True и False, в С++ true и false, и пока никто не умер.
А чем тебе не нравятся явовские true и false;
Да, они типа boolean, но autoboxing нормально перегоняет их туда-сюда.

WatchCat ★★★★★
()
Ответ на: комментарий от PayableOnDeath

А import static Boolean.TRUE не спасёт отца русской демократии?

WatchCat ★★★★★
()
Ответ на: комментарий от vertexua

Да, только коротким читаемым синтаксисом

Karapuz ★★★★★
()
Ответ на: комментарий от GblGbl

> А то, например, при работе с большими числами, простые выражения из +-*/ и скобок растягиваются на несколько строчек.

Это Java-way.

sv75 ★★★★★
()
Ответ на: комментарий от VoDA

> Дальше для создания СВОЕЙ java нужно ИЛИ наследоваться от OpenJDK ИЛИ покупать лицензию на TCK

Э.... то есть я якобы не могу просто реализовать и спецификации и назвать полученный продукт Madagascar???

sv75 ★★★★★
()
Ответ на: комментарий от PayableOnDeath

>> нужно учесть, что при переопределении операторов функция должна корректно работать для всех НАСЛЕДНИКОВ, что не так просто и очевидно. Ввиду высокой вероятности неправильного использования данной фичи она как и множественное наследование забанены в java.

А чего виртуальные методы не убрали? А то вдруг индус и их неправильно использовать будет.

а как сделать наследование и полиморфизм БЕЗ виртуальных методов?

VoDA ★★
()
Ответ на: комментарий от FollowTheRabbit

> - нормальные дженерики (вроде по ссылкам собираются),

собираются, но не в ближайшей версии.

а чем const отличается от final?

VoDA ★★
()
Ответ на: комментарий от PayableOnDeath

>Потому что создается куча лишних сущностей и задаются преобразования между ними. Для Boolean не создается - обеъект-класс Boolean + Два объекта-инстанса Boolean.TRUE & Boolean.FALSE.

VoDA ★★
()
Ответ на: комментарий от sv75

>> Дальше для создания СВОЕЙ java нужно ИЛИ наследоваться от OpenJDK ИЛИ покупать лицензию на TCK

Э.... то есть я якобы не могу просто реализовать и спецификации и назвать полученный продукт Madagascar???

Можешь, только тебе нужны лицензии на использование патентованных технологий от Оракли. Или покупай лицензии ИЛИ наследуйся от OpenJDK (тогда лицензии получаешь за так) или покупай лицензию на TCK, тогда прохождение TCK дает право на бесплатное использование патентов.

VoDA ★★
()
Ответ на: комментарий от FollowTheRabbit

> 0. Sun создает концепцию языка, комитет по стандартизации JCP, тесты TCK. Набор платных тестов TCK - это фактически одобрение саном использования ее технологий сторонней компанией, содержит запрет на создание open-source реализации JDK. Тесты можно было не проходить, но назвать это джавой уже нельзя и есть риск патентных исков от сана. Да.

1. Sun JDK HotSpot была написана саном и включала JRE для спарков и х86 процессоров.

Да.

2. Производители кофеварок/сотовых телефонов могли сами написать реализацию JRE для своего устройства и пройти тест TCK, что бы показать разработчикам что их виртмашина совместима со стандартом.

Да, тогда получаешь лицензию на патерты Сана и не боишься исков типа Гугловского.

3. Сторонние вендоры могли сделать свою реализацию JDK (включая компилятор), при условии прохождения TCK, и свободно продавать ее.

Да. Но полностью своих реализаций никто не делал - слишком дорого. Покупали Сановскую и допиливали по месту.

4. Некрософт создает свою реализацию JDK, фейлит TCK, называет язык J++, получает патентный иск от сана, проигрывает, закапывает свою реализацию.

Да. СОздает .Net

5. Сан открывает HotSpot под гпл, который с этого момента начинает назваться OpenJDK.

IBM & Intel скидываются прогерами (очень мощные тимы были созданы во многих центрах разработки) и начинают пилить ASF Harmony. Сан сцыт и примерно через несколько месяцев объявляет о том, что рано или поздно откроет Java под OpenSource лицензией.

6. ASF создает сво реализацию JDK - Harmony, но тесты TCK не проводятся (по какой причине?). Есть еще вагон и маленькая тележка различных опенсорс реализаций JDK, все используют GNU Classpath и не прошли тест TCK

ASF было раньше, чем Сан начал кричать что откроет джаву. Опенсорс реализации типа GCJ джавой называть не правильно - очень криво обрабатывают корректные проекты. Пришел к тому, что Первым делом при развертывании серверов под Linux удалял gcj чтобы физически приложение не =могло подцепиться на некорректную и кривую реализацию.

7. Оракел покупает сан

Да.

8. Гугл создает конвертер скомпилированного (на JDK Harmony) джава байткода в формат своей виртуальной машины и получает патентный иск от оракла (каким местом, хз...)

Гугля не проводил TCK на darvik (это их ВМ), не наследовался от OpenJDK и не купил лицензии на патенты Оракли.

Кстати к «конвертер скомпилированного (на JDK Harmony) джава байткода в формат своей виртуальной машины» - конвертер прекрасно работает и с байткодом от Sun JDK - java-байткод вещь строго описанная спеками, потому практически полностью одинаковый.

9. ASF пытается пройти TCK, оракел ей не дает это сделать (см. пункт 0)

Да. ASF не устраивают условия TCK. Причем несколько лет назад сам Оракл кричал, чтобы Сан изменил условия TCK на более либеральные.

10. Оракел делит OpenJDK на 2 части - коммерческую и публичную. Коммерческую закрывают, и бустят кусками из ораклового JDK JRockit

False. Sun открыл JDK под GPL, но остался единственным владельцем кода, потому они могут один и тот же код компилировать и в закрытую и в открытую реализации. Сан кроме бесплатных OpenJDK & Sun JDK продавал несколько тюненых версий JDK за деньги. Оракл получил несколько версий открытых + закрыты, платных + бесплатных от Сан, и еще раньше купил BEA c их JRocket. Сейчас Оракля собирается СМЕРЖИТЬ JDK-хи которых у них слишком много в меньшее количество версий.

Так что они поступают на благо - уменьшают количество разнородных версий. Плюс обещают часть наработок JRocket залить в OpenJDK. А это круто.

11. ASF угрожет выйти из комитета JCP, если ей не дадут пройти TCK

Если ей не дадут лицензию на TCK на более демократичных условиях.

короче имеем на сегодняшний день OpenJDK, где версия патрициев отдельно. Толку от того что оно ГПЛ вообще никакого, форкнуть ее нельзя, тк тесты TCK не пройти и иск от оракла неизбежен.

Если еще короче, то ситуация «жрите что дают, а то и это отберем».

False. см пункт 10. про форканье - тоже false, но расписывать не буду - и так ответ получился громоздкий.

VoDA ★★
()
Ответ на: комментарий от GblGbl

Я для таких штук пишу себе препроцессор, который вставляется в ant-скрипт и трансформирует код так, как мне надо

note173 ★★★★★
()
Ответ на: комментарий от Karapuz

>Ну вот, видишь? Альтернатив JDownloader-у нет

Здрасте! А я Что говорю? Только вот это самый ЙаДоунлоадер, со своей Жавой, очень уж глючный под !Solaris! :O. Падает когда ему вздумается, на Х3420 запускается целых 5 секунд, интерфейс убогий, при закрытии убирается только с экрана, так что приходится делать pkill java.

ansi ★★★★
()
Ответ на: комментарий от FollowTheRabbit

const типа сишного не нужен, так как все передается по ссылке и есть сборщик мусора

maxcom ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.