Два дня назад на конференции в Нидерландах я имел удовольствие поговорить с Брайаном Гетцем, который выступал с докладами о будущем Java, Project Coin, параллелизме, Fork-Joins и лямбда-выражениях.
Я задал ему вопросы о поглощении Sun компанией Oracle, мобильной Java и о том, какое давление в прессе оказывалось на Oracle в последнее время.
Ниже приводится краткое изложение того, что я узнал в этот интересный день.
Для тех, кто не в курсе: Брайан Гетц — старший архитектор языка Java в Oracle, работающий над разработкой языка и платформы Java. В последние годы особого прогресса не было из-за того, что Sun практически выбыла из «игры», но с поглощением Oracle появились серьёзные перспективы и разработаны четкие планы выпуска (дорожная карта).
Начнем с того, что новая версия Java будет разделена на две версии: Java 7 и Java 8. Java 7 будет состоять из множества вещей, которые «по большей части уже сделаны», а Java 8 будет включать в себя «вещи, которые еще не реализованы».
над этим работают».
серьезно работать.
" Итак, план развития следующий: Ява 7: InvokeDynamic Монета проекта Обновление Архитектура ClassLoader Метод закрытия URLClassLoader Обновление параллелизма и коллекций (включая Форк-Джойн ) Юникод 6.0 Локальные улучшения НИО 2 ТЛС 1.2 ЕСС JDBC 4.1 Полупрозрачные и фигурные окна Смешивание тяжелых/легких компонентов Качать: Нимб & JLayer Обновление стека XML (JAXP, JAXB и JAX-WS) Ява 8: Модуляризация JVM Проект Лямбда Аннотации к типам Java Монета проекта, часть 2 Качаем JDatePicker Примерные сроки выхода: Java 7 — где-то середина 2011 года; Java 8 — где-то в 2012 году.
В списке отсутствует одна важная вещь — мобильная Java. На мой вопрос о сложности разработки на Java (и запуска Java-приложений) для смартфонов и отсутствии единой платформы Брайан ответил, что, несмотря на развитие технологий, самые дешевые телефоны до сих пор не поддаются разгону, что затрудняет создание единая платформа Java для настольных компьютеров и мобильных устройств.
В идеале между Java SE и Java ME не должно быть разницы, они должны быть одной и той же платформой, а запуск приложений на мобильных устройствах должен быть таким же прозрачным, как и на десктопах (например, Java Web Start).
У Oracle пока нет конкретных планов, поэтому Брайан мог сказать мне только: «Они над этим работают».
На самом деле это утверждение не так негативно, как может показаться на первый взгляд. Брайан объяснил, что разница между тем, как Oracle распределяет информацию, и тем, как это делает Sun, значительна.
Итак, Сан любил давать много обещаний, и большинство из этих обещаний так и не были выполнены.
Oracle не делает никаких заявлений о вещах, которые еще не заявлены в официальных планах.
У Oracle есть много очень крупных клиентов, которые принимают решения на основе общедоступной информации, поступающей от Oracle, поэтому они чрезвычайно осторожны в своих высказываниях.
(Обновление): Брайан прислал мне электронное письмо, в котором объяснил, что все мобильные возможности включены в совершенно другой план выпуска - для Java ME. Это означает, что Oracle, по крайней мере на данный момент, не думает об объединении планов выпуска SE и ME. Я считаю это обломом: Sun сначала говорила об консолидации платформ (хотя это опять-таки может быть одним из таких обещаний); и я сам считаю, что унификация платформ важна, поскольку в наше время мобильные устройства и десктопы становятся все ближе.
Если не будет прогресса в решении этого вопроса, то под угрозой окажется один из главных принципов – «напиши один раз, беги везде».
Так что, надеюсь, у Oracle есть мысли по этому поводу, даже если они не расскажут об этом общественности.
(/обновлять).
Брайан также пошутил по поводу старой истории о маленьком ангеле и дьяволе на плечах, которая появляется в фильмах.
В Oracle ситуация другая — у вас на одном плече сидит маленький ангел, а на другом — маленький юрист. Однако, кроме шуток – Брайан заявил, что был приятно удивлен качеством менеджмента в Oracle. Он думал, что менеджеры Oracle — это просто очень умные люди, которые действительно знают, как управлять компанией.
На самом деле разницы между культурами не так уж и много, как можно подумать.
Они хорошо относятся к своим сотрудникам, и впервые за N лет у Брайана действительно был бюджет, чтобы нанять талантливых специалистов.
Когда его спросили о давлении на Oracle, Брайан объяснил мне, что суть в том, что Oracle просто мало что сообщает (если вообще сообщает) средствам массовой информации.
Пресс-релизы тщательно рассматриваются.
Поэтому во многих случаях (например, отказ Apple от JVM) СМИ предоставляют только одну точку зрения на вопрос, а Oracle на это не реагирует. Люди думают, что все плохо, добавьте к этому соответствующую репутацию Oracle как коммерческой компании и — вуаля — вот еще одна критическая статья на новостном сайте.
Брайан заверил меня, что Oracle действительно заинтересована в Java, но делает ставку на зарабатывание денег не в краткосрочной, а в долгосрочной перспективе, ориентируясь на будущее.
Ведь что может быть лучше для Oracle, чем Java, который, по сути, сейчас является одним из самых популярных языков программирования в мире? За многие годы достигнут первый серьезный прогресс.
В течение дня Брайан выступил с несколькими докладами о параллелизме, платформе Fork-Joun и, что мне показалось наиболее интересным, о проекте Lambda. Проект Lambda безупречен.
Лямбда-выражения «переводятся» в типы SAM. Тип SAM — это тип «Один абстрактный метод», то есть интерфейс с одним методом или абстрактный класс с одним абстрактным методом.
Тогда лямбда-выражения имеют тот же тип, что и SAM. Кроме того, лямбда-выражения можно использовать везде, где в настоящее время используются SAM, например, для ActionListener, Comparable, Cloneable и т. д., что делает все это совместимым с большей частью существующего API. Не буду вдаваться в подробности, тем более, что это займет много времени, и я не буду объяснять это так ясно, как это сделал бы Брайан, но не могу удержаться и не привести кусок кода:
Как видите, помимо лямбда-выражений, существует множество различных функций, которыми программист может воспользоваться для оптимального использования лямбда-выражений.//Old-style code: Collections.sort(people, new Comparator() { public int compare(Person x, Person y) { return x.getLastName().
compareTo(y.getLastName()); } }); //Lamda expressions & SAM-conversion: Collections.sort(people, #{ Person x, Person y -> x.getLastName().
compareTo(y.getLastName()) }); //Better Libraries: Collections.sortBy(people, #{ Person p -> p.getLastName() }); //Type Inference: Collections.sortBy(people, #{ p -> p.getLastName() }); //Method References: Collections.sortBy(people, #Person.getLastName); //Extension Methods: people.sortBy(#Person.getLastName);
Лямбда-выражения упростят программирование для многоядерных машин.
Фреймворк Fork-Join будет очень полезен в этом аспекте.
Когда я сказал, что конверсия ЗРК — отличная идея, Брайан тактично указал на Джошуа Блоха, который ее предложил.
Наконец, я спросил о Java на устройствах Apple, таких как iPhone и iPad. Ответ был столь же озадачивающим, сколь и обнадеживающим.
Он сказал, что Ларри и Стив — хорошие друзья.
Давай закончим здесь.
Один день с Брайаном Гетцем, и я должен вам сказать — сначала, когда я услышал о покупке Oracle Sun, я пришел в ужас, как и многие другие.
Большой плохой босс, которого волнуют только деньги, уничтожит Java. Но со временем, когда стали появляться официальные заявления и планы, я стал смотреть на вещи более позитивно.
Все еще настороженный, но менее предвзятый.
Затем, прочитав статьи о JavaOne, я начал думать, что поглощение Sun компанией Oracle даже пойдет на пользу Java. И наконец, после конференции с Брайаном, я в этом уверен.
Это будет полезно для Java. Наконец-то у меня появилась возможность поговорить с кем-то, кто действительно знает, что происходит, и теперь я абсолютно уверен, что Oracle постарается сохранить и повысить уровень платформы Java! Теги: #java #oracle #Sun #jdk #java 7 #java 8 #java
-
«Максималка» Провайдера — Рекламный Трюк
19 Oct, 24 -
Минусуем Хабракарма
19 Oct, 24 -
Что Происходит С Hevc (H265)
19 Oct, 24