Статьи

Отчет о поездке на JavaOne 2013

На прошлой неделе в Сан-Франциско было много разработчиков. Это было то время года снова: JavaOne 2013 состоялся. Тысячи разработчиков Java собрались 22-26 сентября, чтобы узнать что-то новое и познакомиться с новыми людьми.

Я начал посещать JavaOne в 2010 году, сразу после того, как Oracle перенял господство у Sun. В этом смысле мои последние четыре JavaOnes дали последовательный опыт. Не невероятно увлекательно, но много хорошего контента, когда вы достаточно внимательно посмотрите на огромный  каталог контента . Хорошо это или плохо — дело вкуса. У Sun слишком много обещаний и недопоставок, Oracle придерживается последовательного и зачастую консервативного мнения. По крайней мере, они доставляют, с отставанием графика месяцев, а не лет.

Объявления

Это может быть довольно коротко: в этом году не было больших анонсов на JavaOne. Все дело в консолидации прогресса, достигнутого за последние несколько лет. Поставка Java EE 7, JavaFX и в ближайшем будущем Java 8, безусловно, есть чем гордиться. Демо в техническом лейтмотиве было веселым и увлекательным. Тем не менее, изюминка отсутствовала, так сказать.

Место проведения

(Прямо перед основным докладом в Moscone)

На самом деле появилась одна новая информация: обновление проекта Avatar. Проект «Аватар» был первоначально анонсирован без каких-либо подробностей в 2011 году. В прошлом году стало ясно, что «Аватар» — это фреймворк JavaScript, облегчающий связывание браузера и бэкэнда Java EE. В этом году это наконец стало ощутимым. Это теперь с  открытым исходным кодом  на java.net. Никакой дальнейшей истории, вот и все. Честно говоря, похоже, что этот ребенок остался на пороге больницы. Кто позаботится об этом, и станет ли он когда-нибудь важным?

Наконец, хотя это и не было анонсом, было интересно отметить, что Oracle переключает внимание на Java на «Интернет вещей». Этот термин часто используется для объяснения их особого внимания к разработке встроенных Java. Циник может сказать, что это потому, что это единственная часть Java, которая традиционно хорошо монетизирована (с Java ME), поэтому имеет смысл обезопасить этот денежный поток на будущее. Независимо от мотивации, я рад видеть, что в картах есть унифицированная виртуальная машина для Java 8 для всех платформ.

Java 8

Java 8, и в особенности его лямбда, заняли центральное место. С датой GA, установленной на март 2014 года, сейчас самое время ознакомиться  с лямбда- датой  . Особенно приятно то, что библиотека коллекций  была обновлена  для поддержки более функционального стиля. Более того, потоки добавляются поверх улучшенной библиотеки коллекций, обеспечивая объединение потоков:

int sum = widgets.stream()
                      .filter(w -> w.getColor() == RED)
                      .mapToInt(w -> w.getWeight())
                      .sum(); 

В этом примере существует только один обход  widgets коллекции, потому что операции выполняются в  потоке . Слияние потоков означает, что реализация собирает все преобразования вплоть до терминальной операции (например  sum). Затем терминальная операция заставляет вычислять предыдущую цепочку выражений одним проходом по фактической базовой коллекции.

Сессии конференции

Как и следовало ожидать с огромным количеством параллельных дорожек, качество сессий было разным. Я присутствовал на некоторых отличных сессиях. Особенно интересным было выступление одного из основателей Jetty. Jetty 9.1  расширяет границы производительности для веб-серверов на базе Java благодаря поддержке  SPDY и  SPDY-Push  . Все это поддерживается поверх спецификации Servlet. Вам нужно только настроить  правильные конечные точки.

Один из других замечательных разговоров, которые я видел, был Бен Кристенсен из Netflix. Он показал, как RxJava обеспечивает  функциональное реактивное программирование  на JVM. RxJava портирует  Реактивные Расширения  из мира .Net в мир JVM. Слайды  здесь .

Еще один крутой разговор был парнями из Typesafe о  SLICK  (Scala Language-Integrated Connection Kit.) Короче говоря, SLICK отображает стандартные методы сбора и анализа Scala в код доступа к базе данных безопасным для типов образом. Вроде того, что Linq-to-SQL делает для .Net, но немного амбициознее. Определенно, что нужно учитывать при доступе к реляционным базам данных из кода Scala, не полагаясь на более традиционный подход ORM, основанный на Java. Слайды можно найти  здесь .

Разговор на JavaOne

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

Мой первый доклад был «Наука о данных с R для разработчиков Java» во вторник. Было забавно представить совершенно новый язык группе разработчиков Java. Глубокое понимание данных, которые хранятся в вашем приложении, становится все более важным. Основной вывод разговора — то, что изучение R дает вам мощный инструмент для проведения  исследовательского анализа данных . Вот слайды:

В среду я представил «Модульный JavaScript» моему коллеге  Полу Баккеру . Модульное развитие — это то, что мы ценим. Для больших кодовых баз Java мы используем модульные конструкции  поверх OSGi,  чтобы также обеспечить модульность во время выполнения. На земле JavaScript кодовые базы становятся все больше и больше. Следовательно, вам также нужен принципиальный подход к модульной разработке. В этом выступлении мы представим примитивы модульности в JavaScript и сравним несколько систем модулей для JavaScript.

Во время обеих бесед было много взаимодействия с аудиторией, что всегда является обнадеживающим признаком. В целом, JavaOne 2013 был отличным опытом. Надеюсь увидеть вас в 2014 году!