Į pradžią > Mokslas, Technologijos, Telefonai, Verslas > 5 mėnesiai su Nokia N8, arba kodėl N8 pirkėjai išlošė labiausiai! Bei dar viena C# pergalė prieš C++

5 mėnesiai su Nokia N8, arba kodėl N8 pirkėjai išlošė labiausiai! Bei dar viena C# pergalė prieš C++

Visi stūmė ant Symbian’o ^3 ir Nokia N8, neva jį turėjo pakeisti stebuklingosios Meego ir Maemo Nokia operacinės sistemos su naujuoju Nokia N900. Iš tiesų, galbūt Maemo/Meego ir turėjo truputi daugiau galimybių, bet šis daiktas iš esmės bet kuriuo atveju neturėjo superinės perspektyvos globaliu atžvilgiu.

Paklausite - kodėl neturėjo?
Atsakymas paprastas – dėl tos pačios priežasties, kodėl Microsoft metė C++/CLI  (Common Language Infrastructure) ir CLR reikalą, ir nusprendė sukurti C# programavimo kalbą. Kuri iš tiesų yra tai ką norėjo padaryti, bet iki šiol dar nepadarė SUN’as su savo Java programavimo, kalba, kartu įtraukiant geriausias C++ savybes, bei įtraukiant nemažą netipizuotų programavimo kalbų, tokių kaip Python ar Php savybių. O ką bekalbėti apie tokius daiktus kaip IronPython, SilverLight ir galų gale ASP.NET (čia QT su savo web galimybėmis yra aiškiai tvarkomas į vienus vartus kad ir kokia operacinė bebūtų ant to QT C++ ). Negana to ką bekalbėti apie kodo rašymo spartą – C++ VS C#, pirmiesiems reikia galvoti apie visokius headerius, neduok dieve nesukurti rekursijos, kai vienas į kitą kreipiasi, nes atsiras begalės problemų (tiesa, Nokia su savo QT C++ šią problemą bandė spręsti naudojant Signals ir Slots, ir tai iš tiesų padeda bent jau kažkokį apps’ą parašyti, tačiau nesprendžia reikalo iš esmės).

Taigi rezultate turime Nokia ir Windows Mobile 6.5, kurią Microsoft’as pakeičia Windows Phone 7 kultas, kuri turėtų būti naujasis stebuklas ant C#’o. Tiesa pagal dabartinius feature’sus, nepaisant to kad MS C#’u koduoti žymiai patogiau, lengviau, greičiau ir maloniau, nei  QT C++, o Visual Studio 2010  >>>>>>> Nokia QT 4.7, bet pačio
Symbian^3 VS  Windows Phone 7 palyginimas 2011 metų vasariui buvo toks:

* Greitis panašus

* Resursų sunaudojimas irgi panašus (Android’ui reikia 2 branduolių ir 1,3 Ghz norint išgauti maksimumą, Symbian’ui užtenka vos 1 branduolio ir 600 Mhz, kas kartu reiškia ~2 kartus mažesnius poreikius iš telefono baterijos).

* Windows Phone 7 šiuo metu nepalaiko Multi-tasking’o, Copy-Paste, background services ir kt,. o Symbian^3 visą tai seniausiai palaiko. Nemažai iš šių trūkumų turėtų būti pašalinta iš WP7 šiuo metų pabaigai, kuomet turėtų pasirodyti pirmieji Nokia WP7 telefonai.

—-

Symbian^3 operacinei sistemai, Nokia, deja, tesugebėjo išleisti kol kas tik 4 telefonus: Nokia N8, Nokia C6-01, Nokia E7-00 and Nokia C7-00 .

Naujasis Nokia N9 turėjo būti pirmasis tobulusios MeeGo OS atstovas, su pašalintais visais N8 trūkumais, bei tomis pačiomis ir geresnėmis tech. specifikacijomis kaip ir N8, bet visas šitas reikalas tapo discontinued po to kai Nokia šių metų vasarį paskelbė pereinanti prie Windows Mobile 7 ir atsisako savo operacinių kūrimo, kartu atleidžia tūkstančius produktų, pereina iš Open-Source į Closed-Source, ir gauna ribotą galimybę šiek tiek modifikuoti Windows Mobile 7 OS savo kompanijos ribose Suomijoje.

Taigi visi tie, kas laukė Nokia N9 taip ir liko nieko nepešę, ir tikėdamiesi kad įsigyti Nokia N8 neverta nes greitai pasirodys Nokia N900 liko išvis be išmaniojo telefono :) .

Netgi buvo nuotraukos pasirodžiusios internete naujojo Nokia N9:

Nokia N9

Nokia N9

 Iškart galime jį palygti su Nokia N8:

Nokia N8 black

Nokia N8

Kas dar geriau Symbian’ui ir Nokia N8 šiuo atžvilgiu yra tai, kad, kadangi Symbian^3 operacinė išleista ir produktai su šia operacinė taip pat, tai Nokia paliko nemažai žmonių prie šios OS support’o, t.y. kartu ir bugfix’ai, update’ai šiai OS ir t.t., o Maemo developeriai buvo arba gražinti prie Symbian’o, arba išvis atleisti, arba perkelti į kitas pareigas. :) ).

Neaišku kaip yra su QT QML projektu, kas yra kone Javascript+CSS geriausios savybės, tik kad juo rašomos programos skirtos Symbian^3. Čia apps’as rašomas ~10 kartų greičiau nei su originaliu QT C++. Tik šis dalykas dar neturi finalinės versijos, tad ne viską galima su juo sukurti. Jeigu QML’ą Nokia išbaiktų, tai ir appsų kūrimas, skirtas Symbian^3 telefonams taptų begalo paprastas. Iš tiesų tai QML’as yra Framework’as ant QT C++, kaip QT C++ yra framework’as ant orginalaus ISO C++. Ir beje QML išties nerealus dalykas, man beje labiausiai patikęs iš Nokia sukurtų programavimo produktų.

Taigi iš ‘greit žūsiančio’ produkto Nokia N8 ir Symbian^3 rodos tapo ilgalaikiu ir supportinamu produktu, ir šita situacija nuo Nokia N8 paskelbimo 2010 pavasarį iki 2011 pabaigos panašu kad ir išliks :) ). Na o Nokia N8 atgyvens normalų bent 1,5 metų gyvenimą, ir turint omenyje rinkos ir technologijų spartos tendencijas, bus pakeista laiku, o ne anksčiau laiko :) . O visi Nokia N8 savininkai prisimins turėję puikų telefoną.

Ir apskritai, aš nesupratau daugelio stumimo ant Symbian^3 ir Nokia N8 argumentų. Taip, apps’us rašyti išties yra sunkiau nei Android’ui(Google version of Java) ar WP7 (Microsoft’s C#), tačiau nepasant to Symbian^3 operacinė išties buvo funkcionali:
A-GPS, WLAN 802.11n palaikymas, HD video palaikymas, Flash palaikymas, FM radijas, Multi-tasking’as, Background-services, Multi-touch ir t.t.

O pats Nokia N8 mano nuomone apskritai buvo geriausias telefonas rinkoje pagal mano poreikus:
manieji koncentruojasi į kamerą, diktofoną, fotoaparatą, USB 2.0/3.0 ir HDMI jungtis, GPS palaikymą, WIFI 802.11n prieigos buvimą, FLASH palaikymą, radiją ir multitaskingą.
Visą tai Nokia N8 turėjo, negana to ir 16GB vidinę atmintį, kas irgi darė praktiškai visus Android telefonus, o dėl perdavimo tarp PC<->Nokia N8 per mini USB spartos, man iki šiol neprireikė įsidėti microSDHC 32GB flash atminties kortelės, kurią turėjo palaikyti šis telefonas, sumoje leidžiantis turėti visus 48GB :) )).

Įdomumo dėlei pasakysiu kad į Nokia N8 vidinius 16GB telpa ~2 valandos video klipas HD kokybe MP4 HD formatu @25fps filmuotu šiuo telefonu.

Neaišku kaip bus su MicroSDXC (SD eXtreme Capacity) palaikymu Nokia N8, kas yra ‘upcoming’ standartas, apimsiantis teorinę 64GB->2TB microSD kortelių gamą(kolkas SDXC serijoje yra žinomi tik du modeliai 64GB ir 128GB, ir ‘microSD’ grupėje jie dar kol kas nepreinami, tą galima padaryti tik nesumažiname SD dydyje). Tačiau net jeigu Nokia N8 to ir nepalaikytų, manau per metus gerokai atpigsiančios 32GB microSDHC kortelės man pilnai manau užteks iki šio telefono, kaip pagrindinio mano aparato rankose, vartojimo perleidimo kitam aparatui. O šis daiktas manau dar metus užsibus pas mane, nes KAMEROFONU srityje Nokia N8 padarė progresą TIK VAIZDO FILMAVIME lyginant su mano turėją EX’serija – Samsung SGH-G800 ir SGH-G810 (Symbian S60V5, 5Mpix FOTO, 3x optinis artinimas, MAKRO režimas, vaizdų atpažinimas, vaizdo stabilizavimas ir VGA (640×480) filmavimas 30fps greičiu, kas irgi nebuvo taip jau prastai).

Beje dar vienas idomus faktas – su savo 3 kartu didesniu lešiu, ir rimčiau atrodančia optika Samsung SGH G810 nuotraukos 5Mpix sveria 2,2 -> 2.9MB, tuo tarpu Nokia N8, su savo 12Mpix vaizdais nuotraukas tepagamina vos 1.6-2.2MB. Visai kitas reikalas su video filmavimu, čia jau įdomiau – 8 minutės judančio vaizdo filmavimo vidutiniškai užima ~1GB vietos telefone :) .

Ir nenuostabu, HD filmavimo kokybės iš Nokia reikėtų pasimokyti daugumai kompanijų, tame tarp ir Samsung, būsimiems Apple produktams, Sony Ericsson ir kitiems.

Dar kažkokie gandai buvo kad telefonas laggina ir kimba. Tai pasakysiu – aš asmeniškai jokio lago nejaudčiau, telefoną perkroviau per pusmetį gal kokius 6 kartus, kuomet nenorėjo užsidaryti atidaryti apps’ai, kas neva laikoma kibimu. Galbūt kartais jis truputi ilgiau sekunde ar pora atidarinėja kokį tai dalyką, tarkim kamerą ar GPS, tačiau kad tai ‘lėtas’, ‘lagginantis’ daiktas to nepasakyčiau.

Apie ‘bateriją laikančią 1 dieną’ – tai irgi tik gandas, telefoną aš kraunu vidutiniškai kas 4-5 dienas. Ir per pusmetį niekas nepasikeitė.

Vienintelis kvailesnis dalykas yra tai, kad jeigu ekrane yra vienintelis teksto laukelis, jums visvien pirmiausiai reikės ant jo bakstelėti kad galėtumėte įvedinėti tekstą.

Na o bene geriausias dalykas yra šio telefono kaina. Vos jam pasirodžius, šį telefoną buvo įmanoma įsigyti už maždaug 1250 litų, salonuose kaina buvo 1600-1700Lt, kas yra žymiai pigiau nei Apple iPhone4, ar Samsung Galaxy S + 16GB microSDHC kortelė. Abu pastarieji variantai tuo metu būtų atsieję po bemaž 3000 lt ir abu telefonai buvo smarkiai prastesni mano poreikių atžvilgiu – tai vienam ar kitam trūko WIFI 802.11n standarto, tai HD filmavimo, tai 12Mpix kameros.

Dar beje, teko pabuvoti stažuotėj ir konferencijoje/seminare kompanijoje Nokia, tai nuo šiol turiu naują kokybės standartą kaip turėtų būti organizuojamos stažuotės, konferencijos, seminarai… Lietuvos visiems AB’ams labai labai labai toki iki to. Pradedant tuo kad už viską sumoka Nokia – pietus, pusryčius, vakarienę prabangiame restorame, aprūpina reikiama įranga – kiekvienam dalyviui seminare nors ir po 2, kad ir Nokia N8 telefonus visoms konferencijų dienoms, svarbu bele prieš išvažiuojant atiduoti, tiek iš Nokia apmokamų tarptautinių kelionių, tie padoriais pranešimų skaitytojams, tiek normalia praktika, su visu softu etc. Na vnž, net ir mūsų Omniteliui, Bitėj ar kitiems stambiems AB’ams Lietuvoje labai toli iki to, ir man tiesa sakant dabar jau labai booring būtų šių kompanijų seminaruose būti dar kartą. :D

  1. Xamas
    2011.03.26 14:46 | #1

    11 tūkstančių ženklų – parašiau iš peties :D DD.

  2. Vardas (būtinas)
    2011.04.11 0:20 | #2

    Problema su header’iais sprendžiama naudojant atitinkamus #ifdef’us ir extern raktažodį (jeigu reikia). Aišku, nenaudoti header’ių yra ptogiau. Signals ir Slots sprendžia ne visai tokią problemą.

    Neaišku ką tu turi omenyje “išgauti maksimumą”. Būtų įdomu sužinoti apie kokį 2 branduolių 1,3Ghz procesorių eina šneka. Dabar praktiškai visi Android telefonai naudoja 600Mhz-1,2Ghz procesorius. Beje, esant dideliam CPU poreikiui galima rašyti native programas su NDK.

    Tuo tarpu Windows Phone 7 reikalavimuose įrašytas minimum 1Ghz procesorius. WP7 NDK neturi.

  3. 2011.07.04 20:04 | #3

    “Negana to ką bekalbėti apie kodo rašymo spartą – C++ VS C#, pirmiesiems reikia galvoti apie visokius headerius, neduok dieve nesukurti rekursijos, kai vienas į kitą kreipiasi, nes atsiras begalės problemų”

    Jeigu tu čia apie steko perpildymo problemą ant C++, kai rekursinė funkcija yra iškviečiama daugiau kartų nei leidžia steko dydis. Tai… nėra viskas taip blogai su šia problema ant C++. Viskas priklauso nuo:

    1) Ar įmanoma rekursiją parašyti kaip uodeginę rekursiją:
    http://lt.wikipedia.org/wiki/Uodegin%C4%97_rekursija

    2) Ar C++ kompiliatorius palaiko uodeginės rekursijos optimizavimą.
    (pvz. Microsoft VC++ palaiko – reikia tik uždėti kompiliatoriui /O2 ar /Ox parametrą).

    Tai jei (1) ir (2) atsakymai yra TAIP,- tada nėra jokių steko problemų su rekursija ant C++, nes kompiliatorius sugeneruoja tokį kodą, kuris steko atminties “nebevalgo”. Ir aišku, jei (1) ar (2) false, tai tada lieka galioti tavoji versija apie rekursijos problemas su C++ :-)
    Beje kiek žinau, C# JIT kompiliatorius neturi uodeginės rekursijos optimizavimo, todėl šiuo atžvilgiu C++ gerokai lenkia C#.

    Sėkmės.

  4. 2011.07.04 21:46 | #4

    Oops, truputuką makaulė perkaito, ten apie rekursiją tarp headerių, o aš čia blevyzgoju apie rekursiją *.cpp kode :-) Nu bet vis tiek viskas ką pasakiau apie rekursiją kode – galioja :-P

  1. Atsekčių dar nėra.
*