JavaFX: Nowy wymiar Internetu

Surfowanie po Internecie ma się stać niebawem “przezroczyste”: dane z Internetu i naszych dysków mają połączyć się i zintegrować w jednej aplikacji. Przeglądarka stanie się w wielu przypadkach zbędna, a oprogramowanie będzie się komunikowało bezpośrednio z Internetem.
notebbok grafika

JavaFX: Nowy wymiar Internetu

Programy, które oferują tego typu możliwości, należą do grupy tak zwanych Rich Internet Applications (RIA). To, jak może wyglądać realizacja takich pomysłów, pokazuje Adobe i jego Buzzword. W porównaniu z tym miłym dla oka i sprawnie działającym online’owym procesorem tekstu takie rozwiązania jak Google Apps, bazujące na języku JavaScript, wydają się po prostu przestarzałe. W oknie przeglądarki otwiera się łatwy w obsłudze procesor tekstu, do którego można bez problemu wklejać obrazki, a takźe tworzyć w nim tabelki i  formatować tekst.

Adobe nie jest osamotnione w swoich poczynaniach. Nad aplikacjami RIA pracuje Microsoft, a od niedawna również Sun, który w ramach projektu JavaFX oferuje narzędzia do tworzenia i obsługiwania aplikacji RIA. Tym samym staje do walki z Microsoftowym Silverlightem oraz AIR-em (Adobe Integrated Runtime) firmy Adobe.

Runtime: Tworzyć w JavaFX

Z myślą o JavaFX firma Sun stworzyła nowy język programowania oraz udostępniła narzędzia do optymalizacji kodu. By przygotować aplikację RIA w JavaFX, użytkownicy potrzebują jedynie biblioteki programistycznej, która będzie w stanie wykonać polecenia kodu – tzw. runtime, czyli biblioteka uruchomieniowa.

Większość użytkowników prawdopodobnie już ma JavaFX w swoich komputerach i nawet o tym nie wie! W połowie października pojawiła się aktualizacja Java Runtime Engine 6 Update 10, która zawiera JavaFX. Z punktu widzenia Suna w walce o udziały w rynku popularność Javy (jest już zainstalowana na 92 proc. wszystkich komputerów) bez wątpienia stanowi bardzo dużą zaletę, ponieważ użytkownicy Adobe i Microsoftu muszą ściągnąć biblioteki uruchomieniowe tych firm z Internetu. Ponadto platforma Javy jest już dostępna na wielu przenośnych urządzeniach.

Jeśli jednak chodzi o rozwijanie i zastosowanie tej platformy, to JavaFX pozostaje w tyle. Wprawdzie dzięki Javie bardzo dobrze pisze się tradycyjne oprogramowanie, ale by można było efektywnie wyświetlać zawartość stron WWW oraz obsługiwać inne multimedia, Sun musi rozpocząć pracę praktycznie od zera. W przypadku Adobe jest inaczej, bo AIR może korzystać z rozwiązań zadomowionego już w świecie komputerów odtwarzacza Flash.

Silniki: To drzemie w JavaFX

Właśnie z powyższych powodów JavaFX wprowadza nowe rozwiązania. Podstawą nowego oprogramowania jest język skryptowy, który może służyć nawet do tworzenia animacji. Dane przetwarzają trzy silniki: jeden do obsługi zawartości internetowej, drugi służy do renderingu animacji, a trzeci do odtwarzania filmów (patrz grafika).

Sun korzysta przy tym z już dostępnej biblioteki programowania wykonującej polecenia HTML i JavaScript – jest to WebKit. Również przeglądarka Google Chrome i Adobe AIR wykorzystują WebKita, ponieważ biblioteka ta przetwarza kod WWW niezawodnie i niezwykle szybko. Jednak Sun nie poprzestał na tym i zoptymalizował współdziałanie WebKit z Javą, i nazywa swoją wersję JWebPane.

Programy pisane w środowisku Java miały dotąd zazwyczaj nieatrakcyjny wygląd  (przeważnie są to nudne prostokątne okienka). Za sprawą JavaFX ma się to się zmienić. Komponent Scene Graph zajmie w JavaFX miejsce analogiczne jak Flash oraz Action Script w AIR. Przetwarza on animacje oraz efekty wizualne, takie jak cieniowania czy przejścia tonalne kolorów. Trzeci silnik odpowiedzialny jest za wyświetlanie zawartości multimedialnych. Dlatego też JavaFX otrzyma własnego Media Playera. Pod kontrolą Windows może on odtwarzać filmy tylko za pomocą interfejsu multimedialnego DirectShow. Użytkownik musi więc mieć zainstalowany odpowiedni filtr DirectShow odpowiadający danemu formatowi wideo. W przyszłości filmy odtwarzane przez JavaFX będą korzystać z kodeka VP6 firmy On2, który będzie częścią biblioteki uruchomieniowej JavaFX. Jego jakość jest porównywalna z DivX 6 – a to w pełni wystarcza.

Narzędzia: JavaFX przydatna do wszystkiego

Pełnię możliwości języka skryptowego JavaFX poznamy w momencie, gdy połączymy go

z niezwykle bogatym językiem programowania Java. W porównaniu z nim AIR (ze swoim ActionScript) jest mocno ograniczony. Nowy Silverlight 2 jednak ma już całkiem sporo do zaoferowania, gdyż programiści mają do dyspozycji takie języki, jak VB.NET i C#. Narzędzia dla programistów, do wykorzystania w JavaFX, Sun udostępnia za darmo (ramka po lewej). Wśród nich są NetBeans, jako zintegrowane środowisko programistyczne, oraz Project Nile, służący do konwertowania plików z Photoshopa i Illustratora. W pierwszym kwartale 2009 roku dodany zostanie jeszcze program designerski. Ogólnie rzecz biorąc, Sun ma wielkie plany dotyczące JavyFX: już na początku 2009 roku ma powstać port do telefonów komórkowych. Na 2010 rok zaplanowana jest nawet platforma dla telewizorów.

Porównanie konkurencyjnych rozwiązań
ProduktJavaFXAIRSilverlight
FirmaSunAdobeMicrosoft
Strona WWWwww.javafx.comwww.adobe.com/products/airsilverlight.net
Systemy operacyjneWindows, Mac OS,
Linux (w planach)
Windows, Mac OS, LinuxWindows, Mac OS, Linux
Języki programowaniaJava, JavaFX ScriptActionScriptXAML, języki NET
Potrzebne do uruchomieniaJava 6 Runtime Update 10AIRwtyczka Silverlight
Możliwe wykorzystaniejeszcze w niewielkim
stopniu
ponad setka narzędzi, wśród nich Adobe Media Playersetki stron WWW,
np. NBCOlympics.com
Mechanizm dostępu do WWWJWebPane
(bazuje na WebKit)
WebKitIE, Firefox
Zabezpieczeniatakie jak w WebKit* i Javietakie jak w WebKit* i Javietakie jak w IE albo Firefoksie
Format multimediówVP6Flash (H.264)VC-1, H.264
Podstawowe narzędzie
dla twórców
JavaFX SDK, NetBeansFlex, FlashMicrosoft Expression
Zastosowanie w komórkachtak (w planach)tak (w planach)nie
Programowanie w JavaFX

JavaFX SDKSoftware Development Kit (SDK) jest potrzebny, abyśmy mogli pisać programy dla JavyFX
NARZĘDZIA DLA DEWELOPERÓW
etBeans IDE z wtyczką JavaFX Scriptśrodowisko programistyczne
JavaFX Media Converterkonwertuje filmy dla JavyFX
Project Nileimport danych z Adobe Photoshop i Illustrator
JavaFX Designer Toolw 2009 Sun wprowadzi własne narzędzie designerskie
Jak funkcjonują aplikacje napisane w JavaFX
Platforma

W zależności od urządzenia, JavaFX otrzyma dopasowane do niej środowisko, aby móc obsługiwać odpowiednie aplikacje.

Silniki

Runtime JavyFX odtwarza kod WWW, jest odpowiedzialny za ładny wygląd aplikacji oraz renderuje dane multimedialne.

Funkcje

Za podstawowe funkcje odpowiedzialny jest runtime Javy: na pecetach wersja Standard Edition, a w telefonach komórkowych Micro Edition.

JavaFX runtimeJava Runtime
JWebPane: przekształca kod WWWJava Standard Edition
Scene Graph: odpowiada za warstwę graficznąJava Micro Editio
Codec VP6: odtwarza filmy
Podsumowanie

JavaFX jest najnowszym i najambitniejszym projektem związanym z RIA. Wprawdzie Sun będzie miał twardy orzech do zgryzienia, chcąc wygrać rywalizację z Microsoftem i Adobe, jednak wciąż nie jest na to za późno – dysponując platformą przeznaczoną do telefonów komórkowych, Sun ma jeszcze asa w rękawie.