Java na platformě Macintosh - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Hry

Java na platformě Macintosh

Java

1. července 2011, 07.00 | Vyhlášením firmy Apple o zastavení podpory Javy okamžitě vyvstaly pochybnosti o jejím dalším osudu na této platformě. Rozhodl se Apple pro bojkot podobně jako to udělal například s Flashem? Jak se vlastně daří Javě v jablečném sadu? Pokusme se na to podívat trochu blíže.

Začátky Javy Když v roce 1996 Apple po koupi firmy Next vyrukoval s první verzí veřejné betaverze operačního systému MacOSX, nebyla jeho situace jednoduchá. Lidé moc nevěřili, že nový systém bude schopen konkurovat Windows, a nezbývalo, než využít všech způsobů, jak je začít přesvědčovat.

Jedním z těchto způsobů byl pokus učinit novou platformu maximálně atraktivní pro javové vývojáře a samozřejmě také jejich uživatele. Jak je u Apple zvykem, nespokojili se s prohlášením, ale chtěli být opravdu nejlepší. Proto se snažili Javu v rámci každé verze maximálně uzpůsobit operačnímu systému tak, aby její běh byl co možná nejladnější.

Záměr to byl pěkný. Bohužel jsme se postupem času stále častěji dostávali ke zpoždění v dodávce aktualizací, které v případě OSX zajišťoval samotný Apple. Jak to tedy konkrétně vypadá na platformě Macintosh z hlediska použití Javy? Lze ji pokládat za plnohodnotnou ve srovnání s Linuxem nebo Windows?

Co je to Java

Java je objektově orientovaný jazyk, který vznikl v roce 1995 pod vedením Jamese Goslinga a inspirovaný jazyky C a C++. Postupem času se z ní stala platforma, zastřešující velmi rozsáhlou škálu technologií a umožňující vývoj pro široké spektrum koncových zařízení. Škála začíná mobilními telefony, zde se využívá tzv. Java Micro Edition (Java ME), pokračuje přes uživatelské desktopy – Java Standard Edition (Java SE) a končí u podnikových aplikací – Java Enterprise Edition (Java EE).

Spolu s jazykem bylo vytvořeno také virtuální běhové prostředí (JVM), které umí interpretovat kód, vytvořený jeho překladem. Důležitý je fakt, že Java je interpretovaný jazyk, což znamená, že se nejprve překládá do "mezikódu" a teprve poté se spouští.

Propagačním heslem se stalo "Write once, run anywhere" neboli "Napiš jednou, poběží všude", což byla labutí píseň pro všechny, kteří investují do vývoje software. Myšlenkou se "inspiroval" také Microsoft, jehož C# až nápadně připomíná Javu.

Realita však nebyla tak zářivá. Uživatelská přívětivost nebyla nejlepší, každý ihned poznal, o jakou aplikaci jde. Java se také začala potýkat se stagnací a licenčními problémy. Obrat k lepšímu nastal zavedením komunitního vývojového modelu, který umožňuje zlepšovat jazyk za účasti softwarových gigantů. Další pozitivní obrat je patrný poté, co byla Java v roce 2006 licencována pod GPL.

Enterprise Java

Termínem "Enterprise Java" mám nyní na mysli aplikační servery, které realizují Java Enterprise Edition. Ta je popsána formou rozhraní, jež se stala dohodnutými standardy. Tato rozhraní pak celá řada výrobců implementuje. Poté jsou kompletována do formy aplikačních serverů. Těch existuje celá řada. Tento přístup se ukázal jako velmi flexibilní a zásadně se zasloužil o rozšíření Javy v tomto sektoru.

Na svém stroji typu MacbookPro3,1 jsem provozoval aplikačních serverů několik. Jako příklady mohu uvést JBoss 5.1, JBoss 6.0, Weblogic 10.3 nebo Glassfish 2.1. Všechny pracovaly bez problémů. Jediný problém, kterého jsem si všiml, bylo následující varování u staršího serveru JBoss 5.1.

13:01:50,957 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path Toto varování svědčí o absenci nativní knihovny Apache Portable Runtime, která je oficiálně dle dokumentace dostupná pouze pro Linux či Windows, což ovšem neznamená, že ji nelze přeložit i pro OSX. Pouze se tím nikdo nezabýval. Zatím. Na vlastním běhu aplikačního serveru se to ale znatelně neprojevilo. Výkon všech serverů byl subjektivně stejný jako v Linuxu.

Pokud tedy někdo využíváte OSX jako server, nasadit tento druh aplikace není žádný problém.

Ze života hmyzu vývojářského

Jako vývojář, který nepoužívá platformu Windows, si bez některých nástrojů svůj každodenní chleba nedovedu dost dobře představit. Jsou to de facto ilustrace multiplatformovosti Javy samotné. Začněme třeba vývojovými prostředími.

Rád jsem používal Netbeans, tradiční a etablovaný nástroj s dlouhou historií. Používá se na Macu bez problémů, chová se svižně a do nativního prostředí se dle mého názoru začlenil bez kompromisů. Lze současně využívat více verzí a je velká škoda, že jeho vývoj pod křídly Oracle poněkud stagnuje a další osud je možná nahnutý.

Dalším nástrojem, jenž jsem nucen používat, je Eclipse. Jeho primárně multiplatformní a víceúčelové nasazení je dle mého názoru vidět. Projevuje se delšími odezvami, takže se musíme obrnit větší trpělivostí. Na druhou stranu se na jeho vývoji podílí již zavedená komunita lidí a firem, takže doufejme, že nezajde na úbytě. Na Macu, pokud má dostatek paměti, se chová snesitelně a nedá moc práce si na něj zvyknout.

Aplikační programy

Na pracovním stroji mám ještě další aplikace, které jsou napsány v Javě. Kupříkladu pro práci s XML používám nástroj Oxygen od firmy Syncro Soft. Moc jsem si ho oblíbil a nyní ho mám radši než XML Spy, který jsem měl dříve. Je rychlý a podle mne představuje příklad, jak by správná Java aplikace měla vypadat.

Pro práci s databázemi mám SQL Developer od firmy Oracle. Je zadarmo a lze jej použít i s jinými databázemi. Využívá se často, ačkoliv jeho provedení není z mého pohledu úplně ideální. Nemohu ale upřít, že ve verzi 3 se celková svižnost pod Macem výrazně zlepšila. Záleží na tvůrcích aplikace.

Vuze (dříve Azureus) používám jako torrentového klienta. Jistě, existuje množství nativních náhrad, ale zvykl jsem si na něj. Podle mě je jeho vnitřní sofistikovanost na mnohem vyšší úrovni než u jiných klientů.

Určitě by se dalo pokračovat, ale snad to postačí pro ilustraci tvrzení, že Java má na desktopu své místo.

Změna kurzu?

Zejména díky masovému úspěchu iPodů a iPhonů přestala platforma Mac být solitérem zdobícím designérská studia a přehoupla se do etablované fáze, kdy má dostatečný počet uživatelů. Nemusí už nikomu ukazovat svá pozitiva a žije vlastním životem. Kampaň "Get a Mac" již není třeba a Apple si může začít budovat ambiciózní budoucnost založenou na vlastních technologiích. Proto dochází k odřezávání všeho přebytečného. Java už je bohužel z hlediska Apple přebytečná. Neznamená to ale, že by proti ní nějak aktivně vystupoval. Pouze volbu přenechá na uživateli.

Jsou Java aplikace lepší?

Jedním z nejčastěji zmiňovaných kladů Java aplikací je možnost běhu na různých platformách bez nutnosti úpravy kódu. Tento základní atribut je ale velmi náročný na realizaci. Jak je toho docíleno?

Na rozdíl od nativních programů, které lze spouštět přímo v operačním systému, programy napsané v Javě používají pro svůj běh prostředí JVM (Java Virtual Machine). Funguje to tak, že každý program si nejprve spustí své JVM, které teprve umí vykonávat jeho bytecode neboli jej - laicky řečeno - spustit. Pokud budeme mít k dispozici funkční JVM pro všechny operační systémy, můžeme prohlásit, že Java aplikace poběží všude. JVM je tedy oním klíčem, se kterým Java stojí i padá.

Má to pro nás nějaký důsledek? Jako uživatelé máme možnost JVM do značné míry konfigurovat. Obvykle je nastavení JVM dodáno od výrobce s vlastním programem, ale máme možnost jej pozměnit. Tradičně se totiž Java aplikace spouští pomocí shellového skriptu, který JVM nastaví, a poté přejde ke spuštění vlastního programu.

Vlastní konfigurace JVM zpravidla bývá dle pravidel slušnosti oddělena v separátním souboru, takže úprava není nic obtížného. Kupříkladu Eclipse ji má v souboru eclipse.ini, ve kterém se nachází důležité parametry. Tyto parametry jsou univerzální, určené verzí JVM. Mezi ty, které se vyplatí znát, patří následující:

Parametr JVM  Význam 
-Xmx1024m  Určuje maximální velikost paměťové haldy JVM. Pokud máte dost paměti, přidejte právě sem. Zde se nastavuje 1024 MB. 
-Xms300m  Nastavuje počáteční velikost paměťové haldy JVM. Pokud neznáte jeho význam, nevyplatí se nastavovat. Zde se nastavuje 300 MB. 
-XX:MaxPermSize=512m  Nastavuje velikost paměťové oblasti tzv. Permanent Generation, kde jsou ukládány zejména interní reprezentace javových tříd. Zde se nastavuje 512 MB 

Celá problematika je velmi složitá, ale pro základní optimalizaci vystačíme s parametry uvedenými v tabulce – viz výše.

Bezpečnost

Je hodně důležitá a vyplatí se jí věnovat patřičnou pozornost. To je obehraná písnička. Tvůrci operačních systémů se snaží učinit ji bezkompromisní, což v praxi znamená nezávislou na vývojářích. Používají k tomu více způsobů, jedním z nich je například ASLR (Address Space Layout Randomization). Ve zkratce je to metoda, která má podstatnou měrou ztížit život nekalým živlům tím, že náhodně umísťuje různé části kódu do paměti tak, aby bylo obtížné je najít a zneužít. U Javy je to ale, zejména kvůli JVM, velmi problematické, většinou se proto na ASLR rezignuje, za což bývají tvůrci systémů odborníky kritizováni.

Na druhou stranu nebývá Java terčem útoků příliš často. Svědčí o tom například množství nalezených zranitelností, jak je publikuje firma Symantec ve své pravidelné zprávě "Global Security Threat Report ", kde se uvádí, že v roce 2008 bylo nalezeno v Java SE 45 zranitelností a v roce 2009 jich bylo 84.

Java představuje každopádně svůj vlastní svět, který nemají výrobci operačních systémů plně pod kontrolou. Možná proto se pod OSX u některých Java aplikací stále setkáváme s otravným dotazem na povolení příchozí komunikace.

Co můžeme dál čekat

Apple ve lví verzi OSX přestává s přebalováním Javy. Neznamená to ale její konec. Ba naopak. O distribuci aktualizací a záplat se bude starat samotný Oracle, který má nejlepší důvody udržet a posílit její reputaci, která bohužel v průběhu času utrpěla.

Subjektivně hodnotím použití Javy v OSX jako bezproblémové jak z hlediska desktopových aplikací, tak pro použití v aplikačních serverech. GUI dospělo a takřka jej nelze rozpoznat od aplikací nativních. Pokud máte dostatečné množství paměti, pak se současnými procesory nelze pozorovat jakékoliv problémy s výkonem.

Zanedlouho se snad dočkáme nové verze Javy a také nové verze OSX. Nezbývá než vyčkat, jak se osvědčí Oracle v roli dodavatele aktualizací a garanta jejího rozvoje. Doufejme, že další osud Javy bude pozitivní a její globální reputace se z podnikového prostředí rozšíří i do dalších sfér.

Tématické zařazení:

 » Rubriky  » Zábava  

 » Rubriky  » Agregator  

 » Rubriky  » Hry  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: