LXF95:Что за штука

Материал из Linuxformat.

Перейти к: навигация, поиск
    Пол Хадсон проливает свет на новое зелье от Sun, соперника интерактивных web-приложений Flash, Ajax и Silverlight...


В позапрошлом номере на этих страницах был D. Месяц назад – E. Думаете, мне охота слушать о языках программирования три месяца подряд? Я уж лучше пойду…

Нет, нет – погодите! Не захлопывайте страницу!

Что?

Никакого программирования.

Ладно, у вас пять минут для того, чтобы заинтересовать меня. Время пошло.

Хорошо: JavaFX – новая крутая платформа от Sun для создания полноценных Интернет-приложений, конкурент Ajax. Это, кстати, та самая приправа, которой Google Mail обязан интеллектом. Ajax базируется на JavaScript, и это порождает целый спектр проблем совместимости с браузерами. Например, Google Docs прекрасно обрабатываются Firefox, но отказываются работать на Safari. Если вы пользователь Opera, то, как я слышал, OpenOffice.org хорош для редактирования документов. Но даже на Firefox Ajax не станет работать ни минуты, пока вы в оффлайне.

Значит JavaFX призван заменить Ajax?

Я ещё не закончил. На ряду с Ajax для строительства привелекательных web-приложений всё шире применяется технология Flash от Adobe, но, хотя он и работает оффлайн, Flash Player – все-таки не открытое ПО. Возникают проблемы, если у вас неподдерживаемое оборудование, или вам некогда ждать, пока Adobe наконец выпустит новую версию для Linux. И, конечно, если вы идейный противник проприетарного ПО, Flash тоже не для вас.

Подождите – так JavaFX заменит и Ajax, и Flash? Как бы не откусить больше, чем можешь прожевать…

Вот тут в дело вступает часть ‘Java’ от ‘JavaFX’: тут все основано на Java-платформе, то есть вся функциональность уже готова – Sun лишь надстраивает немного сверху. Например, есть Java 2D – библиотека, задуманная для высокоскоростной отрисовки графики, и она превосходна для создания блестящих графических интерфейсов. JavaFX располагает также всеми сетевыми и XML-библиотеками, необходимыми для отправки и получения данных по проводам, а также их кэширования оффлайн. Фактически, онлайн-приложения работают и в оффлайн-режиме.

Значит, экономится трафик?

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

Значит, JavaFX работает оффлайн, поддерживается многими браузерами, да еще и безопаснее. Мне начинает нравиться.

Я ж говорил, это здорово! На самом деле, предлагается много больше. Помните старый слоган Java: «Написано однажды, работает везде»?

Мне помнится, было немного иначе: «Написано однажды, ломается везде».

Не спорю, раньше так и было. Но ведь Java с тех пор здорово усовершенствована, а это значит, что JavaFX будет работать на любом Java-совместимом устройстве. Да-да, и на вашем мобильном телефоне тоже. JavaScript очень медленно обрабатывается, потому и Google Doc на мобильных устройствах с их слабыми процессорами идут со скрипом, да и то если у браузера есть все необходимые средства для обработки JavaScript!

Но ведь и Java не из скороходов…

Напротив – язык Java для телефонов и других мобильных устройств существенно оптимизирован с целью извлечь максимум возможного из весьма ограниченных ресурсов. На телефонах не только слабые процессоры, но и весьма ограниченные объемы оперативной памяти, поэтому оптимизация Java пришлась как нельзя кстати – не нужны никакие хаки и прочая заумь, с помощью которых Ajax-приложения пытаются заставить работать на настольных ПК: все-таки Java – хорошо изученная платформа. Слой JavaFX просто ставится поверх виртуальной Java-машины (как на настольном ПК, так и на мобильнике), а это означает, что любой компьютер, инсталлировавший тонкий слой JavaFX, способен пользоваться подлинно кроссплатформенными JavaFX-приложениями.

А не выйдет ли так, что использование Java затруднит изучение JavaFX рядовыми программистами?

Это вполне могло случиться, если бы Sun одновременно не представила JavaFX Script.

Это что-то вроде JavaScript?

Не забывайте о том, что JavaScript – всего лишь претендент на трон Java. JavaScript не имеет ничего общего с Java, он даже изобретен не в Sun! JavaFX Script – который, будучи ядром JavaFX, вполне может называться просто «JavaFX» – тоже совершенно не похож на Java. JavaFX Script предназначен для упрощенного создания пользовательских интерфейсов с Java-библиотеками Swing, но он обладает полным доступом к основным библиотекам Java, если в том возникает потребность.

Мне смутно вспоминается что-то из прошлых лет. Grove? Groove?

Верно. Вы вспомнили Groovy, мы об этом писали в LXF67. Конечно, между Groovy и JavaFX есть определенное сходство, но JavaFX предназначен для создания web-приложений, и инструментарий у него соответствующий. Groovy был более общим, то есть недостающую функциональность нужно было достраивать самому.

Понимаю, как это нудно. Как же Sun умудрилась так быстро все обстряпать?

На самом деле проект разрабатывался довольно долго, под условным названием F3 (Form Follows Function). Недавно Microsoft представила нечто очень похожее на JavaFX, под названием Silverlight. В Microsoft-варианте в web-браузер встраивается .NET вместе с графическим холстом, поэтому можно писать код на C# или JavaScript и получать примерно те же вещи, что с JavaFX.

Подождите, зачем тогда JavaFX?

Видите ли, несмотря на все наши надежды, Microsoft не сделала ощутимого поворота в своей политике по открытому ПО, а Sun уже открыла общедоступный сайт, на котором выложила GPL-лицензированный код JavaFX. Разработчики Mono тоже ухватились за идею Silverlight и начали работу над свободным клоном на основе Mono и Cairo. Но все это – дело будущего, а JavaFX есть уже здесь и сейчас, хотя и в альфа-версии, и образцы его кода уже можно «потрогать руками».

То есть, JavaFX можно попробовать прямо сейчас?

Конечно! Sun выпустила даже JavaFX Mobile, встраиваемый в мобильные операционные платформы на основе Linux. На выходе и другие продукты семейства JavaFX, но в наличии пока только JavaFX Mobile и JavaFX Script. В настоящее время код довольно сырой, поэтому не ждите от него чудес – но с помощью JavaFX уже можно строить и связывать между собой интерфейсы Swing.

Советуете немного подождать?

Наоборот, я рекомендовал бы включиться прямо сейчас, ведь первозданное состояние JavaFX позволяет вылепить из него все, что угодно, и на этой стадии ваши подсказки и пожелания очень бы пригодились.

Вы убедили меня как минимум загрузить и попробовать JavaFX. Назовите, пожалуйста, несколько URL, пока я в теме…

Вот они: домашняя страница JavaFX [1], там вы найдёте ссылки на информацию, пресс-релизы и прочие маркетинговые детали. Если вы действительно решили ознакомиться с образцами кода, демо и руководствами, то вам сюда: [2], это домашняя страница кода. Полезно посетить и такую страничку: [3] – блог того парня, который создал F3 и довел его до JavaFX. Там находится немало примеров кода, готовых к работе. Удачи вам! LXF
Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию