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ń
Produkt | JavaFX | AIR | Silverlight |
---|---|---|---|
Firma | Sun | Adobe | Microsoft |
Strona WWW | www.javafx.com | www.adobe.com/products/air | silverlight.net |
Systemy operacyjne | Windows, Mac OS, Linux (w planach) | Windows, Mac OS, Linux | Windows, Mac OS, Linux |
Języki programowania | Java, JavaFX Script | ActionScript | XAML, języki NET |
Potrzebne do uruchomienia | Java 6 Runtime Update 10 | AIR | wtyczka Silverlight |
Możliwe wykorzystanie | jeszcze w niewielkim stopniu | ponad setka narzędzi, wśród nich Adobe Media Player | setki stron WWW, np. NBCOlympics.com |
Mechanizm dostępu do WWW | JWebPane (bazuje na WebKit) | WebKit | IE, Firefox |
Zabezpieczenia | takie jak w WebKit* i Javie | takie jak w WebKit* i Javie | takie jak w IE albo Firefoksie |
Format multimediów | VP6 | Flash (H.264) | VC-1, H.264 |
Podstawowe narzędzie dla twórców | JavaFX SDK, NetBeans | Flex, Flash | Microsoft Expression |
Zastosowanie w komórkach | tak (w planach) | tak (w planach) | nie |
Programowanie w JavaFX
JavaFX SDK Software 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 Converter konwertuje filmy dla JavyFX Project Nile import danych z Adobe Photoshop i Illustrator JavaFX Designer Tool w 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 runtime Java Runtime JWebPane: przekształca kod WWW Java 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.