budouci vyvoj Androidu rubrika: Programování: Android

7 yedpodtrzitko
položil/-a 17.1.2014

Vyvoj okolo Androidu uz moc nesleduju, ale zajimal by me vas nazor na budouci vyvoj Androidu po vyvojarske strance.
Okolo soucasne verze byly tahanice s Oraclem, zda to je/neni Java a zda neporusuje nejake patenty.
Myslite si, ze i do budoucna se bude vyvijet primarne v Jave nebo se bude Google snazit osamostatnit a presunout se pouze k vecem, ktere ma plne pod svoji kontrolu (tj. pro vyvoj se bude pouzivat treba Go)?

odkaz
8 v6ak
odpověděl/-a 17.1.2014

Humbuk kolem patentů celkem utichl. Mám pocit, že nějaké rozhodnutí ve prospěch Googlu padlo, nevím, jestli to má nějaké pokračování. Mimochodem, už předem Headius odhadoval, že z toho sporu asi moc nebude a že to prý Oracle spíše jen zkoušel.

Druhá věc je, že kdyby Google prohrál, tak není moc v pozici, kdy by mohl zaříznout zpětnou kompatibilitu. On by technicky mohl, ale dost by ho to asi bolelo.

Dále, v KitKatu k Dalviku přibyl (zatím jen experimentální) ART. Jde o alternativní VM, která je založena na AOT - aplikace se celá zkompiluje do nativního kódu před prvním spuštěním. Kdyby chtěl Google vývoj v Javě zaříznout (nebo aspoň hodit na druhou kolej), do tohoto by nejspíš neinvestoval.

V neposlední řadě jsem nepostřehl nic, čím by to Google chtěl nahradit. Ano, je tu sice NDK, ale už na první pohled nejde o něco, co by mělo zcela nahradit Javu. Ostatně tento odstavec z hlavní stránky o NDK je dost výmluvný:
Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++.

Co by se teoreticky mohlo stát, je, že by Google nabídnul jiný jazyk, který by se kompiloval do stejného (kompatibilního) bytecode. Používal nejspíš by stejné API (možná by bylo mírně vyleštěné pro potřeby toho jazyka) a vzájemné volání Javového kódu a kódu toho nového jazyka by bylo více či méně seamless. Ačkoli nečekám, že se toto stane v dohledné době, nebylo by to takové sci-fi: Již dnes může člověk vyvíjet pro Android (nebo pro Javu) v jiném jazyce, který pak zkompiluje do stejného formátu bytecode. Například ve Scale, kterou lze zkompilovat do class souborů a v případě Androidu je následně konvertovat do dex. Google by oproti současnému stavu kromě přidání jednoho nového jazyka jej mohl ještě navíc propagovat, ale to je tak vše. Nečekám ale, že by chtěl házet klacky pod nohy Javistům.

Ono se mimochodem nedá říct, že by Googlu někdo moc kecal do toho, jak vypadá vývoj pro Android.

  • Java se vyvíjí pomalu a konzervativně, Oracle mu do jazyka moc nekecá. A kdyby vývoj Javy Googlu vadil, může nabídnout jiný jazyk, který by se kompiloval do stejného bytecode.
  • Engine a standardní knihovnu si Google píše/přejímá sám. Přebral nějaké standardní API od Oracle (například java.lang.String), ale třeba věci jako UI si řeší sám.

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.