Java 7, dobré zprávy z Devoxxu

Tak a teď budu Sun jen chválit a nic než chválit. Dopoledne jsem byl na keynote o novinkách v Javě 7. Nejvíc mě potěšila informace o tom, že Java 7 bude modulární. Tzn. JDK a JRE nebudou jen veliký navzájem propojený monolit, ale bude rozděleno na víc modulů. O tom už se mluvilo dlouho, dneska jsem se dozvěděl jak to (pravděpodobně) bude realizováno. Dobrá zpráva je, že nebude použit kontroverzní JSR 277. Horší zpráva je, že nebude použito ani OSGi. Bude použito něco, čemu říkají projekt Jigsaw. Nicméně slibují, že budou úzce spolupracovat s OSGi týmem, tak aby byly oba projekty spolu schopny spolupracovat. Nevím jestli to znamená, že budu moci použít OSGi bundly jako „Java moduly“, ale vypadá to nadějně. Rozhodně tvrdili, že se budou snažit to udělat tak, aby OSGi byl s novým systémem kompatibilní alespoň v příštích verzích OSGi. Rozhodně je to veliký pokrok od situace, kdy to vypadalo, že u Sunů netuší, že něco jako OSGi vůbec existuje.

Zajímavě vypadá i nový G1 garbage collector. Obsahuje pár zajímavých myšlenek. Další zpráva je, že (zatím) do Javy jako jazyka nezařadí kontroverzní věci jako Closures, bean binding a podobně. Chystají se jazyk rozšířit o pár drobnůstek, které nám ušetří trochu práce a na kterých ani škarohlíd jako já neshledává nic závadného.

No a poslední dobrou zprávou je, že se chystají do vývoje zapojit i komunitu. Ne tak, jak to udělali hned po open-sourcování javy, tentokrát to vypadá, že to myslí doopravdy a nechají komunitu i trochu zasahovat do toho, jak se Java bude vyvíjet. No není to skvělé? Tak a teď po mě pěkně zopakujte: „Děkujeme Sune“. Už se těším na rok 2010.

Devoxx

Dobrý den, hlásím se vám z Devoxxu. Původně jsem chtěl popsat všechny přednášky na kterých jsem byl. Ale absolutně to nestíhám, včera jsem tu byl od devíti do desíti. Navíc jim tu docela hapruje internet. Takže jen vypíchnu věci, které mě zaujaly. Očekávejte ještě víc chyb než je u mě obvyklé. Pořadí je víceméně chronologické.

Scala
Byl jsem na přednášce o Skale. Hodně se mi to líbilo. Rozhodně je to jazyk s kterým si dokážu představit pracovat. A to jsem hodně vybíravý. Ještě bych ho nechal chvíli dozrát, ale pokud si chcete rozšířit obzory a naučit se jeden z těch nových krásných jazyků nad JVM, pohrát si s novými myšlenkami, ale nechcete se vzdát typové kontroly, Scala je jazyk pro vás.

Android
Tady trochu zasáhl přednáškový komplex a asi na deset minut jsem usnul. Ale pak už jsem dával pozor a vypadá to také docela zajímavě. Hlavně se mi líbilo to, jak se dají aplikace vzájemně propojovat, uvidíme jak se to vyvine v budoucnu.

Elastic Grid
Pokud vás láká vyzkoušet si Amazon Grid, Elastic Grid vypadá jako pěkná pomůcka, která vám to může docela usnadnit. Nehrál jsem si s tím, ale to je něco co chci rozhodně zkusit.

Profilování
Strávil jsem dohromady asi čtyři hodiny na přednáškách Kirka Pepperdine. Ty jsou vždycky zajímavé, dal docela pěkné tipy na to jak ladit aplikace. Ukázal VisualVM, což je taková rozšířená JConsole, další věc na kterou by se stálo podívat. Taky jsem poprvé naživo viděl slavnou Holly Cummins. Ano a opravdu má modré vlasy.

Groovy místo XML
Tady jen drobný postřeh. Vypadá to že víc a víc projektů používá Groovy pro konfiguraci. Groovy je takové nové XML.

Apple
Skoro všichni přednášející používají Macy (kromě zaměstnanců IBM). To je docela zajímavé.

To je zajím všechno. Když budu mít čas, náladu a místní sít dovolí, pokusím se napsat něco víc.

Jak jsem potkal JavaFX

Tak si říkám, jestli má to co se chystám napsat vůbec cenu. Spoustu lidí tím asi naštvu a nikomu tím asi nepomůžu. No ale budiž, nechť se rozpoutá plamenná diskuze.

Předevčírem Sun vydal první ostrou verzi Javy FX. Včera byl můj poslední den v práci a odpoledne jsem neměl už moc co dělat, tak jsem si řekl, že se na to podívám. Jdu na javafx.com, kliknu na Effects playground příklad a Firofox se zasekne. Asi po minutě se probudí a v okně je prázdná plocha kde by asi měl být applet. Hmm, nic moc. (Firefox 2, Windows XP). Přestalo mě to bavit, ale dneska jsem se doma rozhodl, že se na to pořádně podívám.

Abych tomu poskytl co nejlepší podmínky, nastartoval jsem do Windows XP a nainstaloval jsem nejnovější JRE. Tady si nemohu odpustit drobné pošťouchnutí. Z neznámého důvodu je instalační obrázek takový nějaký kostrbatý. Rozhodně to nevypadá moc profesionálně.

Instalace JRE

Po instalaci JRE, jdu do Firefoxu 3, kliknu na příklad a po chvíli čekání na můj pomalý internet se objeví co? Staré známé okýnko.

Alert

Chápu bezpečností problémy, ale když se na tu hlášku zkusím podívat z pohledu normálního uživatele, tak vidím Warning, pozor, něco ošklivého se děje. Security, to bude nějaký virus. Vykřičník, to bude něco nebezpečného. Rychle pryč.

Rozhodně nejsem expert na uživatelské rozhraní, ale myslím si, že by neškodilo malé vysvětlení. Něco v tom stylu: „Chystáte se spustit program, který bude mít právo na přístup k vašemu disku. Pokud mu nedůvěřujete, klikněte na Zrušit, bla bla bla…“. Navíc si říkám, že by se taková hláška mělo objevit před tím, než se program poprvé pokusí udělat něco potenciálně škodlivého. Nechápu proč musí děsit uživatele ještě před tím než vůbec něco uvidí. Nechal bych si ho s aplikací pěkně pohrát a až by se pokusil otevřít soubor tak bych to na něj vypálil.

Když jsem sebral dost odvahy a rozhodl se důvěřovat JavaFX týmu, že mi nevymaže disk, klikl jsem na Run a konečně se mi zobrazil kýžený příklad. Tady musím lidi ze Sunu pochválit, vypadá to super. Navíc se opravdu dá chňapnout a táhnout, takže vypadá jako normální aplikace. Skvělé. No, na druhou stranu když kliknu na “Otevřít soubor”, objeví se následující okýnko.

Open

Uuups, tohle že jsou Windows XP? Já vím, je to maličkost, ale ďábel je ukryt v detailech.

Dokonce jsem se i chvíli snažil spustit příklad pod mým 64bitovým Ubuntu. Marně. Firefox plugin pro amd64 možná bude v Javě 7, možná v Javě 6. Nikdo neví. Viz bug 4802695 (všimněte si data vzniku). Problém není jen v pluginu, celé Java FX prý Linux nepodporuje. Ale, že prý si mám nainstalovat verzi pro Mac, ta že prý na Linuxu skoro funguje. Hmm.

Rozhodně bych si přál aby se Java pořádně dostala ze serverů i na klienty. Nevím jestli je Java FX tou pravou cestou. Když to srovnám s Flashem, tak má pořád ještě co dohánět. Možná namítnete, že srovnání s Flashem není spravedlivé, že se Java FX zaměřuje na jinou skupinu uživatelů. Ale je to opravdu tak? Podívejte se na příklady, evidentně se snaží dokázat, že umí to co umí Flash.

Jestli se chce Java FX chytit na už obsazeném trhu, musí nabídnout něco navíc než konkurence. Něco navíc pro uživatele, ne pro programátora. Nějakou killer aplikaci. Zatím jsem na nic takového nenarazil. Přesouvání apletu na plochu je pěkné, ale nevidím důvod proč by to lidi chtěli začít používat. Ale třeba mi to na Devoxxu někdo vysvětlí.