Despre cît de nefericit poate fi Windows Mobile 7 din mai toate punctele de vedere (moment pe piață, castrarea posibilităților oferite în versiunea anterioară, incompatibilitatea totală cu aplicațiile existente, imposibilitatea de a dezvolta aplicații compilate nativ sau de a comunica local între aplicații etc.) am mai povestit.
Tot timpul am încercat să le inventez scuze celor de la Microsoft care lucrează la WM. Involuția pe piață dovedește clar că dincolo de scuzele posibile sau inventate, în toată tărășenia există o mare doză de prostie care sigur nu e doar la nivel de percepție.
Windows Mobile 7 vine prea tîrziu, după ce faza de calificări pentru un sistem de operare pe telefoane s-a închis pentru neaveniți și se îndreaptă spre finală. Microsoft a fost jucător principal dar și-a luat vacanță cîțiva ani ca să poată și bieții Apple să respire puțin cu iPhonele și eventual să nu falimenteze nici Google cu Androidul. Deh, calul moare de drum lung…
Pe măsură ce am aflat despre WM7, cum va fi și cum nu va fi, am asistat derutat la decizii complet aiurea una după alta. Nu numai că au venit mult prea tîrziu dar au copiat toate impotențele din iPhonele inițial, toate lipsurile și toate inepțiile le-au părut artiștilor copieri de la Microsoft ca fiind mari realizări demne de plagiere. Între timp Apple a introdus și un rudiment de multitasking, a redescoperit și “inutilul” copy&paste, a rezolvat o grămadă de neajunsuri de care nu au fost capabil să le facă bine de la început (cu antenele încă au probleme). Microsoft acum intră în arenă fără să-și dea seama că s-au lăsat prostiți ca niște clienți tipici de propaganda de la Apple care spune că e bine să nu poți, să nu ai, să nu ți se permită și eventual să nu funcționeze dacă o ții mai strîns în mînă.
Windows Mobile 7 nu poate o grămadă de lucruri pe care le poate face perfect Windows Mobile 6.5, foarte bine Android sau măcar șontîc și pe jumătate chiar iPhone.
Unul din multele lucruri pe care nu le poate face este ca sistemul de operare să ofere un API pentru stocarea persistentă a informațiilor specifice aplicațiilor în ceva similar cu o bază de date. Există în WM7 un SQL Server CE (server în telefon – spune aproape totul…) DAR care din motive de incompetență, nu este accesibil aplicațiilor dezvoltate de terți ci doar celor incluse de Microsoft în sistemul de operare. Ei spun că nu sînt capabili să-l facă destul de bun ca să reziste unor eventuale abuzuri ale aplicațiilor dezvoltate de terți așa că decît să destabilizeze telefonul, mai bine nu pun la dispoziție această funcționalitate.
Cîtă sinceritate și modestie, aproape că îți vine să-i crezi. Deci băieții sînt incapabili tehnic să facă o mini-bază de date locală în care să se poată încrede ca fiind suficient de sigură. Asta e clar o prostie (a se citit minciună) greu de acceptat de cei cu creierele încă nespălate.
Ca dezvoltator ridici din sprînceană a mirare, te întrebi cum se putea ca Access 1.0 să meargă ATÎT de bine în 4MB – hai 8MB de RAM și cu procesor de 10 ori mai lent decît cel mai lent procesor admis pentru un telefon cu WM7 avînd funcționalitate cu un ordin de mărime cel puțin peste API-ul despre care vorbim (interfață bogată, editor și motor de rapoarte, mediu de dezvoltare și runtime Visual Basic).
Problema e că funcționalitatea lipsă (stocarea locală a datelor aplicațiilor în ceva de genul unei baze de date) este fundamentală și pentru unele aplicații e pur și simplu vitală așa că tot ca dezvoltator ridici sprînceana v2.0 și te gîndești cum o să-ți salvezi datele în telefon între rulări. Sigur Microsoft are un răspuns pregătit dar e probabil unul care nu va plăcea (e vorba de stocarea “in the cloud”, pe serverele Microsoft, cu fiecare mega de date transferate plătit din greu la operatorul de telefonie mobilă – eventual în roaming – și toate datele tale la Microsoft în buzunar și indecși).
Există aplicații sau situații în care așa ceva pur și simplu nu se poate accepta sau realiza. Pentru situația asta Microsoft nu are soluție încă dar ne spune că este posibil ca în versiuni viitoare API-ul să apară. Ce vor face aplicațiile pînă atunci fără facilitatea asta de bază? Cui îi pasă?
Aparent există oameni cărora le pasă (oameni normali la cap deci nu angajați la Microsoft în echipa WM). Niște independenți au reușit ceea ce Microsoft nu au fost capabili în ciuda limitărilor sistemului de operare: Perst .NET este baza de date portată în C# de pe alte platforme care pare să poată ceea ce Microsoft nu au reușit avînt la discreție sistemul de operare și atîtea resurse.
Cred că era realizabilă treaba, nu mă îndoiesc că și Microsoft o putea include în sistemul de operare mult mai bine deci meritul tehnic al autorilor nu e chiar ieșit din comun. Ce e jenant e cum Microsoft au fost umiliți în ciuda restricțiilor din API-ul WM7.
Dar cei de la Microsoft în ultimii ani au învățat că e bine să fii prietenos cu dezvoltatorii open-source. E salutar să fii prietenos dacă înțelegi cînd e nevoie să faci excepția. Microsoft salută proiectul, îl aprobă moral și deci îl girează pentru a deveni un standard de facto pentru o piesă fundamentală lipsă din sistemul de operare. Cît de puțină minte trebuie să ai să permiți unor terți să controleze un aspect fundamental din API-ul tău, să inviți practic prin omisiune ca dezvoltatorii viitoarelor aplicații să devină dependenți de un produs terț care ar trebui să fie parte din sistemul de operare.
Microsoft aveau posibilitatea strategică de a refuza aplicația prin faptul că ei controlează magazinul virtual de aplicații – nimic nu se poate instala pe un telefon cu WM7 fără acceptul Microsoft. Ăsta era unul din foarte puținele momente cînd trebuia să spună NU. Dacă ei nu au oferit API-ul, e foarte dăunător pentru toată lumea, inclusiv pentru clienți, să devină dependenți de încă un animal dubios de genul Adobe Flash.
Sînt foarte anti open source, nu? Nu chiar. Ar fi fost doar dovadă de prostie pură din partea Microsoft dacă aplicația de care vorbim era open source și complet gratuită (cu licență BSD de exemplu) – să invite la dependență de terți. Putea fi o prostie pentru ei ca și companie dar salutară pentru clienți dacă în final API-ul gratuit venit de la terți ajungea să fie asimilat în OS.
Problema intelectuală a strategilor Microsofți e una mult mai gravă: ceea ce îngăduie și aproape imploră ei e ca ecosistemul în fașă, aplicațiile viitoare pentru WM7 să devină dependente de un produs open source, gratuit NUMAI PENTRU APLICAȚIILE NECOMERCIALE! Adică dacă dezvolți aplicații comerciale, API-ul ăsta va costa, pentru fiecare client care are nevoie de el “doar cîțiva cenți” care nici măcar nu vor merge la Microsoft.
Incredibil și greu de calificat în cuvinte ce e în capul celor care alcătuiesc echipa WM, echipă care pe drept și în urma multor derogări, chiar merită să moară și să-i lase liniștiți pe cei care chiar știu despre ce e vorba (Android, poate MeeGo) să ne dea telefoane inteligente făcute de oameni inteligenți.
Dragi domni ce lucrați și ghidonați destinele WM: duceți-vă acasă, împușcați-vă și dați-vă apoi demisia.