Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Java дайджест #36: Java 10

Ссылки, на которые лучше таки нажать (по мнению автора), отмечены знаком (!)

Java 10

JEPs proposed to target JDK 10.

(!) Актуальное состояние JDK 10.

Ранние сборки JDK 10. Именно тут появится новый сборщик мусора.

Docker образы Java от Aleksey Shipilëv. Есть сборки со сборщиком мусора со сложнопроизносимым названием.

New Version Scheme for Java SE Platform and the JDK.

(!) Data Classes for Java.

Что-то вроде новостей

Вышел GWT 2.8.2. Оказывается он еще жив.

Вышел WildFly 11.

Почитать и посмотреть

Migrating a Spring Boot application to Java 9 CompatibilityModules.

jOOQ Tuesdays: Nicolai Parlog Talks About Java 9.

Monitoring Eclipse MicroProfile 1.2.

5 вещей, которые нужно знать о MicroProfile.

Новость о выходе JUnit 5 на InfoQ.

Deploying Java Applications with Docker and Kubernetes.

(!) Reactive Spring.

Сравнение CI-серверов от Takipi.

Learning Java with jshell от Dr Heinz Kabutz.


Предложения и пожелания все еще принимаются или через завсклад и товаровэд администрацию DOU, или через твиттер @_silverwolf. Также можно оставлять комментарии в специально выделенной теме на форуме.


← Предыдущий выпуск: Java дайджест #35
Следующий выпуск: Java дайджест #37

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



33 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.
Java 10

А андроид только-только маленькими шагами на 8ю переходит )))

1. «Scala — фигня, но мы все-таки добавим лямбдочки и функциональщину» (Java 8)
2. «Scala — фигня, но мы скорее всего добавим pattern matching ибо очень удобно» (JEP Goetz)
3. «Scala — фигня, но мы скорее всего добавим case классы и назовем это Data class» (JEP Goetz)

А вообще нашему Брайну Гоетцу не мешало перейти в EPFL к Мартину наконец.

Вы же в крусе, что все что вы перечислили впервые появилось не в Скале?

но мы все-таки добавим лямбдочки и функциональщину

Грустно не то что не добавили «функциональщину», а то что куча народу считает (купилась на маркетологические сказки) что добавив упрощенный синтаксиси для создания объектов аля блоки в джаву добавили «функциональщину».

Уж кто-кто, а я в курсе. А еще в курсе того, что JEP на эту тему начали добавляться как раз после того, как увидели насколько популярны подобные вещи в Scala/Kotlin. Регрес.

Вы лучше нам расскажите, как бы вы реализовали настоящую «функциональщину» в виртуальной машине.

Вы лучше нам расскажите, как бы вы реализовали настоящую «функциональщину» в виртуальной машине.

Главное зачем?

А еще в курсе того, что JEP на эту тему начали добавляться как раз после того, как увидели насколько популярны подобные вещи в Scala/Kotlin.

Уверен что особенно повлиял Котлин, который зарелизился где-то одновременно с тем когда стало понятно что в 7-ку люмбды не влезут :)
Толчком для лямбд, стала конкуренция с дотНет, а не скала, которая несмотря на то что в нее натыкали кучу фич, все еще имеет адопшн на порядок меньше чем джава.

а то что куча народу считает (купилась на маркетологические сказки) что добавив упрощенный синтаксиси для создания объектов аля блоки в джаву добавили

softwareengineering.stackexchange.com/...​-inner-class-with-a-singl
Разве это просто упрощенный синтаксис?

Разве это просто упрощенный синтаксис?

С точки зрения вызывающего кода — это просто упрощенный синтаксис для объектов. То что там внутри ДжВМ добавили специальные оптимизации никак не относится к «функциональщине». (очень забавно что вы не скопировали в цитату слово которое задает контекст :) )

Офтоп, я не претендую на звание эксперта и не пытаюсь спорить, просто стараюсь разъяснить моменты. Ведь лямбды не создают инстанса объекта, как в случае с анонимными классами. А разве возможность передавать ссылки на функции не является краеугольным камнем функциональной парадигмы?

Повторюсь
codelexems.com/...​ot-just-syntactic-sugars

InvokeDynamic reduces the memory overhead because no objects will be instantiated on the fly just for the sake of anonymous implementation. For those who call everything a „syntactic sugar”, lambdas and anonymous classes aren’t equivalent.

The translation of a lambda expression to bytecode is performed in two steps:

generate an invokedynamic call site (called lambda factory), which when invoked returns an instance of the Functional Interface to which the lambda is being converted;
convert the body of the lambda expression into a method that will be invoked through the invokedynamic instruction.

И примечание, что реализация not fixed in stone

www.infoq.com/...​das-A-Peek-Under-the-Hood

Вообще странная статья, пишут что нет, но по итогу что в лоб, что по лбу, особенно если захват переменных происходит.

Ведь лямбды не создают инстанса объекта

Иногда создают, иногда нет. Если этого нет по вашей ссылке, то попробуйте найти источник получше (вроде бы где-то в ранних дайджестах что-то такое должно было быть).

А разве возможность передавать ссылки на функции не является краеугольным камнем функциональной парадигмы?

Нет.

1) Ключевой момент — это отношение к функциям, как к отдельным сущностям. В джаве вы все равно будете работать с каким-то объектом у которого вы будете вызывать методы. А еще может оказаться что у вашей «функции» можно вызвать несколько методов.
2) В джаве банально нет каррирования на уровне языка.
3) Очень важная часть ФП — это чистые функции. В джаве этого достичь практически не возможно, в основном ввиду инфраструктуры/фреймворков.

Немного оффтопик:
4) ФП — это прадигма мышления, произнося словосочитание «ссылки на функции» вы уже мыслите в другой парадигме. В ФП нет никаких «ссылок». Ссылки на куски кода есть даже в С, но это не делает С функциональным языком, а эти куски кода функциями.

Джепы в десятке вызывают лишь печальку. Где вкусняшки? Ну хотя бы openjdk.java.net/jeps/305

такая вкусняшка давно лежит в других языках по 5 лет

Нам просто очень хорошо платят :).

Я думаю что вы уже слышали про новый релизный цикл.

Developers who prefer rapid innovation, so that they can leverage new features in production as soon as possible, can use the most recent feature release or an update release thereof and move on to the next one when it ships

Вот и стараются меньше пообещать, и справится с обещаным. Будет время до релиза, может еще что-то выкатят.
Я все самые большие вкусняшки уже выкатят в следующем LTS верисии

Это понятно. Просто в первую очередь хочется видеть что-то, что можно попробовать и сразу применить. А не какие-то скрытые в недрах JVM штуки.

openjdk.java.net/projects/jdk/10
286: Local-Variable Type Inference — ну вот вам сахара немного дали )

Самый бесполезный джеп как по мне =). Но посмотрим. Может действительно будет удобней.

(!) Data Classes for Java.

Ось ще пачка корисних пропозицій яких нам так не вистачає: www.yegor256.com/...​ve-new-java-features.html

Ось ще пачка корисних пропозицій яких нам так не вистачає: www.yegor256.com

Совет не только вам: добавьте этот домен в блек-лист.

Чому? Вам не сподобалися пропозиції? А як на мене, давно пора. Разом з дата классами. Все одно щоб досягнути того самого потрібно писати купу бойлерплейту.

Вам не сподобалися пропозиції?

Я их даже не читал. :)

Чому?

Персонаж поднимает хайп на «не популярных идеях» (идеях которые не в тренде в данный момент). Делает это довольно резко (утверждая что его идея правильная, а остальные гуано), при этом __имеет довольно слабые обоснования__, вызванные тем что он не провел «иследование существующих решений». UDP: часто помимо обоснования, у него отсутствует еще и понимание того о чем он говорит, что усугубляет ситуацию.
Соответственно, для синьра, вероятность того что в его опусах будет что-то полезное крайне мала, и лучше потратить время на что-то более полезное. А для джуна, все может закончится еще более плачевно: ввиду малого багажа знаний, джун может подцепить какую-то заразу.

Персонаж поднимает хайп на «не популярных идеях»

Ви, як мінімум, не праві.

«Не читал но осуждаю».

лучше потратить время на что-то более полезное

Ага, на дата-класи, лол. Людина дві книжки написала, почитайте фідбеки на амазоні.

для синьра, вероятность того что в его опусах будет что-то полезное крайне мала

Нашим «сенйорам» нічого не допоможе вже після живильної ін’єкції новин про javaee.

Фідбек Архіпова, просто так — www.goodreads.com/review/show/1724551901

Ви, як мінімум, не праві.
«Не читал но осуждаю».

К сожалению, я читал его статьи и даже попал на 1 выступлении, но время не вернуть и бургеры были неплохие.
Как контрольный пример, можете послушать выпуски в Разборе полетов. Идеи он начал выдвигать правильные (схожие с идеями Алана Кэя), вот только после определенного количкества вопросов, стало понятно что от идей Кэя там только схожие слова (а не суть), а аргументация персонажа сошла к «Я над этим не думал» (а думать и не надо было, надо было почитать выступления с OOPSLA)

Людина дві книжки написала, почитайте фідбеки на амазоні.

Аваков вот недавно тоже книку выпустил. У Федоровича тоже есть какие-то книги писал и кучу статей.

Фідбек Архіпова, просто так — www.goodreads.com/review/show/1724551901

Вот это еще один момент, на которм выезжает персонаж:
Это ваше ИТ — это сборище девочек-тинейджеров.
Антон Архипов уже стал признаным специалистом в ООП? 4 звеждочки — это уже круто? Ревью в 1.5 предложение — это уже аргумент?

Ага, на дата-класи, лол

Та нас...ть на дата-классы как таковые. Важно что это то во что эволюционирует платформа на каторой мы (целивая аудитория этого файджеста) работаем, и нужно понимать куда движется платформа.

Как контрольный пример, можете послушать выпуски в Разборе полетов.

Ох, для мене ці контрольні приклади були якраз контрольними по Баруху та іншим резидентам а не по Єгору.

Антон Архипов уже стал признаным специалистом в ООП?

Ага, тобто те що книжка багатьом здалась цікавою та актуальною ми вже не беремо до рахунку? А ви вже стали визнаним спеціалістом по Java щоб стверждувати що все що пише Єгор — маячня?

Важно что это то во что эволюционирует платформа

Ну от Єгор пропонує додати ще багато корисних функцій щоб платформа ще більше деградувала розвивалась.

Ага, тобто те що книжка багатьом здалась цікавою та актуальною ми вже не беремо до рахунку?
Это ваше ИТ — это сборище девочек-тинейджеров.

К сожалению.

Ох, для мене ці контрольні приклади були якраз контрольними по Баруху та іншим резидентам а не по Єгору.

Возможно я что-то не так запомнил. Я запомнил как Егор говорил фразы в стиле «Я над этим не думал», а от других персонажей я такого не помню. Может вы запомнили по другому.

Ну от Єгор пропонує додати ще багато корисних функцій

От я и говорю: доман важен.
Можете дать ссылку на статьи с домена cr.openjdk.java.net ?

так там ніби і картинка відповідна, і тег «sarcasm» стоїть

ну хіба що ще можна було статтю назвати «Make Java Great Again» :)

(!) Data Classes for Java.

Увлекательно, спасибо.

Только надо понимать что описанное в статье может еще 100500 раз изменится.

Підписатись на коментарі