Статьи

Отчет о JavaOne 2012, часть 1

DSCF3950

 

Конференция JavaOne 2012 была на прошлой неделе, когда я путешествую по Южной Калифорнии, кажется, что это случилось вчера. Сначала я пишу этот блог в Монтерей-Бей, а потом заканчиваю где-то недалеко от Пасо Роблс, возможно, в Лос-Анджелесе. Я должен сказать, что в этом году конференция JavaOne была взрывом, и не только потому, что я выступал три раза. Java продвинулась вперед, следуя слогану конференции 2011 года «Перемещение Java вперед» . В этом году на футболке было написано «Make The Future Java» .

 

DSCF3979
Это Эльбер, когда-то актер, креативный художник, скульптор, а также технолог из Бразилии. Он создал освещенную головку рыбы. Кстати, я не уверен, что это за рыба. Спроси Эльбера, когда увидишь его!

 

Сбор

Почему мы все приходим на JavaOne? Мы очень стараемся добраться сюда, потому что это конференция высшей лиги, на которой люди из четырех уголков Земли могут встретиться, обсудить последние тенденции, решить головные боли, прийти с новыми решениями, пообщаться с сообществом, поучиться друг у друга , пообщайтесь и, наконец, оцените точную современную технологию, стремительно циркулирующую вокруг виртуальной машины Java. Наиболее важными и очевидными причинами является то, что Oracle, управляющие Java, проводят эту мега-конференцию и базируются в Калифорнии, так что это их домашнее мероприятие. Если вы будете, это вероятно похоже на домашний матч . Я думаю, что многие люди забывают об этом последнем предложении.

 

DSCF3980
[L] Ван Рипер, Google и [R] Стивен Колебурн, OpenGamma, оба чемпионы по Java, беседуют между собой перед Стратегическим ключом. За ними сидят Андрес Икс-Чел Руис и Андрес Алмирай [R-to-L]

 

Я вышел на JavaOne, чтобы узнать, что произойдет с JavaFX с точки зрения личного интереса, а также узнать о корпоративной стороне Java , Java EE 7 . Я был приятно удивлен, увидев множество выступлений Scala в каталоге онлайн-контента, хотя я не посещал многие из них. Typesafe были показаны преимущественно.

Комплектация JavaFX JAR

Почему jfxrt.jar упакован как отдельный файл JRE, а не внутри rt.jar?
Ответ заключается в том, что JavaFX не является официальной частью стандарта Java SE 7. Единственный способ быть стандартным — предоставить сертификацию комитету Java SE. Таким образом, в будущем JavaFX должен быть отправлен Oracle в процесс сообщества Java как новый запрос спецификации Java , чтобы другие допустимые реализации Java SE, такие как IBM, OpenJDK и SAP, могли сделать свой выбор. Выберите включить JavaFX или нет.

JavaFX

История JavaFX продолжается. Для настольных сред и операционных систем JavaFX не является кроссплатформенным. JavaFX 2.2 работает на Windows, Mac OS X и Linux. Насколько мне известно, Oracle сдержал свое обещание сделать JavaFX жизнеспособным на настольном компьютере, теперь они также включают JavaFX с JDK и JRE для Java 7 Update 6 и выше.

Хасан Rivi, вице — президент Oracle, Enterprise Middleware Продукты и Java, объявила в лейтмотива , что JavaFX будет полностью открытым исходным кодом в конце года сказал 2012 Rivi, «На валютном фронте, на клиенте, опять — таки много Из новых возможностей в выпуске, мы действительно думаем, что это на данный момент, мы продолжаем процесс по открытому Sourcing FX. Мы закончим все компоненты FX к концу года. И мы очень хотели бы пригласить сообщество активно участвовать с нами в развитии FX » . В воскресенье основным докладом были обновления о продуктах Java SE, Java EE и Java ME,  вы можете посмотреть их здесь, Возможно, вы помните, что пару лет назад Стивен Чин изначально ходатайствовал о том, чтобы JavaFX был полностью открытым. По иронии судьбы, Стивен Чин, теперь посол JavaFX в Oracle, и его желание сбывается. Пакеты кода скоро появятся в проекте OpenJDK, посвященном JavaFX .

Другие люди ожидали, что JavaFX будет перенесен на Android или другие смартфоны, и поэтому выразили разочарование, что эта цель не была объявлена ​​на конференции. Oracle действительно сказала, что они уже продемонстрировали некоторые технические возможности запуска JavaFX на устройствах для важных корпораций в последнее время, однако освоение и выполнение были плохими. Есть надежда, что открытый исходный код JavaFX создаст дополнительный импульс для продвижения инфраструктуры и архитектуры на мобильные и встроенные устройства.

Лично я считаю, что мы близки к критическому повороту. Нам нужно всего одно жизнеспособное, увлекательное и креативное настольное приложение JavaFX, которое поделится нижеприведенным описанием, которое имеет x-фактор, с удивительным видением и было объединено с талантом и умением, используя лучшие шаблоны проектирования пользовательского интерфейса, что дает вескую причину , «Почему мы не портируем это существующее и превосходное приложение JavaFX и Java на планшетное устройство?».

Открытая исходная посылка JavaFX является многообещающей, поскольку она должна позволять третьим сторонам переходить к исходному коду и добавлять функции к платформе, с которой Oracle еще не определилась? (поддержка акселерометрии, магнитометрии, геолокации и фотоаппаратов. Думаю, было бы целесообразно сначала проверить, что Oracle еще не изобрел ни одно из этих колес для внутреннего использования? Однако история показала, что бизнес не предпочитает никого ждать, особенно когда они думают, что могут сделать деньги на идее, сделав это сначала.)

 

DSCF4001 Киоск каталога контента JavaFX Джаспера Поттса
Киоск, созданный Джаспером Поттсом для демонстрации работы JavaFX на встроенном устройстве. Приложение представляет собой каталог контента для всей конференции JavaOne.

 

DSCF4002
Встроенный вид сбоку консоли JavaFX Джаспера Потта

 

Oracle did announce JavaFX for Linux as a developer preview, JavaFX for Linux / Embedded ARM devices, and SceneBuilder version 1.1. Oracle is focused on their effort on embedded devices, which are always-on electronic kiosk, terminal, point-of-sole and monitoring domains. In fact, Oracle organised a parallel and separate conference called JavaOne Embedded, which ran on the Wednesday and Thursday, aimed for business managers and decision makers.

As if it to prove this point, Jasper Potts and Richard Bair, created four hand-made production kiosks, in a month long skunkworks and proof-of-concept project. The kiosks were displaying the entire JavaOne Content Catalogue as a JavaFX application running on Java SE Embedded on an embedded device. The LCD screens were multi-touch allowing the conference goers to log-in and plan their schedule touch UI. The kiosk were placed at certain points in the JavaOne complex, the Hilton, Parc 55 and Nikko hotels. As usual with embedded devices, the technical capabilities of the hardware was limited by the amount of available memory, the CPU speed, the number of cores, and the number of threads that could be run simultaneously. Jasper explained that there were even limits on the number of instructions that could be sent from the CPU to the GPU in order to maintain the illusion of performance through user responsiveness. Sending image buffer frames from CPU to GPU and back could be expensive if thought and effort are naively implemented. Porting JavaFX 2.2 to Java Embedded SE over the past months of was a humbling task, therefore it revealed many bugs and refactorings that were solved, which in turn benefitted to the JavaFX desktop product. This previous fact was revealed by Richard Bair in a hallway conversation. The penny should be dropping by now as you are reading this blog.

In case, you did know it already, JavaFX 2.2 has some great features in current edition. There is Canvas support. You can program graphics like HTML5, the Canvas API looks quite familiar. With Canvas in JavaFX, you get the ability to instantiate a writable image buffer with a fixed resolution associated with a Java 2D graphics context. Suddenly, you can develop interesting pixel rendering effects in, some might say, traditional computer graphic programming mode. There is also Pixel image buffer I/O support, where utility classes PixelReader and PixelWriter provide high performance access to reading and writing pixels.

JavaFX 2.2 already has JavaScript support, namely:

// Java
class DataSource {
	public List getCustomers();
}

// JavaScript
JSObject window = (JSObject)webEngine.executeScript("window")
window.setMember("ds", new DataSource() );

JavaFX will have amazing 3D capabilities. Attendees of the strategy keynote were treated to demonstration of a shipping container terminal system application, which was using an early alpha version of JavaFX 3D API. This was a demo from Navis Corporation [Arvinder Brar]  in collaboration Canoo [Dierk Koenig]. You can also watch this presentation yourself on line CON4853 – JavaFX for Business: Monitoring a Container Terminal. It would be appear the JavaFX 3D will ship with meshes, textures and of course polyhedra. You can also see Nandini Ramini in the Strategy Keynote. Canoo also announced an open source project about their interesting collaboration project Dolphin.

JavaFX 3D will have moving cameras, because they are now going to be treated as like javafx.scene.Node types. I can image translating and rotating a camera through 3D space, but scaling and shearing it. What the does mean? Scaling a camera could be zooming in and out , shrinking and enlarging the view pyramid. Shearing a camera in mathematic 3D transformation, I believe, would be just weird. Actually, I can imagine a sci-fi effect with lots of randomly placed stars [points] in 3D space. Yes I very am excited about the 3D possibilites for the next JavaFX version. I wonder personally, if I could simulate Hyperspace with it, but perhaps it involved non-affine transformations, a non-linear concept anyway ;-) .

The next version of JavaFX jumps from 3.0 to 8.0 in order to match the upcoming Java SE 8 release. I wholeheartedly agreed about this version jump so that matching the Java numbers, and also because the JavaFX library jar is bundled with the JDK. In the future, JavaFX will be itself a module in Java 9, which is expected to implement modularisation (Project Jigsaw).

JavaFX 8.0 will have really great rich text support. Richard Bair showed slides in one his JavaFX presentations about the TextPane and TextFlow controls. Finally, we will be able write an Integrated Developer Editor (IDE) with syntax handling in a JavaFX. Moreover, the new text controls will be composable, support bi-directional languages like Arabic and Hebrew, both at the same time. The text more important will also wrap correctly and best of all, developer will be able to add generic shapes to the TextFlow component so that the rich text wraps around and aligns correctly.

To find out more, watch the JavaOne 2012 Keynote Highlights.

 

DSCF4070
Brazilian are always in attendance at JavaOne USA. If you can’t beat them [for passion] then you might as well join them.

 

Java SE

Java SE 8 will have Lambda functions (JSR 335) long overdue for five years. Brian Goetz gave a talk on lambda functions, which I could not attend, of course, because of clashes [I am sure I will catch it again in Devoxx]. Lambda brings essential functional programming to the platform. Here is a word of caution here, the proposal does not introduce higher order functions, although they can be implemented in a library. Lambda functions will simply the event handling logic in JavaFX, and code will must more functional and readable.

Mark Reinhold explained his reasons again for deferring the Jigsaw project to 2015. Although the full implementation will be delayed, he mentioned at least four profiles. Each of these profiles builds extra functions into the other platform until the full version. Mark Reinhold explained in his session, which I did attend, how hard it has been to refactor and restructure the Java Runtime Environment. His major concern was testing and building a guaranteed implementation of module system that would work from version 1.0 with little flaw.

I believe he is correct in delaying Jigsaw to Java 9. Consider the flawed Apple iOS 6 map implementation that was released as a production code earlier this year. If Java Jigsaw were released as early and as buggy as the iOS 6 Maps then we would be crying, despairing and wondering how on earth we did not test, and test early. The profiles in Java SE are a great idea, in the Java EE land, we already have two, the WEB and FULL. It is a great compromise.

People are looking forward to the new Date Time API (JSR 310) and also improved Annotations on Types (JSR 308).

Oracle also announced the Sumatra project in OpenJDK, which looks to see how the Java Virtual Machine and HotSpot can take advantage of the abundance of cores in Graphical Processor Unit (GPU) chips, which are found in hardware accelerated graphics cards.

 

DSCF3993
Sharat Chandler addresses the gathering of JUG Leader and Java Champions at the social event where he expressed his thanks to all of us.

 

Miscellany

Sharat Chandler is moving somewhere in the Oracle chain. I think it is polite to allow him announce his final destination, when he gets there. The title of Chairperson of the JavaOne Program Committee passed from Sharat Chandler to Stephen Chin on the Thursday community keynote. This was a surprise to all of us. None of the Java Champions and / or JUG Leader knew this was happing. Stephen kept his secret under wraps.

I believe Stephen taking over the organisation of JavaOne will be asset to the collective, because he is very familiar with the community of user groups around the world. He travels to the conference, does a great job presenting and always involves the audience. Stephen starts his new role with the Nighthacking Tour of Europe.

Sharat Chandler also did a great job taking over the running of JavaOne in the past two years. He did listen to the concerns of the community, and push to support the leaders, the attendees and made JavaOne at least viable. One of the things he did, was reduce the markitecture of the conference. There were two days of key notes, and the rest of the conference with given over to the technical sessions. So I want to congratulations on both Sharat and Stephen.

This is the end of part one. In part two I will cover the Java Enterprise part of the conference, in particular “Moving Java EE to Cloud” or not, as it proved to be, provide more analysis and perspectives on Java and miscellany.

See you in part two

Los Angeles, October 2012
+PP+

 

DSCF4073
[L] Sharat Chandler’s landyard compared to mine [R], spot the difference, no prizes.

 

DSCF4065
Stephen Chin, on stage, on the Community Keynote, has just become the Chairperson of Program Committee for all future JavaOne events from 2012 onwards.

 

DSCF4049
[L] James Gosling, the Father of Java, makes a welcome return to JavaOne after three year absence, promoting Liquid Robotics and Java working inside oceanographical science.

 

DSCF4030
On the way to and from from the Oracle Appreciation Event, I hung out with the Brazilian contingent at JavaOne. We were on our way back to the Hilton SF, when this photo was taken.

 

DSCF4027
[L] Simon Ritter is on demo kiosk duty explaining his Maker-make passion with JavaFX and strange and wonderful hardware to an attendee.

 

DSCF4017
This is me just moments before my first solo talk on Wednesday, on Contemporary User Interface Design Patterns in JavaFX 2.2. I was nervous as hell. Well you always need a little bit fear to give you a kick of adrenalin.

 

DSCF4015
Gerrit Grunwald is talking about writing JavaFX custom controls and all about the cool looking gauges that he has been implementing.

 

DSCF4011
[L] Bruno Souza of the Brazilian SouJava user group. He is holding the special JCP award for his user group’s involvement.

 

DSCF4006
Book authors should stick together, although at the time of writing [Oct 2012] and I am at the start of the journey of being a writer. [L] Paul Anderson and [M] Gail Anderson authors of Essential JavaFX (2009)

 

DSCF4087
[L] Stephen Chin, my partner in crime in the JavaFX Developer Guide for JavaOne 2012. This photo was taken at the annual desktop lunch that Stephen and Jonathan Giles organising for the conference.

 

DSCF4010
Centre stage, Chairperson of the Java Community Process, Patrick Curran, shares his delight at the JCP evening