Java є мовою програмування, за допомогою якої розробники програмного забезпечення (програмісти) створюють різни прикладні додатки для комп’ютерів, смартфонів, планшетів та інших інтелектуальних пристроїв. Особливістю програм на Java є те, що вони можуть запускатись на будь-яких комп’ютеризованих пристроях, які працюють під різними операційними системами, причому без повторної компіляції коду.
Для їх виконання необхідно лише встановити середовище для виконання – JRE (Java Runtime Environment), завантаживши його з сайту http://www.oracle.com. JRE розроблені для багатьох операційних систем – Linux(x86,x64), Mac OS X64, Solaris, Windows (x86,x64), завдяки чому код Java працює майже на всіх різновидах комп’ютерів та операційних систем.
JRE забезпечує безпечну та зручну роботу додатків на Java, тому користувачі можуть не турбуватись про несанкціоноване втручання до ресурсів свого персонального комп’ютера з боку стороннього Java коду. Необхідно лише періодично оновлювати JRE, на даний момент остання версія JRE 8 Update 171. Вбудована технологія забезпечення безпеки Java включає в себе значний набір API (Application Programming Interface) механізмів та додаткових інструментів, включаючи широковідомі та надійні алгоритми та протоколи безпеки.
Це передбачає використання криптографічних механізмів захисту інформації, інфраструктуру відкритих ключів, захищений зв'язок, автентифікацію та контроль доступу.
Однієї із найбільш цікавих для користувачів Java є платформа JavaFX. JavaFX являє собою набір графічних та медіа пакетів (бібліотек Java), які дозволяють програмістам проектувати, створювати , тестувати та розгортати RIA (Rich Client Applications) додатки, які фактично являють собою програми із графічним інтерфейсом, які виглядають та працюють однаково на всіх платформах та пристроях. Архітектура платформи JavaFX представлена на малюнку нижче.
Цікавою особливістю є те, що вигляд та поведінку програм, написаних на JavaFX, можно налаштовувати за допомогою каскадних таблиць стилів (CSS – Cascading Style Sheets). Цей підхід, який історично був першим застосований для веб-сайтів, дозволяє відокремити зовнішній вигляд програм (інтерфейс користувача) від реалізації, що дозволяє програмістам концентруватись на кодуванні. Турбота про графічний інтерфейс тепер лежить на плечах графічних дизайнерів, які налаштовують зовнішній вигляд за допомогою скриптової мови FXML та технології CSS, а програмісти зосереджені на розробці бізнес-логіки додатка. Нижче наведено вигляд додатку із різними налаштуваннями CSS.
Безумовно, наведений приклад є досить простим, і може виникнути питання – невже за допомогою мови Java та JavaFX можна розробляти тільки такі прості програми?
Звичайно ж не тільки такі! Типова Java програма є клієнт-серверним додатком, що працює як на сервері (де зосереджена бізнес-логіка додатку) та на клієнтських пристроях, які підключаються до сервера за допомогою мережі Інтернет. Платформа JavaFX дозволяє проектувати високопродуктивні інтерфейси користувача на клієнтських додатках, які окрім базових графічних компонентів, включають відео, звук, анімацію.
Серед цікавих додатків, які розроблені на Java із застосуванням JavaFX можна виділити наступні (за матеріалами https://jaxenter.com)
1. GEONS Ground System Software (GGSS) Nasa
GSSS забезпечує визначення орбіти та телеметричний аналіз для місії НАСА Magnetospheric MultiScale (MMS) Mission, в межах якої було запущено чотири ідентичних космічних апарати, що повинні створити тривимірну карту процесу, відомого як магнітне перез'єднання. Місія MMS повинна забезпечити детальні відомості про механізми процесу магнітного перез'єднання, який здатен прискорювати частинки майже до швидкості світла. Американські вчені на базі проведених досліджень планують створити ідеальний термоядерний реактор (за матеріалами wikipedia.org).
Розроблене програмне забезпечення розгорнуто в центрі космічних польотів Годдарда (дослідницька лабораторія НАСА, що розташована у місті Грінбелт, штат Меріленд, США) у складі більш крупної наземної системи Flight Dynamics. GGSS використовує гібрид платформи Java NetBeans та JavaFX для інтерактивної візуалізації, забезпечення автоматизації та швидкого отримання даних операторами та аналітиками.
2. Платформа для планування та моніторингу (PSI Advanced Scheduling and Monitoring / ASM PSI)
PSI ASM використовується у виробництві для планування та моніторингу виробничих процесів. Це дозволяє користувачам швидко отримати всебічний погляд на поточну діяльність виробничого майданчика.
3. eteoBoard Saxonia Systems AG
eteoBoard - це цифрова панель Scrum, яка синхронізує роботу членів SCRUM-команди у режимі реального часу. Дана розробка написана для приватних проектів компанії Saxonia Systems AG, в яких приймають участь віддалені працівники, і необхідно координувати їх робочі процеси.