abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 10:22 | Zajímavý článek

Lukáš Růžička v článku Kuchařka naší Růži aneb vaříme rychlou polévku z Beameru na MojeFedora.cz ukazuje "jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin".

Ladislav Hagara | Komentářů: 7
dnes 07:22 | Komunita

Od 26. do 29. října proběhla v Bochumi European Coreboot Conference 2017 (ECC'17). Na programu této konference vývojářů a uživatelů corebootu, tj. svobodné náhrady proprietárních BIOSů, byla řada zajímavých přednášek. Jejich videozáznamy jsou postupně uvolňovány na YouTube.

Ladislav Hagara | Komentářů: 0
včera 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 2
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 1
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 963 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Java s prstem na tepu doby

    28. 3. 2012 | Reklama | Reklama | 6031×

    Java a celý její ekosystém čelí zásadním novým výzvám, které jsou způsobeny posunem v oblasti mobilních zařízení, vzrůstajícím množství dat i uživatelů a v neposlední řade nutností vzájemné integrace heterogeních aplikací. Klíčová otázka zní, jakým způsoben je Java jako platforma schopna na tyto výzvy reagovat a zároveň si zachovat statut klíčové technologií. Tento článek nemůže a ani nemá ambice na tuto otázku odpovědět, ale pokusí se přiblížit hlavní z těchto výzev a možnosti kterými se Java může ubírat.

    Úkrok stranou

    Prvotní a správná otázka je: proč se to všechno děje. Jedna z odpovědí leží pro programátory těžko uchopitelné a o to více ignorované škatulce s nápisem Business. Je historicky prokazatelné, že pouze pár programátorů (nedá moc velkou námahu si domyslet jejich jména) toto pochopilo a dokázalo úspěšně propojit technologickou výhodu s úspěchem komerčním. To je zároveň důvod, proč v čele většiny technologických společností nestojí programátor, ale někdo kdo dokázal spojit oba světy. Každý člověk bez ohledu na vzdělání, pracovní pozici či věk má inovativní nápady. Ovšem pouze menší část lidí dokáže začít tyto nápady realizovat. Ještě menší část těchto lidí na nich dokáže kontinuálně pracovat a dále je rozvíjet. A ta nejmenší část lidí je dokáže přetavit v úspěch [1].

    První klíčovou veličinou je čas, za který se podaří nápad uvést do stavu, který je možné zpeněžit [2], bez ohledu na fakt jestli se jedná o jednotlivce nebo firmu. Druhou klíčovou veličinou jsou náklady, které s tím jsou spojené, provozní i startovací. Jedním ze způsobů, kterým lze výrazně redukovat čas nutným pro uvedení na trh představuje volba správné technologie a platformy. Náklady lze do jisté výše redukovat pronájmem bez ohledu na to jestli se jedná o svět virtuální a nebo ten fyzický.

    Kromě faktoru času a nákladu hrají přímou roli i veličiny, které není možné ovlivnit. Podle statistik World Internet Usage používalo Internet na konci roku 2000 celkem 360 985 492 uživatelů, ke konci roku 2011 je to již uživatelů 2 095 006 005 [3]. Podle typu operací je možné si udělat celkový obrázek o celkovém objemu dat. Za rok 2010 například služba Flickr hostovala 5 000 000 000 obrázků. Za ten samý rok bylo na sociální síti Twitter poslánu 25 000 000 000 zpráv takzvaných tweetů [4]. Podle odhadů firmy Cisco bude v roce 2015 připojeno 15 000 000 000 zařízení [5]. Zjednodušeně řečeno velké množství uživatelů používá velké množství zařízení a produkuje velké množství dat. Čísly těžko uchopitelný údaj představuje i změna používání webu. Od prohlížení statických stránek nastal výrazný posun k dynamickému chování a webovým aplikacím. Tato změna je označována jako Web 2.0.

    Výše zmíněné údaje jsou ve velké míře příčinou, a následkem je zrod přístupů či technologií jako Cloud computing, NoSQL databází nebo HTML 5. Tyto technologie zpětně způsobily a způsobují částečnou změnu architektury aplikací, a v neposlední řadě přímo ovlivňují jakým způsobem se aplikace samotné vyvíjí. Jestliže v polovině devadesátých let převládala dvouvrstvá architektura s takzvaným tlustým klientem, na začátku nového století došlo k posunu k architektuře třívrstvé, díky které mimochodem vznikla Java EE, a konceptu takzvaného tenkého klienta[6]. V dnešní době se již dá těžko mluvit o tenkém klientovi. Požadavky z pohledu uživatelského rozhraní i interaktivity aplikace vedou k přesunu části logiky ze serveru zpět na klienta. Ačkoliv by se mohlo zdát, že střední vrstva a server by si mohl oddechnout, opak je pravdou. Server musí být schopen velmi efektivně škálovat vzrůstající počet HTTP požadavků.

    Java ekosystém

    Když se řekne Java mnoho lidí si představí pouze jazyk, ale ve skutečnosti se jedná o celý ekosystém též nazývaný platforma. Ta se skládá z několika klíčových součástí: srdcem je Java Virtual Machine, kolem ní je jazyk, dále nástroje pro vývoj a monitorování, a v neposlední řadě i knihovny. Ty standardní umožňující práci například se souborovým systémem, a potom velké množství open source knihoven pokrývajících prakticky veškerou škálu toho co člověk potřebuje minimálně ve dvaceti variantách.

    Jazyk

    Jazyk je jednou z možností, kde se může Java inovovat. Pokud se bavíme o jazyku, jedná se především o změny a rozšíření jeho syntaxe. Ty lze označit buďto jako zásadní viz případ Lambda výrazů (closures) [7] a nebo jako syntaktických cukrátek v podobě Diamantového operátoru (přidaný již v Jave 7). Společný problém těchto změn je zvýšení komplexity syntaxe jazyka a tím pádem zhoršení udržovatelnosti zdrojového kódu. Právě jednoduchá syntaxe a jistá míra konzervativnosti stále za velkou oblibou Javy jako jazyku. Mnohem závažnějším problémem je zpětná kompatibilita. Skryté nebezpečí totiž představuje provázanost jazyka a standardních knihoven resp. jejich API. Zavedení Lambda výraz totiž dává smysl pouze se změnou API např. u standardních kolekcí (Mapa, Seznam atd.), se kterými dává jejich použití teprve smysl. Nekompatibilní změna v těchto API by ovšem vedla k nemožnosti přenést velké množství existujícího kódu. V neposlední řadě podobně velká změna syntaxe tohoto ražení v podobě Generik v Jave 5 dopadla dosti tristním způsobem.

    Z dalších možností inovace na úrovni jazyku přichází v úvahu zbrusu nový jazyk. Původní Java by zůstala nedotčena a vytvořil by se nový jazyk, říkejme mu Java 2.0. Problém s Java 2.0 je v tom, že nikdo nedokáže říci, jak by měl takový jazyk vypadat a jaká kritéria by měl splňovat, aby přežil a byl úspěšný minimálně jako Java. Bez ohledu na finální rozhodnutí je pro Java platformu štěstím, že nad ní vyrostlo celé množství dalších jazyků tu s větší (Groovy) tu s menší (Scala) či dokonce žádnou podobností (Clojure), které je možné použít pro řešení specifických úkolů.

    Standardní knihovny

    Jednou z motivací, která stojí za snahou změnit jazyk, je komplexnost psaní kódu, který bude dobře škálovat na víceprocesorovém hardware, který je dnes běžně k dispozici. Bohužel vlákna a paměťový model, synchronizační primitiva to je oblast v Jave, která je příliš složitá a její plné pochopení představuje těžko proniknutelnou bariéru pro většinu programátorů včetně autora těchto řádků. Jenom málo na tom mění balík java.util.concurrent, který byl představen v Jave 5. Z programovacího jazyku Erlang a dalších se ukazuje, že je potřeba ještě vyšší úroveň abstrakce, kterou nabízí Aktory [8] , Dataflow proměnných [9] nebo Softwarová Transakční Paměť [10]. Tyto konstrukty mohou být poskytovány jako nové standardní knihovny. I další úpravy standardních knihoven se týkají zvýšení propustnosti, například v podobě asynchronní podpory k blokujícím API jako je JDBC nebo HTTP klient.

    JVM

    Úpravy JVM [11] se musí týkat podpory velkých dat. Jedná se například o efektivnější reprezentaci řetězců a dalších datových struktur [12]. Problémy představuje je i správa velkých heapu (>10GB) a chování garbage collectoru, kdy při Full GC dochází ke kompletnímu zastavení práce JVM v řádu desítek minut [13]. Kromě úpravy chování bude potřeba přidat i další vlastnosti, které se dnes drátují manipulací s byte kódem. Řeč je především continuations, zmrazení a obnovení aktuálního stack frame, které umožní efektivní psaní aplikací postavených na asynchroniích voláních.

    Z pohledu nasazení JVM do Cloudu se jedná především o podporu modulárního systému pro nasazování aplikací. Současný deployment model neumožňuje definovat moduly a jejich verze, které bude aplikace potřebovat, a vede k nulovým možnostem poskytování knihoven cílovým systémem. Typická aplikace díky tomu vypadá jako obrovský chumel JAR archivů, kde není jasné co je a není opravdu potřeba. Výsledkem jsou zvýšené paměťové nároky a pomalý start aplikací, který se díky čtení souborů ze systému podobá spíše zátěžovému testu souborového systému.

    Nejsme tu sami

    Vývoj v oblasti Javy dlouho trpěl díky přehlížení okolních trendů. Díky tomu je Enterprise verze (Java EE) v podstatě odepsanou technologií pro vývoj webových aplikací. V prostředí veřejných public cloud poskytovatelů to platí dvojnásob. Použitím technologie Java EE se vystavujete obrovským problémům při vývoji i nasazení tohoto typu aplikací. K zásadním nedostatkům patří složitost vývoje a nasazení. Bohužel většina technologií z Java EE stacku je absolutně nevhodná. Kromě ryze technických problémů jsou tu problémy v návrhu jednotlivých technologií. Většina z nich je totiž navržena stavově a s ohledem na to, že vývojář je absolutně odstíněný od prostředí ve kterém aplikace běží. S množstvím dat a požadavcích jednoduchosti vývoje se mění i architektura aplikací. Kromě návratu tlustého klienta, o kterém již byla řeč, se jedná o využívání NoSQL databází jako alternativy k databázím relačním. Je to plíživá revoluce, podobná té kterou spustil kolem roku 2007 framework Ruby On Rails, která bude ovlivňovat vývoj, technologie a knihovny v Jave. Největší chybou pro Javu a celý ekosystém by bylo, stejně jako v roce 2007, tyto trendy podcenit a nebo úplně ignorovat.

    Jednou z nejsilnějších a zároveň nejslabších stránek Javy je její fragmentace. Neexistují jeden postup a knihovny pro řešení určitých typů problémů, na druhou stranu to umožňuje dynamicky se přizpůsobit na měnící se podmínky a vybrat vždy tu nejlepší kombinaci. Doufejme, tedy že se Java bude dál "fragmentovat" pod různými vlivy, kdy ty překonané uvolní cestu těm adaptabilnějším, díky nímž budeme my vývojáři schopni přetavit inovativní myšlenky a nápady.

    Odkazy

    1. Andy Hunt, Pragmatic Thinking and Learning strana 66 - Everone has good ideas.
    2. Wikipedia definice Time To Market.
    3. Statistiky používání internetu.
    4. článek Internet 2010 in numbers.
    5. BBC new Technology předpověd firmy Cisco ohledně počtu zařízení.
    6. Wikipedia definice Client–server model.
    7. Projekt Lambda JSR-335 dedikovaný Lambda výrazům.
    8. Wikipedia definice Aktor model
    9. Wikipedia definice Dataflow proměnné
    10. Wikipedia definice Softwarová transakční paměť
    11. Úpravy JVM zaštiťuje projekt the Da Vinci Machine.
    12. Prezentace JVM goes big data vysvětluje některé z problémů velkých dat nad JVM.
    13. Článek objasňuje použití konceptu BigMemory a odstranění GC přerušení BigMemory Explained a bit...

    O autorovi

    Roman Pichlík pracuje ve společnosti GoodData, kde je zodpovědný za Java část GoodData platformy. Mimo to pořádá setkání Czech Java User Group v Praze, nahrává CZ Podcast a příležitostně publikuje pro svůj blog na adrese dagblog.cz. Kromě toho se snaží pravidelně věnovat sportu a literatuře.

           

    Hodnocení: 67 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.