Java Day 2013: под знаком эволюции

Оставить комментарий
Java Day 2013: под знаком эволюции

Серое пасмурное утро и специфическое расположение места проведения (прямо под Дворцом Республики) крупнейшего события в мире минских джаверов придали  Java Day 2013 некую «подпольную» атмосферу. И хоть сам воздух клуба «Центр», выбранного для проведения мероприятия, навевал мысли о женщинах и шестах, участникам удалось получить удовольствие совсем иного толка — интеллектуального. Организаторы прошедшего 23 мая Java Day 2013 — портал dev.by и компания Oracle, также поддержку оказали компании Oxagile, NastyCreatures и BelPrime Solutions. Большая часть докладчиков была представлена именно от питерского подразделения компании Oracle, присутствовали также докладчики от компаний Odnoklassniki.ru, JetBrains и Nasty Creatures.

О работе Одноклассников, лямбдах, новом языке, звездных войнах и бесплатном пиве – под катом

Конференция началась приветственным словом одного из организаторов, Яны Потеевой, которая порадовалась за белорусских программистов, имеющих сегодня возможность получить информацию из первоисточника любого крупного события в Java — компании Oracle. Также поприветствовал участников Александр Лютаревич, руководитель компании Nasty Creatures, генеральный партнер мероприятия.

Первым представил свой доклад Андрей Паньгин из Одноклассников, который поделился подробностями о внутренних «винтиках» известной социальной сети.

Только обработкой того, кто у кого в друзьях, в Одноклассниках занимается кластер из нескольких сотен машин, а связь с остальными серверами происходит при помощи удаленного вызова процедур.

В своем докладе Андрей акцентировал внимание на проблемы и преимущества при использовании внутренних средств Java и сторонних библиотек. Для нужд высоконагруженных серверов все они недостаточно подходили, поэтому в Одноклассниках было принято решение вручную написать свои реализации сокетов, сериализации/десериализации, использовать sun.misc.Unsafe и прибегнуть к другим хитростям. В результате этого, пояснил Андрей, трафик снизился на 50%, а время задержки уменьшилось на 20%. Порадовало, что практически все наработки компании выложены в открытый доступ, вот здесь.

Следующим было выступление представителя компании Oracle Александра Белокрылова. 

Он «прошелся» в общих чертах по будущему Java. Кратко рассказав про вынужденную задержку выпуска Java 8 из-за найденных проблем с безопасностью, Александр бодро продолжил про непосредственные изменения в языке и модели разработки. В частности, в 8—9 версии обещают лучшую поддержку native кода, GPU, а также возможность выбора размера JRE/JDK за счет отказа от части библиотеки. В минимальной конфигурации виртуальную машину обещают сделать размером около 10 Мб. Также в Oracle сейчас уделяют особое внимание открытой модели разработки языка Java и призывают сообщество участвовать в ней.

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

Следующим выступал программист из Oracle — Дмитрий Козорез.

Доклад был посвящен платформе JavaFX, которая будет включена в состав Java 8. JavaFX дает возможность декларативного написания интерфейса на Java при помощи языка FXML для конструкции и задания местоположения компонентов, CSS — для определения их представления и встроенной поддержки локализации при помощи properties-файлов. Дополнительным нововведением является визуальный конструктор интерфейса SceneBuilder. С этой программой при работе на Java наконец-то появляется возможность простого и гибкого способа создания интерфейса — разрабатывать их теперь будет «проще некуда». Также Дмитрий рассказал про еще одну сопутствующую разработку — FX Packager, которая позволяет паковать приложения на Java в исполняемый файл или сразу в установщик, поддерживая при этом основные платформы — Windows, Mac, Linux (deb, rpm).

Докладчиков из России «разбавил» минчанин Павел Нестеренко от Nasty Creatures, который коснулся темы использования Java на серверах в связке с JavaScript’ом в браузере. Доклад по большей части затрагивал клиентскую часть в виде JavaScript’а и HTML5, а на собственно Java-часть, видимо, не хватило времени, так как график конференции поджимал. Что ж, может быть, кому-нибудь и пригодится.

После еще одной кофе-паузы Дмитрий Козорез принялся за свой второй доклад, пожалуй, самый интересный на конференции — лямбды и другие грядущие изменения самого языка в Java 8. Эти фичи должны были войти еще в Java 7, но потом в Oracle передумали и отложили их на следующую версию.

Предваряли доклад предостережение о возможной плавке программерских мозгов во время доклада, а также предупреждение о предстоящем «потоке сознания». После этого Дмитрий бодро принялся за дело.

Кратко пояснив про замыкания, он приступил к еще одной новой фиче Java 8: методы по умолчанию в интерфейсах. Методы по умолчанию, по сути, создают в Java возможность множественного наследования, которым раньше Java-разработчиков интенсивно пугали. Но теперь благодаря коротким трем правилам это становится достаточно просто:

— классы важнее;

— иерархия наследования следует вторым пунктом;

— если же ничего не подходит, то вам следует самому переопределить метод.

Из переопределенного метода в классе можно вызвать конкретный метод из интерфейса с помощью еще одного расширения языка — указывать super для конкретного интерфейса/класса (MyInterface.super.validate(), например).

Далее Дмитрий более подробно пояснил, что же приобрели разработчики. Больше не надо писать свой компоратор на каждый чих, достаточно просто передать в функцию comparing замыкание, по которому и будет проводиться сравнение. Нет необходимости и городить анонимные классы для ActionListener’ов — с помощью замыканий это происходит на порядок элегантнее. А итеративный обход коллекций пишется в одну команду, да к тому же можно воспользоваться встроенной поддержкой распараллеливания, если потребуется.

Цель всех этих нововведений одна: эволюция интерфейсов в Java, теперь они становятся более гибкими и соответствующими времени. Доклад Дмитрия был щедро вознагражден бурными аплодисментами слушателей.

Следующим взял слово Артур Пилипенко из Oracle, который рассказал про Java ME. В связи с тем, что сейчас к интернету подключают все больше и больше бытовых устройств, в Oracle сейчас нацелились на рынок встраиваемой аппаратуры. Пока что список поддерживаемых микроконтроллеров не очень велик, но всё впереди. Зато по требованиям Java ME требуется совсем немного: в минимальной конфигурации 128 Кб памяти. К тому же Java ME будет выпускаться в различных изданиях, поскольку рынок встраиваемых систем слишком широк, чтобы покрыть всё одной платформой.

Важным в данной ситуации является тот факт, что код под более «юные» версии должен успешно компилироваться под «старшими», и сейчас в Oracle работают над глобальными изменениями в Java ME. В дополнение к этому будет переход на единую дату выпуска новых версий Java под все платформы. Первым шагом станет выпуск Java ME 8 одновременно с Java SE 8.

Тем временем на сцене происходила магия микроконтроллеров: игрушечная машинка на Java ездила сама по себе, не падая со стола и не врезаясь в ноутбук («Ой, врезалась!.. Но не должна была!» — успокоили разработчики :) ). Присоединившийся к коллеге Александр Белокрылов в прямом смысле этого слова на коленке написал код для управления микроконтроллером, выполняющего простую задачу — мигание лампочки с интервалом в одну секунду.

Последним был доклад про Kotlin от Евгения Геращенко из JetBrains.

Прежде всего Евгений пояснил, что Kotlin — это не остров, как и Java, а язык такой, причем не простой, а с компиляцией в байт-код под JVM. Основной же потребностью в создании нового языка докладчик назвал то, что из-за необходимости соблюдения обратной совместимости в Java вынуждены отказываться от многих нововведений, в то время как в JetBrains уже давно сами подошли к созданию своего языка. К тому же в компании накоплен опыт в виде создания IDE для семи языков программирования, которые признаны лучшими в своем классе.

Имеющиеся же языки под JVM не устроили ребят из JetBrains по различным причинам: Groovy с динамической типизацией, что затрудняет создание IDE под него, Scala слишком сложен, что также затрудняет создание IDE. В общем, парни решили, что в двадцать первом веке следует делать ставку на среду разработки и удобство работы в ней.

Но одной средой не обойтись, нужен и язык, вот в Kotlin'e все и стремится к гибкости и лаконичности. Хотите динамическое количество параметров в метод? Пожалуйста, можете задать для параметров значения по умолчанию, а потом передавать конкретные параметры, указывая их имена перед значением. Надо сгенерировать equals, hashcode для вашего класса? Добавьте перед ключевым словом class параметр data и все необходимое сгенерируется само по себе. Необходим доступ к приватным полям? Также можно сделать еще на этапе объявления поля.

Несмотря на все обозначенные плюсы, новый язык оставил весьма спорные впечатления у слушателей. С одной стороны — краткий, простой и строгий, а с другой — на некоторые вещи из зала следовала явно негативная реакция: добавление публичных методов в класс из другого класса, например.

Кроме этого, Евгения несколько раз поправляли участники, что также оставило неприятный осадок: в первый раз он продемонстрировал неправильный код лямбд для Java 8, уже показывавшихся на конференции. Во второй раз он показал в Kotlin'e немного модифицированный тернарный оператор и заявил, что в Java придется писать полную if-else конструкцию, забыв про существование в Java того же самого тернарного оператора, на что ему сразу и указали.

В любом случае больше языков — больше возможностей, так что JetBrains остается только пожелать удачи в их деле, и, может быть, мы когда-нибудь увидим, как на Kotlin'e будет создаваться программное обеспечение будущего. Язык, кстати, открыт для всех желающих принять участие в разработке.

Закрыл конференцию Виктор Хаменок, BelPrime Solutions, который вкратце рассказал историю своей компании,

а потом созвал всех к столам, где уже все было готово к Star Wars afterparty: стояло пиво и ожидали специальные гости. Дарт Вейдер в компании принцессы, солдата-клона и нескольких инопланетных существ.

В общем, конференция прошла успешно: публика пришла разношерстная, вопросы задавались интересные и неожиданные, а парни из Oracle смущались при упоминании Android. Хоть организаторы немножко и сетовали на низкую активность белорусской группы пользователей Java, но данное событие хорошо показывает, что интерес к Java в Минске есть, были бы желающие заняться организацией и докладами.

Ну что, есть желающие?

Фото: Андрей Давыдчик

Фотографии с Java Day

Видео докладов

 

Подписывайтесь на «Что к чему» —
анамнез и главные симптомы беларуского ИТ.
Цифры, графика, ничего лишнего. Выходит раз в 2 недели.
Спасибо! На указанный адрес отправлено письмо для подтверждения подписки.
Читайте также
Microsoft запустила обучающий сайт по Java
Microsoft запустила обучающий сайт по Java
Microsoft запустила обучающий сайт по Java
Oracle собрала досье на 5 млрд людей и делает на них миллиарды долларов. Получила иск
Oracle собрала досье на 5 млрд людей и делает на них миллиарды долларов. Получила иск
Oracle собрала досье на 5 млрд людей и делает на них миллиарды долларов. Получила иск
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз
Как оплачиваются самые популярные языки GitHub и какой прогноз

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.