воскресенье, 28 октября 2012 г.

Java Day Kiev 2012

Побывал сегодня на Java Day Kiev и мне очень понравилось. Хотя я попал только на вторую половину дня (с 2 часов), не думаю что пропустил очень много.

Пришел я, собственно, на доклад вот этого товарища: Jacek Laskowski который читал про "A whirlwind tour of functional programming in Clojure". К сожалению, времени у него было мало (а я еще и опоздал) и потому он успел рассказать не очень много. Такой доклад, что-то вроде "Clojure для самых маленьких". У него и слайдов-то было немного, в основном он сидел в уютненьком терминале с запущенной Clojure-консолью и показывал какие классные штуки можно вытворять, если все с чем вы работаете это функции. Оригинальной показалась вот какая мысль - он рекомендует использовать Clojure как нечто вроде java-консоли. В качестве примера он двумя строками создал JFrame и потом немного поигрался с его настройками. и все это на лету, без всяческих перекомпиляций и созданий проектов. То есть так очень удобно играться с любым API - результат видишь незамедлительно. Мне понравилось.



Следующим был доклад ученого мужа из Oracle. Звали его Simon Ritter, а доклад назывался "Project Lambda: Simplifying Concurrent Programming in Java SE 8". Наконец узнал про то, что же это вообще такое, эти ваши лямбды. Основная часть его доклада была про то, что в Java 8 ко всем стандартным коллекциям добавят методы filter, map и reduce, которые будут параллелится просто божественно. Вообще к вопросу о лямбдах подошли именно со стороны многопоточности. Он условно разделяет развитие многопоточности в Java на несколько этапов: 1.4 - появились потоки, но с ними можно только wait, notify, interrupt, synchronized + мютекс на каждый объект и т.д. Его слова при этот период примерно такие: "уже можно было работать с потоками, но на очень низком уровне. Уровень настолько низкий, что правильно (читай "безопасно") организовать многопоточность было очень сложно". Лично я работаю с потоками именно на этом уровне. Да и подавляющее большинство моих знакомых тоже. Нужно пинать себя и знакомится с современными средствами. Тем более что в 1.5 (следующий этап) ввели целый java.util.concurrent, в котором куча плюшек, облегчающих работу с потоками (лично я из них только ReentrantLock в реальной жизни использовал). Но плюшек не достаточно, функциональщина ушла в этом плане настолько далеко, что нужно хоть как-то догонять. Хотя бы сделать удобную поддержку filter-map-reduce в коллекциях. Ну а вот тут пригождаются лябды, интерфейсы с default фунциями и прочие сладости. Про все это хорошо написано на Хабре. Это расчудесно, кроме одного НО: Java 8, в лучшем случае, релизнится через год.

Следующий доклад был от мужика из EPAM'а, он рассказывал про OSGi. Достаточно бестолково рассказывал, но вообще тема интересная и актуальная. Нужно мне больше по конференциям ходить, поскольку я слышал хороших русскоязычных докладчиков очень мало. Прямо на пальцах пересчитать можно (одной руки и без всяких хаков с двоичкой). Это я здесь не про содержимое доклада, а про форму его подачи.

Последним докладом шёл доклад чувака из Oracle, но все вокруг меня убеждали в том, что он уныл чуть более чем полностью и я забил его слушать. А, скорее всего, зря, поскольку он рассказывал про профили и модульность, которые появятся в Java 8-9.

В общем и целом было очень познавательно и классно. Спасибо организаторам и счастливому случаю, по которому я вовремя на эту конференцию зарегистрировался (:

Комментариев нет: