На JavaOne 2011 в Москве десантировалась ровно половина Java-команды нашей фирмы - 4 человека :). На конференции параллельно работало 8 залов (шесть на лекции и два на семинары). Естественно, посетить все было невозможно, поэтому ниже впечатления о тех, где были мы:
- Детальный обзор инструментов платформы JavaEE 6. Первый доклад, на который мы успели после поезда. Возможно, мы ещё не успели влиться в струю, но по общему мнению, доклад свёлся к сравнению NetBeans, Eclipse и IDEA на примере какой-то частной задачи. Единственное, что можно было вынести – с этой задачей NetBeans 7 RC справляется лучше. Неудивительно, учитывая, что докладчиком был архитектор этой IDE :)
- Диагностирование проблем и настройка GC в HotSpot JVM под нужды конкретного Java приложения. Одни из самых сильных докладчиков на конференции – специалисты по перфомансу из питерского офиса Оракла. У них было несколько докладов, и все довольно интересные. На этом рассказывалось о том, как решать проблемы неэффективной работы с памятью в Java-приложениях. Подробно пересказывать сложно, стоит дождаться слайдов.
- Language Oriented Programming в действии. Как мы это делаем в JetBrains. ИМХО, один из лучших докладов. Довольно харизматичный разработчик из JetBrains рассказал о подходе, который они используют в одном из своих продуктов – баг-трекере YouTrack. Суть заключается в создании узкоспециализированных языков для каждой конкретной задачи внутри одного приложения (например, работа с БД, inversion of control и т.д.) Похоже на использование фреймворков, но при таком подходе получается, что сложнее написать неправильный код, чем при использовании универсальных языков. Для удобного создания языков и разработки на них используется Meta-Programming System: http://www.jetbrains.com/mps/ - IDE на платформе IntelliJIDEA.
- Искусное тестирование производительности. О том, как правильно мерять производительность и какие ошибки чаще всего допускают в этом деле. Тоже стоит дождаться слайдов, там довольно много было.
- Project Coin: незначительные, но полезные изменения языка в JDK. Про изменения в jdk 7. Самой интересной частью был рассказ о том, что может войти в jdk 8 :) Например, коллекции можно будет записывать литералами вроде List list = {1, 2, 3} или Map map = {“a”: 1, “b”: 2}. Про jdk 7 рассказывать особо нечего, там 5 минорных изменений которые много раз уже обсуждались в Сети.
- Servlet 3.0: Расширяемые, асинхронные и простые в использовании. Вот тут добавили много интересного, например фрагментирование web.xml, ресурсы в jar-файлах, аннотации, улучшенное асинхронное взаимодействие и т.д. Другое дело, что напрямую со всем этим великолепием будут работать в основном только разработчики фреймворков :(
- Эффективное использование CDI (Contexts and Dependency Injection) в экосистеме Java EE. Вообще, мы хотели пойти на доклад «Модель памяти Java в деталях», но просто не влезли в переполненный зал, поэтому пошли сюда. Трудно сказать что-то вразумительное, потому что с этим фреймворком мы до этого не работали. Очень похоже на Guice :)
- Улучшенный Java API для RESTful Web Services (JAX-RS). Выглядит очень мощно и в то же время очень просто и немногословно, как для джавы. Основы (для тех кто до этого JAX-RS в глаза не видел) докладчик объяснил одним слайдом. Потом подробно рассказывал про тонкости вроде обработки исключений и пр. Если интересно, стоит посмотреть слайды.
- Java Persistence API 2.0: Обзор. Двойственное впечатление. С одной стороны, некоторые вещи очень понравились – например, CriteriaQuery API, которая позволяет динамически формировать сложные запрос по критериям. С другой стороны, некоторые вещи не понравились совсем – например, MetaClasses API, классы, которые нужно генерировать отдельно (с помощью консоли, анта, мавена и т.д.). В конце концов, докладчик сам сказал, что, мол, если вы хотите оставаться fast and agile, то использовать JPA2.0 – не самая best idea.
Организационные моменты:
- Совершенно невразумительное питание. Вне кофе-брейков нельзя было даже кофе попить, в том числе и на обеде.
- Всем участникам подарили рюкзаки и футболки с логотипом конференции ^_^
- Вай-фай ловил только в одном месте - в зоне отдыха, где в перерывах было довольно людно.
- Некоторые интересные докладыпроходили в небольших залах, и порой нельзя было свободное кресло найти. В то же время Большой зал почти всё время был пуст на три четверти.
В общих чертах – не жалеем что съездили. Узнали много нового, рюкзачки получили, опять же :)
Слайды обещают выложить недели через 2 на сайте конференции: http://www.oracle.com/ru/javaonedevelop/index.html