Hlavní navigace

Co je špatně na Androidu?

26. 3. 2014 10:48 (aktualizováno) | Pavel Chalupa

Android je úspěšný, rozšířený, má linuxové jádro, tak co je teda špatně?

Chyba je v tom, že omezuje uživatele ohledně výdrže na baterii. Ale nemůžeme to házet na výrobce hardwaru a nedostatečnou kapacitu baterie. O tom to vůbec není. Je to problém celkového architektonického návrhu ze softwarového hlediska. Můžete mít linuxové jádro. Můžete mít aplikace v Javě (Dalviku). A pořád to není podstata problému špatné výdrže na baterie při běžném používání. Problém je úplně stejný jako s celým dnešním webem a tunami javascriptových knihoven. V Javě můžete vytvořit efektivní program nenáročný na systémové prostředky. Překlad bytekódu na procesorové instrukce je docela efektivní záležitost. Jenže když to zbastlíte tunami objektových knihoven a vůbec netušíte co se uvnitř děje, tak to je dnešní Android.

Ono by stačilo pro vývojáře připravit efektivní vývojové prostředí, které produkuje efektivní kód. Pár základních knihoven pro návrh uživatelského rozhraní podobně jako tomu bylo u 4th Dimension v roce 1993 na Macu. Tehdy k tomu stačil 16–20MHz desktop. Dneska se to bastlí v Javě pomocí neefektivních knihoven a 2GHz nestačí. Třeba na dnešním desktopu je krásným příkladem JDownloader. Máte otevřené okno, stahujete soubor, pravidelně se překresluje rychlost stahování, graf vytížení datové linky… a jéje, ono nám to vytěžuje 2GHz procesor na 50%… no kde to jsme?

Přesně tam, kde je dnešní Android. Přesně tohleto samé se děje s aplikacemi v mobilu s Androidem a my se divíme, že nám telefon s novou baterií vydrží jen jeden den na jedno nabití. Přitom by stačilo tak málo, jen dělat pořádně svoje řemeslo… jo ahá, on je dneska nedostatek programátorů, kteří by tomu do hloubky rozuměli a věděli co dělají… no on je vlastně i nedostatek těch, kteří to dneska takhle bastlí jako JDownloader… tak už tomu rozumím.

Jenže to není chyba těch programátorů, ale těch kdo jim připravil neefektivní vývojové prostředí pro tvorbu aplikací, které produkuje neefektivní bastl. Samotní programátoři při tvorbě už mnoho nezmohou. A hlavně to není chyba samotné Javy, ta je navržená dobře.

Abych jen nekritizoval a taky navrhnul řešení: předělejte vývojové prostředí pro tvorbu aplikací pro Android (Javu-Dalvik můžete nechat), připravte opravdu efektivní knihovny pro tvorbu uživatelského rozhraní a grafiky a dejte to programátorům k dispozici.

P.S. …a pobavte se při čtení wikipedie o Dalviku, jak tam píšou o efektivitě, hned první odstavec, v souvislosti s tím co jsem napsal…