|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
Меня смущает суффикс IBM. Зачем вы его дописали? Что такое Openj9 ? Дописал, чтобы сразу было понятно, что именно я имею ввиду. Есть два больших опенсурсных jdk: openjdk и openj9 - некий вариант явы от ibm, не так давно переведенную в опенсурс. У Оракл достаточно много серверного интерпрайзного ПО (оракл формс и проч.), они все требуют oraclejdk (по матрицам совместимостей). И если раньше эту oraclejdk для продакшена можно было скачать и использовать бесплатно, то скоро как я понимаю - будет нельзя. В интернете пишут цену в 25$ в месяц за 1 процессор, это в год получается 300$. У крупных компаний может быть достаточно много систем, как от Оракла, так и российской или даже собственной разработки. И цена таких систем получается подрастает. И на openjdk\openj9 их не перевести (если только собственную разработку, да и то если сторонние библиотеки заработают). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 17:17 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
получается - начало конца.... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:27 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555Ну да, если "опустим разговоры", тогда пожалуйста - играйтесь. Но если не опускать, то сразу возникает вопрос - а что конкретно выведет данная программа в консоль? Напишите ваш ответ, а я потом покажу, что на самом деле всё будет не так, как вы написали. Здесь зависит: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
выведет 0..10, однако в Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
выведет 10..10, а для foreach цикла это поведение исправили. Немного странно, но не смертельно. alex55555Выглядит короче и некоторым кажется, что это как раз то, что им нужно. Но эти некоторые, конечно же, совсем забыли про все остальные случаи использования лямбд. Например - некоторые предполагают, что им на всю жизнь достаточно одного лишь интерфейса Runnable. А я им напоминаю - есть ещё миллионы других интерфейсов. Простой пример - Comparable. И у него один метод - compare(Object x). Но некоторые по прежнему настаивают, что лямбда с Comparable должна выглядеть как lambda.run(). И куда же вставить аргумент? С чем будет сравнивать себя Comparable? Так вот умные дяди давно поняли, что вызов Х.compare(x) нужно отличать от вызова У.run(). И для того они создали ООП, в котором предусмотрели массу всячески нюансов. А если бы умные дяди не подсуетлись много лет назад, то сегодняшнее подрастающее поколение не смогло бы рассказать, как отличить локальный метод run() от такого же метода объекта У. Ну и до кучи - куда же всё-таки деть аргумент для сравнения? Что касается Comparable, не вижу большего смысла в его использовании в качестве лямбды (т.к. его предназначение - имплеменить ся классом, который будет поддерживать сравнение). Я не помню, куда можно передать Comparable (мне кажется, никуда), а вот Comparator (lambda.compare(o1, o2)) принимается Collections.sort(), например. alex55555В общем вижу типичное выхватывание понравившихся кусков, сопровождаемое непониманием взаимосвязей между выхватываемым и остальным. Всё остальное просто перестанет работать, если вот так вот по детски заявлять "я хочу run() вместо У.run()". Потому что кроме одного единственного случая в мире существует много других, про которые тоже нужно думать. Я вижу косность и ретроградство. Если бы другие люди считали как вы, не появилось бы groovy, scala, kotlin, ceylon и т.д. А Джавой заправляют умные дяди из оракла, которые, не пишут обычный энтерпрайзный код из дня в день, с кучами проверок на null, заведением десятков классов на каждый чих, автогенерацией equals/hascode, геттерами/сеттерами и т.д. alex55555Когда-то давно в Java умные дяди устранили массу причин для возникновения ошибок, например - указатели. В том числе - указатели на функции. Но подрастающее поколение не ценит достижений предков. И хочет опять получить указатели. Но с ними - все классы ошибок, от которых умные дяди избавили подрастающее поколение. Не слышал, чтобы кто-то хотел получить указатели. Си - это embedded язык, а в c++ уже 10 лет как никто не использует нативные указатели и ручное управление памятью считается анти-паттероном (если конечно, вы не пишут особый софт). В C# например добавили тип Span<T> для безопасной работы с куском памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 23:47 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555Когда-то давно в Java умные дяди устранили массу причин для возникновения ошибок, например - указатели. В том числе - указатели на функции. Но подрастающее поколение не ценит достижений предков. И хочет опять получить указатели. Но с ними - все классы ошибок, от которых умные дяди избавили подрастающее поколение. Если мне не изменяет память начиная с восьмерки анонимные функции компилируются в статик-методы внутри класса и работа с ними идет через Method-Reference. Это фактически - указатели на функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 00:06 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5Я вижу косность и ретроградство. Если бы другие люди считали как вы, не появилось бы groovy, scala, kotlin, ceylon и т.д. А Джавой заправляют умные дяди из оракла, которые, не пишут обычный энтерпрайзный код из дня в день, с кучами проверок на null, заведением десятков классов на каждый чих, автогенерацией equals/hascode, геттерами/сеттерами и т.д. На самом деле последние лет 10 ничего принципиально нового не создано. Все что т.н. новое сегодня - это циклическое переосмысление наработок 20-го века. Акторы были. ФП было. Корутины были. Не дай бох мы еще будем копать в системный анализ - вообще все уже было. Последнее время просто бизнес-разработка нащупывает для себя подходы к разработке при которых "кодер средней руки" сможет кодить бизнес-логику и верстать странички. Больше и не надо. Попытки сделать больше - это "плачущий" Девид Поллак и констатация того что "разработчик уже не тот". И каково-же моё сегодня удивление когда я вижу что Блин это уже было в Симпсонах Scala! Это было в Хаскелль. Ребята. Какие стримы? Это мать их Lazy collections. Какие map/fold/reduce (есть другие варианты названий) ? Это уже старый боян и вы когда их внедряете - хотя бы честно дайте референс на стариков Мак Карти, Хаскела Карри, и Черча. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 00:20 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5Здесь зависит: ... выведет 0..10, однако в ... выведет 10..10 Ну вот, даже сами смогли осознать многовариантность собственного кода. Но конечно такие пустяки, как отложенное или параллельное выполнение вы не вспомнили. Ну да не беда, я вам подскажу - там всё будет совсем непредсказуемо. И вот зная о полной непредсказуемости подхода с пропихиванием всего доступного во все возможные щели, вы продолжаете настаивать, что все эти новые классы ошибок обязательно включать в стандарт Java? cossack5Что касается Comparable, не вижу большего смысла в его использовании Ну ё-моё, это-ж пример (это-ж памятник, кто-ж его посадит!) Но строгости ради - вы можете обосновать необходимость посадки памятника, да. cossack5Я вижу косность и ретроградство. Беспечность в изменении языка приводит к большим косякам. Поэтому беспечные предложения обычно слышны исключительно от молодых да ранних программистов, а вот по рукам им бьют все те, кто уже давно познал горечь знакомства с плодами такой незрелой беспечности. cossack5Не слышал, чтобы кто-то хотел получить указатели. Речь шла о возникающих проблемах, которые вы не потрудились исправить. А пример с указателями дан для наглядности. Указатели приводят к проблемам. Свободно валяющиеся в Java функции точно так же приведут к проблемам. Это по сути будет другой язык. Идеология другая. Примерно как в скриптах - можно всё, но косяков при этом миллион. Ну и я вам указал, что вы по молодости хотите испортить хороший язык. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:32 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonЕсли мне не изменяет память начиная с восьмерки анонимные функции компилируются в статик-методы внутри класса и работа с ними идет через Method-Reference. Это фактически - указатели на функции. Скорее изменяет. Я не ковырял байт-код восьмёрки, но старое решение в виде дополнительного класса вполне будет работать и в новой среде. Отсюда вопрос - а нахрена козе баян? Зачем разработчикам компилятора ваять какие-то убогие костыли, если старое и так работает? И да, статичные функции не имеют связи с указателями. Они жёстко привязаны к классу-владельцу. Их нельзя никуда передать. Передать можно лишь описание класса, а дальше синтаксис позволит сделать вызов. И где здесь указатели? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:38 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonПоследнее время просто бизнес-разработка нащупывает для себя подходы к разработке при которых "кодер средней руки" сможет кодить бизнес-логику и верстать странички. Больше и не надо. Только не бизнес, а некий довольно анархичный процесс с участием миллионов "творцов" вроде cossack5 и ему подобных. Кто-то из миллионов обязательно попадает в условия, когда имеет возможность пропихнуть своё "я так вижу" в уши некоего ЛПР, ну и далее начинается "творчество" за чужой счёт. А бизнес, вложив деньги, хочет выхлоп. Ну и распространяет заразу. Хотя да, цель бизнеса при этом - что бы было дёшево и сердито. Но без целей таких людей, как cossack5, существующего бардака с языками и подходами ни в коем случае бы не существовало. В целом имеем сложный эволюционный процесс, в котором одним хочется творить, а другим хочется зарабатывать. И кто кого здесь на самом деле нагибает - вопрос очень непростой. Суммарно cossack5 со товарищи очень сильны. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:45 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
пизнес не будет вкладываться малопроверенные и малозарекомендованные инструменты. в основном. есть те кому бабло девать некуда - те да. те попробуют. и может быть им повезет. а может не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:07 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555maytonЕсли мне не изменяет память начиная с восьмерки анонимные функции компилируются в статик-методы внутри класса и работа с ними идет через Method-Reference. Это фактически - указатели на функции. Скорее изменяет. Я не ковырял байт-код восьмёрки, но старое решение в виде дополнительного класса вполне будет работать и в новой среде. Отсюда вопрос - а нахрена козе баян? Зачем разработчикам компилятора ваять какие-то убогие костыли, если старое и так работает? И да, статичные функции не имеют связи с указателями. Они жёстко привязаны к классу-владельцу. Их нельзя никуда передать. Передать можно лишь описание класса, а дальше синтаксис позволит сделать вызов. И где здесь указатели? Дружище. Давай возьмем компилляторы линейки 7,8,9,10 и посмотрим какой они собирают код. С анонимным классом в семерке. И с анонимным классом и лямбдой во всех версиях постарше. Я спокойно возьму свои слова назад если я неправ. По поводу боян и костыли. Я думаю что нам с тобой надо внимательно читать Jep-s. Там всегда есть обоснование этих улучшений. Возможно экономия perm-gen/metaspace что для фреймворков с автоматическими кодо-генераторами может быть очень даже оправдано. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:11 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonalex55555пропущено... Скорее изменяет. Я не ковырял байт-код восьмёрки, но старое решение в виде дополнительного класса вполне будет работать и в новой среде. Отсюда вопрос - а нахрена козе баян? Зачем разработчикам компилятора ваять какие-то убогие костыли, если старое и так работает? И да, статичные функции не имеют связи с указателями. Они жёстко привязаны к классу-владельцу. Их нельзя никуда передать. Передать можно лишь описание класса, а дальше синтаксис позволит сделать вызов. И где здесь указатели? Дружище. Давай возьмем компилляторы линейки 7,8,9,10 и посмотрим какой они собирают код. С анонимным классом в семерке. И с анонимным классом и лямбдой во всех версиях постарше. Я спокойно возьму свои слова назад если я неправ. По поводу боян и костыли. Я думаю что нам с тобой надо внимательно читать Jep-s. Там всегда есть обоснование этих улучшений. Возможно экономия perm-gen/metaspace что для фреймворков с автоматическими кодо-генераторами может быть очень даже оправдано. Драфт находится здесь . Финальный черновик здесь . Тема с method-хендлами нераскрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:54 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555Скорее изменяет. Я не ковырял байт-код восьмёрки, но старое решение в виде дополнительного класса вполне будет работать и в новой среде. Отсюда вопрос - а нахрена козе баян? Зачем разработчикам компилятора ваять какие-то убогие костыли, если старое и так работает? Вот ведь, разработчики компиляторов, рантаймов, и другие умные дьдяки Оракла, негодяи какие, взяли и наваяли какие-то убогие костыли, и даже не удосужились спросить экспертного мнения alex55555. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 21:14 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonДружище. Давай возьмем компилляторы линейки 7,8,9,10 и посмотрим какой они собирают код. Давай. Ты ещё не взял? maytonПо поводу боян и костыли. Я думаю что нам с тобой надо внимательно читать Jep-s. Там всегда есть обоснование этих улучшений. Возможно экономия perm-gen/metaspace что для фреймворков с автоматическими кодо-генераторами может быть очень даже оправдано. И когда же ты почитаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:01 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5Вот ведь, разработчики компиляторов, рантаймов, и другие умные дьдяки Оракла, негодяи какие, взяли и наваяли какие-то убогие костыли, и даже не удосужились спросить экспертного мнения alex55555. Вы по вами представленной ссылке текст читали? Мне очевидно - нет. Так вот там написано - никаких указателей. Слушают меня умные дядьки :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:02 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555cossack5Вот ведь, разработчики компиляторов, рантаймов, и другие умные дьдяки Оракла, негодяи какие, взяли и наваяли какие-то убогие костыли, и даже не удосужились спросить экспертного мнения alex55555. Вы по вами представленной ссылке текст читали? Мне очевидно - нет. Так вот там написано - никаких указателей. Слушают меня умные дядьки :) Где я что-то говорил про указатели ? Вообще, то как это реализовано на данный момент, неподвластно вашему пониманию. Указатели или нет. Так что спорить не о чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 16:39 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5Так что спорить не о чем. Ну как вам будет угодно. Хотя всем очевидно, что аргументов нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 16:44 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5maytonпропущено... Дружище. Давай возьмем компилляторы линейки 7,8,9,10 и посмотрим какой они собирают код. С анонимным классом в семерке. И с анонимным классом и лямбдой во всех версиях постарше. Я спокойно возьму свои слова назад если я неправ. По поводу боян и костыли. Я думаю что нам с тобой надо внимательно читать Jep-s. Там всегда есть обоснование этих улучшений. Возможно экономия perm-gen/metaspace что для фреймворков с автоматическими кодо-генераторами может быть очень даже оправдано. Драфт находится здесь . Финальный черновик здесь . Тема с method-хендлами нераскрыта. Эээ... я просто не понял. В первом предложении вы пишете две ссылки. Типа рекомендуете читать. А дальше - тема не раскрыта. Тоесть читать не стоит? Проясните. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 19:22 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytoncossack5пропущено... Драфт находится здесь . Финальный черновик здесь . Тема с method-хендлами нераскрыта. Эээ... я просто не понял. В первом предложении вы пишете две ссылки. Типа рекомендуете читать. А дальше - тема не раскрыта. Тоесть читать не стоит? Проясните. Я имел в виду, не описано как именно работают метод-хендлы (хотя, если учитывать, что они появились раньше лямбд, может и не стоило описать их в статье про лямбды) . А так читать, конечно стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 19:52 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
cossack5maytonпропущено... Эээ... я просто не понял. В первом предложении вы пишете две ссылки. Типа рекомендуете читать. А дальше - тема не раскрыта. Тоесть читать не стоит? Проясните. Я имел в виду, не описано как именно работают метод-хендлы (хотя, если учитывать, что они появились раньше лямбд, может и не стоило описать их в статье про лямбды) . А так читать, конечно стоит. Забегая вперед я скажу что я пока не знаю как они работают. Но вот смотрю на кусок кода из Хорстмана. Обратите внимание на Collectors.toMap. Код: java 1. 2. 3.
Он имеет несколько перегрузок но КМК работает вот эта. Код: java 1.
Тоесть ссыла на метод - это функция Function<? super T, ? extends ...>. В семерке мы могли создать анонимный класс и определить в нем отдельно getId, и потом создать еще один класс и определить в нем getName и передать их в коллектор. Согласитесь - ненужные активности. У нас и так есть ссылка на метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 20:24 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonУ нас и так есть ссылка на метод. Ну конечно же нет. Но копать стоит, в конце может наступить понимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 00:41 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
maytonВ семерке мы могли создать анонимный класс и определить в нем отдельно getId, и потом создать еще один класс и определить в нем getName и передать их в коллектор. Кстати - не могли. Ну да это и так будет понятно после наступления понимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 00:44 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
alex55555maytonВ семерке мы могли создать анонимный класс и определить в нем отдельно getId, и потом создать еще один класс и определить в нем getName и передать их в коллектор. Кстати - не могли. Ну да это и так будет понятно после наступления понимания. Почему не могли ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 01:56 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov, Здравствуйте как можно с вами связаться для личной беседы, почта, телеграмм? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 07:00 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
Обидно, что JEP 326 не попал в 11 LTS (( Это реально то, чего мне капец как нехватает... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 09:03 |
|
90 New Features (and APIs) in JDK 11
|
|||
---|---|---|---|
#18+
just_vladimirОбидно, что JEP 326 не попал в 11 LTS (( Это реально то, чего мне капец как нехватает... Реально не хватает или зудит ? Выглядет как неплохо бы иметь для читаемости но без острой необходимости и обязательности. Если только у вас не специфический проект? Можно кстати сразу привести примеры и поделиться в каких случаях вот прям не хватает было бы полезно. Спасибо заранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 09:54 |
|
|
start [/forum/topic.php?fid=59&msg=39710689&tid=2121734]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 458ms |
0 / 0 |