Britský The Guardian nedávno uveřejnil článek, ve kterém nabádá Microsoft, aby se pro své budoucí tablety vykašlal na plnohodnotný systém a dal tam jednoduchý OS z Windows Phone. Argumentace je zhruba taková, že Apple udělal to samé a iPad je zdaleka nejpopulárnějším tabletem.
Jak je to s těmi procesory
Panu redaktorovi asi uniklo, že Microsoft právě toto už nějakou dobu dělá. Podle dosud známých informací víme, že Windows 8 na procesorech ARM nebude podporovat jiný typ aplikací než Metro (tyto aplikace poběží nad novým WinRT), a také víme, že nová verze OS pro Windows Phone bude také využívat WinRT (jen zatím nevíme, jak se bude jmenovat). Jinými slovy, pokud napíšete aplikaci pro Metro, poběží na desktopu, tabletu i telefonu bez sebemenšího zásahu do kódu (krom přízpůsobení GUI pro různou velikost displejů). Jen ji musíte přeložit pro Intel i ARM.
Zpětně se ukazuje, že systém Windows Phone 7 měl jen vyplnit mezeru mezi zoufale zastaralým předchůdcem a zcela novým WinRT ve Windows 8. Současné aplikace pro WP7 pochopitelně na novém systému poběží (snal lépe než androidí aplikace na Blackberry) a vývojářům konečně nikdo nebude diktovat, jak a v čem můžou psát své aplikace. Je příznačné, že ze všech velkých mobilních OS pouze pro WP7 nelze psát v C++, což je možná jedno pro GUI, ale ne pro složité knihovny, jejichž vývoj stál pár člověkolet.
Moderní OS, moderní vývoj
Řízený kód se všemi vymoženostmi od snadné přenositelnosti přez bajtkód až po primitivní (z hlediska programátora) správu paměti je možná vhodný pro serverové aplikace, ovšem už méně pro mobilní zařízení. Byť dnešní slušné tablety už vesměs mají 1GB RAM, výkonnou grafiku a dvoujádrový procesor ARMv7 je pekelně rychlý (i pro většinu výpočetně náročnějších algoritmů), stále je ale nutné kód (OS i aplikací) psát s ohledem na cílové zařízení, což v první řadě znamená brát ohled na výdrž baterie. První to pochopil Apple, nicméně i vyjádření S. Sinofského na jeho blogu se nesou ve stejném duchu: zpět k nativnímu kódu, minimalizovat spotřebu RAM (čím více RAM, tím větší spotřeba energie), omezit multitasking.
Klíčem k vývoji pro Windows (Phone) 8 je nová verze C++ – C++11 (dříve C++0X). Nebyl by to Microsoft, aby si ho nepřiohnul k obrazu svému (ano, mám na mysli C++/CX), to je ovšem jen trošku modernější (a implementačně podařený) klon Objective-C a jeho rozsáhlých knihoven (Cocoa a spol.).
Úspěch?
O tom, zda bude Windows 8, ať už na tabletech či telefonech, komerčním úspěchem, rozhodne nikoliv technologická vyspělost systému, ale – ne, překvapení se nekoná – prodejní strategie. Pokud pominu vizuální vzhled Metra (ten nijak nehodnotím, je to subjektivní záležitost), jde o to mít kvalitní hardware za rozumnou cenu. Microsoft si se svou pověstí a historií těžko může dovolit prodávat průměrný tablet za 500 dolarů nebo dokonce ještě více. Dobrý hardware (něco à la Playbook, tedy dvoujádro, 1GB RAM, kvalitní zpracování) s Windows 8 za cenu tabletu Amazon Fire by si svůj trh snad najít mohl.
Ha, presne toto jsem predvidal... ono oznaceni Windows 8 jak pro x86 tak pro ARM zpusobi to, ze BFU to budou videt jako plnohodnotnou nahradu, ktera akorat bezi na jine architekture. Dle meho je to od pocatku umyslne a bude toho chtit vyuzit marketing. BFU znaji a pouzivaji na svych pocitach Windows, kdyz tedy budou vybirat nejaky tablet, je vetsi sance, ze sahnou po Windows tabletu.
To je v prvom rade problem dnesnych "vyvojarov" odrastenych na Jave a PHPcku. Vobec nevedia co je to optimalizacia, pouzivaju obrie a nenazrane frameworky a netrapi ich ze hello word rozdelene do 10tich tried im zozerie 1 GB pamete a aplikacia sa spusta 5 minut. Tito vyvojari nikdy neprogramovali v ASM, C++ ci Pascale, nevedia ako funguje pocitac.. Nevedia co su prerusenia, porty atd. Kde su tie casy ked mi stacilo 32 MB RAM, 166MHz procesor a vsetky aplikacie boli napriek tomu svizne, dnes mam ramky 8 GB 4jadrovy procesor a stale je to malo.
> Kde su tie casy ked mi stacilo 32 MB RAM, 166MHz procesor a vsetky aplikacie
> boli napriek tomu svizne, dnes mam ramky 8 GB 4jadrovy procesor a stale je to
> malo.
hlavně tehdy i teď na tom většina uživatelů dělá pořád totéž - sem tam dokument ve wordu nebo excelu, projít pár webových stránek a napsat několik mailů. snad jen ty videa v divx/h264 nebo 10-20mpix fotky by na tom nejely :)
S nepoužitelností virtuálních strojů bych to tak špatně neviděl. Jenom prostě je potřeba to udělat rozumně. Když se podívám na J2ME (která je díky svojí zastaralosti už oprávněně mrtvá), tak tam žádné výkonnostní problémy a problémy se spotřebou nebyli. Jenom je potřeba jasně stanovit limity takového řešení a implementovat to na co nejnižší úrovni. Např. ukázkou jak se to dělat nemá byl .NET CF, který byl prakticky nepoužitelný na víc než psaní GUI.
Co jsem pochopil pri navsteve TechDays, tak se vyvojar nebude muset starat o platformu (x86 nebo arm), to by mel vyresit windows store, pres ktery pujde aplikace instalovat. Behem te konference take rikali, ze jeste neni jasne, v jake forme windows budou pro ARM platformu, jestli cely desktop, nebo jen metro, tak nevim, odkud informace berete.
[3] Takový časy tu nikdy nebyly. Ještě stále mi tu běží pentium pro na 200MHz, dokonce se 128MB RAM a svižné to tedy není ani trochu. Obzvlášť, když se na tom má něco nahrát z toho stařičkého 8GB disku. Nene, to jsou jenom vaše představy, že kdysi to bylo svižnější. Je to přesně naopak.
8. Na Pentiu 200 mi bezali Win98 a veru dnesne Win7 su na prvy pohlad rychlejsie. Ale napriklad Win 3.1 na tom lietali ako dive...
S tym WinRt mi je to akosi nejasne, predpokladql by som, ze je to nejaka nadstavba, ktora bezi rovnako na Inteli ako aj Arm.Cize nebude to treba prekladat. Na rozdiel od aplikacii pre Desktop .
Na Arm asi Desktop bude tiez, len tam nepojdu aplikacie prelozene pre x86/64. I ked taky Notepad MS iste v systeme doda, v zakladnom baliku.Aspon potom by zmienka o Office pre Arm (nie WinRt) nemala zmysel.
O tom, že s managed jazyky by to efektivně nešlo už dost pochybuji, kromě J2ME zmíněném v předchozím příspěvku pro C# dnes MonoTouch a MonoDroid. Kdyby MS chtěl, tak může klidně udělat C# tak, aby se na ARM kompiloval rovnou do nativního kódu. Miguel a jeho parta to umí - http://support.xamarin.com/customer/portal/topics/60472-ios-faq/articles, podle tohoto z toho leze nativní binárka a nevím.
C# Mono jako mobilní platforma je velmi oblíbené - http://blog.xamarin.com/2012/03/21/vision-mobile/
@12 To je furt dokola |-(
Šlo by to, ale hůř. I vysoce optimalizovaný iOS pořád na pozadí zabíjí aplikace, aby uvolnil paměť. Kdyby tam měli C# nebo Javu (nebo ObjC s GC, jako má OS X), tak by byla potřeba vraždit ještě mnohem větší. I zabití aplikace něco stojí, taková aplikace dostane zprávu a čeká se, než po sobě sama uklidí a uloží svůj stav. Jen neresponsibilní aplikace systém killne natvrdo. Výsledkem jsou prodlevy při alokaci paměti.
Ještě že MS nemá české vývojáře...
P.S. Microsoft JIT pro ARM má.
@13 To je furt dokola |-(
Vycházíš s předpokladu, že virtuální stroj má výrazně větší paměťové nároky a že programátoři jsou bezchybní. To ale obecně není pravda. V případě mobilu je nutné aby byl virtuální stroj optimalizován pro konkrétní zařízení a to se např. s J2ME dělo (v případě .NET CF ne). Virtuální stroj není jenom JVM pro J2SE. Systémy s GC se zavádějí právě kvůli tomu, že memory leaky jsou mezi programátory častý problém.
Tady spíš vidím problém v tom, že v případě Windows se na optimalizacích pro konkrétní zařízení musí domluvit výrobce s MS. Technicky je to dávno zvládnuté.
(...) pokud napíšete aplikaci pro Metro, poběží na desktopu, tabletu i telefonu bez sebemenšího zásahu do kódu. <> (krom přízpůsobení GUI pro různou velikost displejů). Jen ji musíte přeložit pro Intel i ARM.
Hehehe:-)
Jinak kompilované jazyky mají velký výkonnostní náskok před interpretovanými (vcetne JIT). To se projeví u větších projektů, benchmarky běhaj na obojím podobně... A s RAMkou to je jeste horsi. +1 pro Micro$oft za kompilaci.
Mě by zajímalo, pokud bych měl program v C++ a Jave a spustil ho opakovaně např. 1000, kolik by proběhlo strojových instrukcí, případně read operací z disku, případně kolikrát by program běžel než by se vybila baterie. Pokud někdo ví, jak dobře C++ umí překládat do strojového kódu, tak Java i kdyby měla Just In Time kompilátor, tak musí mít větší režii. Nechápu, jak se taková zhovadilost jako je Java mohla prosadit. Teď teprve přijde na lámání chleba a např. Microsoft bude preferovat C++ a HTML 5, vše ostatní bude postupně umrtvovat, protože na úsporných zařízeních musí šetřit baterii. Windows Vista vyvíjeli 2 roky v C#, než to všechno zahodili a vrátili se k C/C++.
Kilo Mega Giga Tera - nejak to roste. Ale OS bootuje porad stejne dlouho a zere a zere a zere. Nasel by se tu nekde nekdo, kdo by si usmyslil s tim zamavat? Myslim tim udelat novy rychly OS (treba pomoci starych osvedcenych veci), ktery neni sam o sobe narocny (nabootuje rychle), ale zvladne i ty dnesni videa i ty dnesni filmy a narocny #D animacni aplikace apod?
BTW - ten prdola, co vymyslel JAVA, pry uz pracuje na novym jazyku. Jsem zvedav, jestli ta JAVA, co se ted ucim na CVUT, mi pak bude na "H O rimska petka N a O" ;)
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 37 774×
Přečteno 26 420×
Přečteno 24 932×
Přečteno 21 278×
Přečteno 18 932×