Как многие из вас знают, в конце апреля в Москве JUG.ru проведет четвертую по счету конференцию JPoint. Любителей окунуться в океан Java-технологий ждут два увлекательных дня с морем общения и кучей докладов. Месяц назад я начал рассказывать о лучших докладах прошлогодней JPoint. Сегодня пришло время второй части.

Важно понимать, что под лучшими я понимаю доклады, которые оказались наверху нашего рейтинга. После каждой конференции мы собираем feedback с участников, обсчитываем его и получаем много всего интересного. В частности, выборочное среднее по оценкам участников для каждого доклада. Самый важный спецэффект заключается в том, что, как и любой статистический показатель, оно отражает реальность лишь с какой-то точностью. Возникающая ошибка, как правило, больше чем разрыв в оценках между соседними докладами, и поэтому порядок докладов в рейтинге — весьма условен. Как-нибудь я подробнее расскажу про эту простую модель с точки зрения математики, а пока — к черту матстат, давайте займемся джавой.





5 место


Андрей apangin Паньгин, Одноклассники: Лучший отладчик — сделанный своими руками
Средняя оценка: 4.51



По сути, этот доклад — набор рецептов, как можно исследовать свой продакшен. Много JMX, много о том, что JVM рассказывает о себе в Runtime, много про JVMTI и вообще много-много о том, что можно узнать о JVM, спросив про ее состояние из кода, а не из профилировщика или какого-то другого внешнего инструмента.



В докладе очень много живого кода. Всем советую потратить сегодня вечером пару часов, запустить любую Java-программу (да хоть Pet Clinic) у себя на компе или домашнем сервере и полазать по рантайму с помощью методов, описанных Андреем. Поверьте, вас ждет много интересного!

Из минусов — некоторые справедливо отмечают, что Live Demo замедляют доклад, ведь время тратится на написание и запуск кода. С другой стороны, мы давно заметили, что если примеры показывать вживую, то народ лучше запоминает происходящее. Отдельные смельчаки даже пытаются воспроизвести происходящее на сцене в прямом эфире.




4 место


Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
Средняя оценка: 4.58



«Шоу-доклад», как отметил один из участников в своем фидбэке. Барух и Женя делают для нас специальный формат — паззлеры. Суть такая: докладчики играют с залом в извращенную версию игры «кто хочет стать миллионером?». На экране появляется некоторый код (в данном случае, на Groovy) и 4 варианта ответа того, что этот код делает. Соответственно, участники в зале выдвигают версии и пытаются объяснить, что происходит в коде. За правильные ответы докладчики кидают подарки в зал. С непривычки — выглядит весьма необычно.



Этот доклад — продолжение вот этого доклада с Joker 2014. Формату этому уже довольно много лет, о чем и рассказывается в самом начале первой его части.

Посмотрев этот доклад в очередной раз одновременно порадовался за Groovy и одновременно ужаснулся. Бодро, весело, помогает напрячь мозги.




3 место


Алексей Шипилёв, Oracle — Сжимай меня полностью
Средняя оценка: 4.62



Как мы теперь уже знаем, в Java 9 класс java.lang.String ждет много изменений. Одна из основных гипотез, лежащих в основе грядущих изменений, заключается в том, что
  • строки в большинстве приложений занимают большую часть памяти
  • большинство строк в приложениях по всему миру — ASCII, то есть джавовский UTF-16 для них избыточен




По этому поводу возникла идея — а давайте будем экономить память и хранить строку не в виде char[], а в виде byte[]. Доклад последовательно (и тут надо отдать должное глубине проработки, которую совершил Алексей) подводит нас к некоторым сложностям и граблям, на которые наткнулись разработчики JDK/JVM, пока делали данное изменение со строками. Затронуто много излюбленных Алексеем сюжетов — layout объектов в памяти, тестирование производительности старых и новых вариантов строк, низкоуровневые железячные приколы и даже ассемблерный код. Круто, здорово и довольно сложно. Неподготовленному слушателю происходящее будет совершенно непонятно, но люди, слушавшие предыдущие доклады Алексея, получат настоящий кайф.




2 место


Николай Алименков, XP Injection — Нужен ли нам JMS в мире современных Java-технологий?
Средняя оценка: 4.63



Доклад о границах применения JMS и его месте в современном мире. Технология JMS — довольно старая, еще из девяностых. JMS 1.1, которая используется в большинстве современных продакшенов, была написана аж 15 лет назад.



В докладе разобраны как некоторые фундаментальные проблемы JMS, так и особенности (в основном, неприятные) различных его реализаций. Николай последовательно излагает свою позицию о том, что JMS не нужен. В докладе упоминается целый зоопарк современных технологий — Hazelcast, Erlang, ZooKeeper, Redis, RabbitMQ и Apache Kafka. В общем, любителям распределенных систем посвящается.




1 место


Алексей Шипилёв, Oracle — Катехизис java.lang.String
Средняя оценка: 4.74



Все мы давно воспринимаем класс String как что-то родное и простое. Вот же он же — теплый, ламповый. Однако все не так просто. Это можно было уже понять по докладу Алексея об изменениях String в JDK9, о котором я говорил выше. Но и в текущих версиях Java стринги таят множество сюрпризов.



Во что можно компилировать конкатенацию? Что делать с коллизиями в String.hashCode()? Куда исчезли внутренние поля count и offset, а главное, зачем они исчезли? Чем интернирование строк отличается от дедупликации? Как JVM ускоряет метод equals для длинных строк? В общем, много полезного и неочевидного.




А что на JPoint 2016?

Нас часто ругают, мол, «у вас из года в год одни и те же докладчики». Ну а куда ж девать этих красавцев-то? На мой личный взгляд, то, что лучшие докладчики приезжают к нам из года в год, делает конференцию только сильнее. И я огромной радостью хочу отметить, что все эти парни, многие из которых давно не живут в России, несмотря на собственную загруженность, несмотря на долгие перелеты, несмотря на курс доллара, в конце концов, выступят на JPoint 2016.




Ссылки

Как всегда, в конце поста — реклама и полезняшки. Отдельно хочу обратить внимание на то, что у каждого из вас еще есть возможность стать докладчиком. Считаете, что на JPoint 2016 какая-то важная тема не раскрыта? Пишите в комментариях, а лучше — сделайте доклад на эту тему!

Комментарии (17)


  1. moscas
    27.01.2016 11:45
    +1

    «Несмотря на курс доллара»?


    1. 23derevo
      27.01.2016 12:00
      +3

      Надо признать, что привозить спикеров нынче довольно дорого, особенно из Штатов.


      1. moscas
        27.01.2016 14:29
        +2

        Получается, что через запятую вы перечислили и препятствия для самих спикеров, и препятствия для себя. Это путает :)


        1. 23derevo
          27.01.2016 15:15
          +2

          Из Штатов лететь не только дорого, но и долго. Вите Гамову из Hazelcast лететь из Нью-Йорка — часов 10 прямой рейс. А Баруху Садогурскому лететь с пересадкой из Сан-Франциско. Там вообще часов 18 получается. Это уже сродни подвигу.


          1. sidristij
            27.01.2016 17:05
            +1

            а потом еще и обратно столько же через сутки =)


            1. 23derevo
              27.01.2016 18:33
              +4

              именно. Поэтому для меня каждый раз большая радость, когда парни соглашаются прилететь.


              1. jbaruch
                28.01.2016 18:13
                +4

                Куда же мы денемся?! Это же лучшие конференции в году!


  1. dbelob
    28.01.2016 00:50
    +2

    Спасибо за обзор докладов TOP-5!
    Алексей, предлагали ли слушателям Joker 2015 University Day оценить эти доклады? Есть ли где-то результаты голосования?


    1. 23derevo
      28.01.2016 08:19
      +2

      Есть, да. Я тебе в личку скинул. А на хабре я про них напишу в сентябре — ближе к следующему студенческому дню :)


      1. dbelob
        28.01.2016 11:00
        +1

        Спасибо! Даже есть статистика о количестве посещений, ух…

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


        1. lany
          29.01.2016 10:27
          +1

          Ты ещё мой посмотреть собирался. Собрался? :D


          1. dbelob
            29.01.2016 11:12

            Конечно. Я бы и так посмотрел его, вне зависимости, от кого я получил бы инвайт :)

            Пока успел посмотреть (приведено в порядке просмотра)


            Точно посмотрю How «final» is final? Симониса.

            Правда, это всё доклады с Joker 2015 (пост про JPoint 2015).


          1. dbelob
            30.01.2016 16:59
            +1

            Самого какие доклады на JPoint 2015 и Joker 2015 заинтересовали и какие из них удалось посмотреть очно или в записи? Интересно сравнить предпочтения.

            Как-то статус докладчика Joker 2015 повлиял на выбор просмотренных докладов?


            1. lany
              30.01.2016 17:08
              +3

              По JPoint-2015:

              Владимир Ситников, NetCracker — Выражаемся регулярно: смотрел в записи, хороший доклад, я ожидал меньшего.
              Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками: смотрел вживую. Это огонь! Андрей крут!
              Volker Simonis, SAP — Packed Objects, Object Layout & Value Types — a Survey: всё ещё собираюсь посмотреть
              Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM: смотрел вживую. Интересно. Глеб — хороший докладчик, весёлый. Жаль, коротковато у него вышло.
              Барух Садогурский — Как писать асинхронные многопоточные HTTP-приложения: начинал смотреть в записи, бросил на полпути.
              Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!: смотрел вживую, в принципе почти всё знал, но сам доклад неплохой.
              Дмитрий Чуйко, Oracle — CompletableFuture уже здесь: смотрел вживую. Честно говоря, довольно уныло.
              Алексей Шипилёв, Oracle — Сжимай меня полностью: смотрел в записи, тут нечего комментировать, Шипилёв — звезда.
              Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы: был вживую, неплохо поболтали (стол тащемта некруглый был)
              Алексей Шипилёв, Oracle — Катехизис java.lang.String: смотрел вживую, хотя до этого видел в записи с предыдущего джокера. Опять нечего комментировать.
              Сергей Куксенко, Oracle — Железные счётчики на страже производительности: смотрел в записи, крутой системный доклад. Пожалел, что не смотрел вживую.

              Кажется, всё.


              1. dbelob
                31.01.2016 23:58

                Из перечисленного не смотрел Владимира Ситникова, Дмитрия Чуйко и круглый стол. Про регулярные выражения, раз рекомендуешь, беру на заметку.

                Доклад Сергея Куксенко смотрел на Joker 2014. Можно предположить, конечно, что в этот раз он что-то изменил и дополнил.

                Про Баруха позволю себе не согласиться. Мне кажется, я очно или в записи смотрел все его доклады на русском языке (на JavaOne Russia, JPoint, Joker и JUG.ru). Чувствуется, что у человека глубокие знания и ему действительно интересно то, о чём рассказывает (особенно доклады, связанные с Groovy). Т.е., если не смог досмотреть этот доклад, можно посмотреть (в т.ч. очно в апреле) какой-нибудь его Groovy-доклад (т.е. на абсолютно его тему). Кстати, есть относительно свежий доклад (я пока не смотрел) на английском его и Виктора Гамова со SPINGONE2GX The Epic Groovy Puzzlers.


            1. lany
              30.01.2016 17:22
              +2

              По Joker-2015:

              Martin Thompson — Adventures with concurrent programming in Java: A quest for predictable latency // смотрел вживую. Интересно.
              Иван Крылов, Azul — Systems Чего ждать от Java 9? // смотрел вживую. Неплохо, но можно лучше. Сильно много про модули было, а в Java 9 много и другого интересного.
              Владимир Ситников, NetCracker — Разбор сложных случаев OutOfMemoryError // смотрел в записи. Хороший доклад. Кое-что интересное узнал.
              Андрей Паньгин, Одноклассники — Нужен ли нам Unsafe в Java? // смотрел вживую. Весьма интересно, хотя Андрей волновался почему-то.
              Виктор Полищук, Infopulse — Legacy: как победить в гонке // смотрел в записи. В принципе весело, но с познавательной точки зрения мало полезного. Как шоу — пойдёт.
              Josh Long, Pivotal — The Macro of Microservices // смотрел вживую, не оценил.
              Volker Simonis, SAP — How «final» is final? // смотрел в записи, неплохой доклад. Коротковат, но тема раскрыта. Шипилёв на эту тему что-нибудь должен добавить на JPoint-2016, кстати (спойлеры!)
              Тагир Валеев — Что же мы измеряем? // я был прекрасен!!!
              Никита Липский, Excelsior — Клиентская Java вне браузера: делаем нативные клиенты на Java // смотрел вживую, Никита молодец, интересно и познавательно было.
              Dmytro Vyazelenko, Sowatec AG — Using Java Microbenchmark Harness (JMH) in a real world project // смотрел вживую. Более-менее.
              Алексей Шипилёв, Oracle — The Lord of the Strings: Two Scours // смотрел вживую, комментировать нечего.
              Venkat Subramaniam — Get Past the Syntax, the Real Scare's in the Semantics // смотрел вживую, уржался. Самый крутой из бесполезных докладов.
              Nicolas Frankel, Evgeny Mandrikov — Improve Testing Code Quality with Mutation Testing // не смотрел, но пролистал слайды перед конференцией. PITest никогда раньше не использовал, а тут заценил, запускаю для своего проекта иногда. Так что доклад оказался полезным :)
              Александр Маторин, Сбербанк-Технологии — Рефакторинг в функциональном стиле // смотрел, неплохой доклад, хотя и не звёздный.
              Николай Алименков — Современный взгляд на реализацию классических дизайн-паттернов в Java // смотрел в записи, кое-что полезное вынес, хотя было и много воды.
              Ted Neward — Iconoclasm // смотрел вживую. Сильно. Тэд бы отлично смотрелся лидером какой-нибудь секты, к нему бы народ валил толпами.

              Тоже вроде всё. Статус докладчика повлиял тем, что я не мог смотреть вживую доклады, которые идут параллельно с моим. Ну и хотелось смежные темы глянуть, чтобы если что не повторяться или вовремя сослаться на других в своём докладе. На Dmytro Vyazelenko отчасти поэтому пошёл.


              1. dbelob
                01.02.2016 00:34

                Из перечисленных смотрел примерно половину. Про Unsafe Андрея Паньгина интересно было бы послушать, как дополнение к Unsafe в Java 9: халява кончилась?. How «final» is final? подтвердил моё желание посмотреть.

                Тагир Валеев — Что же мы измеряем? // я был прекрасен!!!

                Да, соглаcен. Технически весьма впечатляющий доклад, я прямо сейчас даже слайды дополнительно полистал (наличие комментариев под слайдами очень помогает). Синий пони тоже прекрасен :)

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