środa, 14 kwietnia 2010

JDK 7 - nowości podsumowanie

Po ponad dwóch tygodniach i 4 postach zapoznawania się z JDK 7, mogę się wreszcie pokusić o podsumowanie. Nowe JDK nie wprowadza rewolucji, nie wrzuca dużo nowości, jednak będzie miało wiele fajnych cech które naprawdę się przydadzą. Pisząc ostatnio trochę kodu łapałem się na tym, że w danym momencie przydałaby się mi jedna czy druga funkcjonalność z JDK7. Warto chyba było się z tym zapoznać i warto czekać i śledzić rozwój JDK7. Kilka najważniejszych według mnie zmian:

  • Wygląda, że duży nacisk położono na systemy wielowątkowe
  • zarówno nowy garbage collector (G1), jak i kompresja 64bitowych wskaźników powinny przyśpieszyć wykonywanie programów w środowiskach 64bitowych i wielowątkowych.
  • Obiecująco wygląda obietnica wprowadzenia takich zmian do VM aby przyśpieszyć wykonywanie języków dynamicznych i skryptowych.
  • Modułowość
  • czyli superpackage, bardzo przydatna funkcja zwłaszcza z wykorzystaniem Project Jigsaw - dodaje sporo możliwości dla pisania bibliotek.
  • Małe zmiany w języku Java
  • - zwłaszcza uproszczona notacja dla kolekcji, oraz "automatyczne" zamykanie przez ASR - to są rzeczy które dla mnie bardzo uproszczą pisanie i "oczyszczą" kod.
  • Annotacje dla typów
  • - bardzo duże możliwości wykorzystania zwłaszcza przy sprawdzaniu jakiś warunków (validacji).
  • Domknięcia
  • - niesamowita możliwość i dobrze aby była w Javie, jednak nie wiadomo jeszcze czy wejdzie do JDK7.
  • Sporo poprawek dla rzeczy wprowadzonych na szybko dla JDK6u10
  • - dzięki temu dowiedziałem się, że JDK6u10 wprowadził sporo nowości które już teraz możemy używać.

I tyle na krótko. Po szczegóły odsyłam do poprzednich moich postów gdzie starałem się opisać szczegółowiej zmiany:

piątek, 9 kwietnia 2010

JDK 7 - nowości 4

Po przerwie świątecznej, wracamy do zapoznawania się z planowanymi nowościami w JDK7.
Dziś czas na zmiany w kliencie.

Klient

  • XRender pipeline for Java 2D
  • Dzięki temu Java2D będzie mogła lepiej wykorzystywać wsparcie z nowych kart graficznych. Wydaje mi się, że dotyczy to bardziej linuksa (i innych systemów gdzie wyświetlanie grafiki oparte jest na systemie X11). Podobne rozszerzenie dla Windows (korzystające z Microsoft Direct3D 9 API) jest już włączone w JDK 6u10.
  • Forward-port 6u10 deployment features
  • Powyższa rzecz unowocześnia (nowy sposób downloadu chyba) rozszerzenie które było zaimplementowane w jdk 6u10 - nie ma potrzeby przy uruchamianiu apletu/aplikacji WebStart na maszynie bez jdk ściągania całego JDK (15MB), ściągany jest na początku tylko "kernel" (2.5MB), następnie dociągane są te biblioteki które są potrzebne do uruchomienia tego programu, biblioteki są nieduże mają po około 1MB. Gdy wymagania programu są spełnione, jest on uruchamiany, a pozostałe biblioteki są dociągane w tle przez specjalny downloader.
  • Create new platform APIs for 6u10 graphics features
  • Chcesz mieć półprzezroczyste elementy lub okienka w Javie? Teraz jest to możliwe, co prawda wymaga pogrzebania w AWT, ale możesz nadawać dowolny stopień przezroczystości, możesz tworzyć okrągłe okienka, lub zaokrąglać krawędzie. Jest to już możliwe w JDK6u10, ale w JDK7 ma się pojawić nowe API (pewnie bardziej wygodne) do tego.Krótkie wprowadzenie do tego co już jest zaimplementowane w JDK6u10
  • Nimbus look-and-feel for Swing
  • Kolejna nowość, która tak naprawdę została już zaimplementowana w JDK6u10. Nimbus to całkiem przyjemny, całkowicie wektorowy look&feel. Bardzo się według mnie nie różni od wyglądu Metal, ale jest trochę ładnych zaokrągleń, ładniejsze zakładki i paski przewijania. Dzięki wektorowości ma się bez problemów skalować (co dla mnie może być chyba jego największą zaletą ;) ).
  • Swing JLayer component
  • Włączenie do standardowego JDK biblioteki JXLayer. Nowy komponent dekorator który umożliwia trochę więcej zabawy i graficznych ciekawostek. Polecam zobaczyć przykłady na stronie JXLayer.

Web
  • Update the XML stack
  • Upgrade JAXP, JAXB i JAX-WS APIs do najnowszych stabilnych wersji.

I to by było na tyle z nowości JDK7. Jak widać trochę tego jest, choć zmiany opisane dziś to przeważnie unowocześnienie nowych możliwości z JDK6u10. W następnym tygodniu spróbuję podsumować całość.