Galerija

Teškoće portabilnosti aplikacija

Vec odavno, veliki proizvodjaci sistemsog softvera, dakle operativnih sistema, su shvatili i poceli odavno da primenjuju princip fidelizacije klijenata preko ponude veoma bogatog programskog interfejsa. I Microsoft Windows, Apple Mac OS X, Linux Gnome i KDE, Sun Java ili Microsoft .NET, Adobe Flash ili Microsoft Silverlight nude programerima zainteresovanim za razvoj na tim platformama nevorovatno bogate i raznovrsne programske biblioteke. Secam se jedne stare price o tamnom Vilajetu: ide grupa ljudi po mracnoj noci, mrak gust, ne vidi se ni prst pred okom. Odjednom, zacu se glas sa neba. Slusajte me ljudi, oko vas nalazi se grupa objekata. Uzmite ih ako zelite, ali pazite, kajacete se ako to uradite. Ali dopusteno vam je i da ih i ne uzmete, ali pazite kajacete se ako ih ne uzmete. I sad mozete zamisliti u kakvoj situaciji se nadjose ti ljudi. I onda neki odlucise da uzmu a neki ne. I onda bi svetlo. I shvatise da su ti misteriozni objekti bilo veliko zlatno kamenje. Naravno sad je postalo jasno zasto je kajanje u svakom slucaju. I oni koji su uzeli se kaju sto nisu vise, a narocito oni sto nisu uzeli nista. E otprilike programeri se uvek nalaze pred takvom dilemom kada treba da odluce za koju ce platformu da programiraju. Naravno u nekim svetovima to je lako odluciti, u svetu Desktop PC-a zna se dominira Microsoft Windows, ali postoje i mnoga druga trzista gde je Majkrosoft daleko od dominacije ili je cak autsajder. E u svakom od takvih trzista tesko je doneti pravu odluku.

Da li je bolje uložiti vreme u obogaćivanje aplikacija ili neprestano skakati sa platforme na platformu?

Da li je bolje uložiti vreme u obogaćivanje aplikacija ili neprestano skakati sa platforme na platformu?

Da stvari budu teze i komplikovanije za odluku, postoje jos 2 tehnoloska trenda. Privi je konvergencija Web i Desktop Aplikacija a drugi je konvergencija Desktop i Mobile platformi. Dakle danas ne samo da je tesko izabrati pravi operativni sistem za bitku na trzistu, vec i koju programsku platformu. Izbor je veliki, neverovatno veliki, cak vise nego sto su objektivne potrebe programera pa cak i korisnika. I tu se vracamo na tamni vilajet. Svaka programerska platforma je teska na pocetku, puno izazova, novosti, nedovrsenih osobina pa cak i gresaka. I sto vise vremena provodite sa njom, vase znanje ce se uvecavati, osecacete se komotnije i u isto vreme ce stici nove verzije koje ce popravljati nedostake iz prve verzije. I pocinjete sa novim ciklusom investicija i to i vremenskh i novcanih. Ali u isto vreme povecava se i dubina jaza u koji ulazite, jer sto vise se investira u jednu platformu sve manje ekonomicno postaje investiranje u novu. I tu se prica zavrsi, upali ste u zamku, postajete jako dobar programer jedne platforme ali ste van trzista za neku drugu, a druge platforme izlaze pa se cak i afirmisu neprestano. Jedan od drasticnih primera je Apple iPhone OS, koji je bukvlano ni iz cega usao u main stream u svega nekoliko godina. Dve stotine hiljada aplikacija u par godina. Neverovatan uspeh. I taman dok mislite da investirati u Apple iPhone ima puno smisla, vec je tu iza ugla Google Android i Nokia Maemo, a da ne govorimo o Microsoft Windows Mobile 7 koji je najavljen fanfarama za kraj 2010 godine. Izlisno je reci koliko su ovi programski sistemi razliciti jedni od drugih. Naravno Zoom Out koncepti su uvek isti, ali njihova implementacija je potpuno drugacija. Tu je i Chrome OS, koji neverovatno priblizava koncept desktop i Windows aplikacija. Ko je imao tu nesrecu da radi u vreme prve Internetske Sapunske Lopte, koja je pukla oko 2000 godine, znao je koliko je programki interfejs provog Web-a bio bedan. Spageti kod ASP, PHP, gde se mesa prezentacija i logika sve u istom fajlu, nacrtati jednu liniju programski bio je poduhvat. Medjutim danas sa HTML verzijom 5 i Canvas objektom, AJAX, .NET i Java sistemima, Web je postao skoro potpuno ravnopravan po svojoj snazi i mogucnosti desktop bibliotekama. Sa pojavom RIA (rich internet aplikacija), vreme instalacija aplikacije na target platforme korisnika tezi ka nuli. Postoji veliko zasicenje aplikacijama, dakle tesko je zainteresovati korisnika cak da instalira i demo aplikaciju. Zato u pomoc dolazi RIA, gde aplikacija pocinje odmah, ona cela ili cak njen veci deo vec se nalazi na internetu, i uglavnom tamo i ostaje, mada njeni povremeni delovi prelaze delta sistemom na racunar korisnika. Narocito za operacije sa intenzivnim racunanjem ili koje traze 3D prikaz na primer, mada je i ta bariejera vec oborena. Google Maps je u svojoj poslednjoj web verziji ukljucio i Google Earth, koja je nekada bila posebna desktop aplikacija.

Druga konvergencija danas predstavlja spoj i sve vise brisanje granica izmedju Desktop i Mobile aplikacija. Naravno, to je jos uvek vise obecanje (ili pretnja zavisi kako ko interpretira) nego stvarna realnost. Apple-ov Mobile Safari ili zadnje verzije popularnog cross platform browsera Opera, jako dobro aproksimuju Web Stranice na tro-incnim pametnim telefonima, i svaki put kada ih koristim divim se umecima njihovih autora, ali ipak, koristiti te lepe i snazne igracke sat ili dva je prava tortura. Koncept iTunes, sa milijardama downloadova svake vrste, povlaci granice mnogo dalje. Windows PC, Apple Mac, iPod, i sada iPad svi su lepo spojeni u savrseni koncert, iTunes je u stanju da sinhronizuje sve te masine zajedno, multimedija, knjige, aplikacije. iTunes savrseno pilotira sve uredjaje od 2 inca najmanjeg iPoda pa sve do 2 metra salonskog LCDa koji je deo vaseg kucnog bioskopa. Medjutim ostaje problem u koriscikom interfejsu, nema jos masovnih aplikacija koje uspevaju da nude svoje mogucnosti na dovoljno produktivan i fleksibilnom nacin u velikom opsegu rezolucija od 2 do 50 inca. Pa cak i sama ponuda razvojnih platformi u stanju da rade glatko od ARM-a 400 MHz bez ikakvog grafickog cipa, pa sve do dual-head 3D PC grafickih kartica dosta je nezrela. Adobe sa svojim Flashom i Majkrosoft sa svojim Silverlightom vec nekoliko godina obecavaju da ce njihove desktop verzije isto tako raditi i na mobilnim platformama, Za sada su jos uvek na nivou obecanja. Da postoje neka prelazna resenja, ako pisete program u Compact .NET framework, on ce se bez problema vrteti na Windows Mobile platformama i bez-rikompajliranja i na velikom Windowsu, ali obrnuta stvar ne ide. Ako pisete aplijaciju u standardnom .NET frameworku, nikako nece raditi na Windows Mobile. I ono sto je jos najvaznije, zasto samo na Windows Mobilu, zasto ne i na iPhone-u ili Androidu. E pa zasto smo objasnili na pocetku pisma.

Dakle, sta da se radi? Ili se nadati da ce neko u Mobilnom segmentu postati novi Parni Valjak i pregaziti ostale kao sto je istorijski to uradio Microsoft u Desktop segmentu ili pisati softver cross-platform sto je moguce vise. Ali to nije jednostavno. Potrebna je znalacka arhitektura i / ili koriscenje nekih komerijalnih ili open source paketa koji taj zadatak uveliko pojednostavljaju. Na na primer, wxWidgets, Trolltech Qt, Sun Java, ili Mono .NET. Ali vise o tome u nekoj drugoj prilici.

Ako želite da odslušate:

Advertisements

One comment on “Teškoće portabilnosti aplikacija

  1. Povratni ping: Da li je mnoštvo jezika zaista bogatstvo? | Markus Maki

Zatvoreno za komentare.