Java 8 debiutuje: duży krok w stronę programowania funkcyjnego, ale wciąż brak modularności

Java 8 debiutuje: duży krok w stronę programowania funkcyjnego, ale wciąż brak modularności

19.03.2014 12:57

Java 8 doczekała się wreszcie światła dziennego. Wczoraj, wtrakcie konferencji EclipseCon, Oracle ogłosiło ogólną dostępnośćkolejnej wersji tego najpopularniejszego języka, działającego dziśna miliardach urządzeń. Na premierę czekało niecierpliwie milionyprogramistów: z opublikowanych przez firmę Typesafe wynikówsondażu wśród społeczności użytkowników Javy wynikało, że54% zamierza przejść na „ósemkę” w ciągu najbliższych 12miesięcy, a 68% w ciągu najbliższych 24 miesięcy. Kuszą ichprzede wszystkim nowe możliwości opracowywanej przez Oracleplatformy.

Droga do wydania Javy 8 była zaskakująco długa. Specyfikacjęspołeczność zrzeszona w Java Community Process zatwierdziła w2010 roku (jako JSR-337), a debiut planowano na połowę 2012 roku.Tymczasem od wydania Javy 7 w lipcu 2011 prace nad nową wersjąjęzyka przeciągnęły się bardziej, niż się spodziewano. Tooczywiście wina (lub zasługa) liczbyzmian, zarówno w samym języku, jak i środowisku JavaFX czynarzędziach deweloperskich – ale przede wszystkim architekturybezpieczeństwa całej platformy – czegoś, co do tej pory byłodotkliwym problemem Javy. Wbrew niektórym opiniom, nie można jednakmówić tu o rewolucji, mamy raczej do czynienia z przemyślanąewolucją języka i platformy.

Obraz

Na pewno największą uwagę przyciągają wyrażenia lambda,pozwalające przekazywać funkcje jako argumenty metod i bardziejzwarte wyrażanie instancji funkcjonalnych interfejsów. WedługMike'a Piecha z Red Hata, pozwolą one wygodniej tworzyć aplikacje wJavie dla chmur obliczeniowych i tam, gdzie ważne jest wykorzystaniewspółbieżności. Podobnie uważa analityk IDC Al Hilwa,zauważając, że wyrażenia lambda w Javie powinny być postrzeganejako część szerszych zmian, mających na celu zwiększeniemożliwości języka na nowoczesnych architekturach w zakresieparalelizacji oprogramowania. Z kolei James Donelan z firmy MuleSoftpodkreśla, że wyrażenia lambda doprowadzą do wzrostu popularnościprogramowania funkcyjnego w Javie, tak jak to się stało już wJavaScripcie, Scali i Clojure.

Inne ważne zmiany w języku to referencje metod (czyli sposób natraktowanie statycznej metody jako funkcji, która może byćprzekazana innej funkcji), strumienie (dostarczające iteracjeleniwych wartości po kolekcji czy określonym zasięgu, pozwalająceje przetwarzać równolegle i łączyć z wyrażeniami lambda), czymetody rozszerzeń (dzięki którym można dodawać nowe metody dointerfejsów Javy bez konieczności rekompilowania klasimplementujących te interfejsy).

Warto zwrócić też uwagę na nowy silnik JavaScriptu w Javie 8,o nazwie Nashorn, który powinien jeszcze bardziej upowszechnićwykorzystanie tego głównie przeglądarkowego języka po stronieserwerów. James Donelan uważa, że Nashorn może przyciągnąć doJavy i jej wirtualnej maszyny zupełnie nową klasę programistów,do tej pory od niej stroniących.

Większe bezpieczeństwo Javy 8 ma zapewnić domyślne włączenieprotokołu TLS 1.2 po stronie klienta, wykorzystanie silniejszychalgorytmów do szyfrowania z użyciem haseł, nowe mechanizmyzarządzania kluczami, czy lepsze wsparcie dla generacji liczblosowych o wysokiej entropii.

Ciekawe wygląda też OpenJFX, czyli JavaFX dla otwartegośrodowiska uruchomieniowego OpenJDK. Jak wiadomo, JavaFX miałaby wprzyszłości zastąpić trącącego już nieco myszką Swinga jakodomyślna biblioteka interfejsu użytkownika, zarówno dla aplikacjidesktopowych jak i przeglądarkowych. Jej wprowadzenie do OpenJDKotwiera drogę do budowania w JavieFX interfejsów zintegrowanychśrodowisk deweloperskich. A jeśli zaś już o narzędziachdeweloperskich mowa, to wsparcie dla Javy 8 zapewniają jużnajpopularniejsze IDE: NetBeans 8, Eclipse 4.3.2 i IntelliJ 13.1.

Oracle nie zdołało jednak w pełni zaspokoić oczekiwańspołeczności. Donelan przypomina o projekcieJigsaw, który miał przynieść programistom coś, o co prosząod lat, czyli większą modularność języka, jednak nie zdołałtrafić do Javy 8. Oznacza to według eksperta, że wciąż platformęJava trapić będą problemy z zależnościami uruchomieniowymi iinteroperacyjnością. W tej kwestii deweloperzy Javy mają miećjeszcze wiele do zrobienia.

JRE (środowisko uruchomieniowe) Javy 8 w wersji dla Windowsmożecie już znaleźć w dziale Dodatki > Bibliotekii inne dodatki naszego repozytorium. Jest tam też dostępnypakietJDK, niezbędny programistom (osoby chcące tylko uruchamiaćaplikacje napisane w Javie nie muszą go instalować).

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (46)