Nova predikcija Anđela - Doorsi

Nisam siguran da razumijem pitanja, no pokušat ću odgovoriti.
A što se tiče detalja, ima toga puno da bi o svem pričao… ako bude konkretno pitanje (koje razumijem xd) odgovorit ću.

Pa ja iskreno nigdje ne tvrdim da je ova ideja posebna, naprotiv…velim da sigurno i drugi idu u ovom smjeru, jer ovo je na neki način neizbježni način korištenja računala u budućnosti… selidba u cloud, gdje će kućne mašine biti samo uređaji sa komunikaciju sa tim cloudom. Prednosti su mnogobrojne …

  • veća sigurnost podataka
  • veća dostupnost podataka (Od bilo kuda, bilo kada …sa bilo čijeg računala radimo kao da je naše. Isto kao i sa mobitela…)

Što se tiče Doorsa, tek sam otvorio vrata u tom smjeru…da ne bude zabune…da pomisliš da se odmah gore može instalirati Adobe, ko što ovom ispred tebe padoše na pamet…

Što se tiče memorije i filesystema koji sam spomenuo…to je bitan dio. Zato jer onaj tko će raditi aplikacije za Doorse, kreće od točke gdje mu je ulazni parametar neki podatak iz memorije filesystema. ( što znači da je user otvorio neki file iz svog filesystema koji je tako pokrenuo njegovu aplikaciju)

Što će reći da developer aplikacije radi samo alat za obradu i kreiranje tog memorijskog podatka. Što će reći da čitavu aplikaciju možeš napraviti samo u HTML/CSS/JS+ bez da si taknuo u bazu i serverski jezik.

JS+ ima plus, zato jer on ima sve što i JS + ono što podržava Doors kompajler. Znači to je obogaćen Javascript putem kojega se može više toga definirati nego sa običnim JS-om. Neke od tih instrukcija se prevode i u serverski jezik …o čemu dev aplikacije ne morati niti biti upoznat. Tako npr. postoje novi tipovi varijabli: Novi tipovi varijabli - kako vam se čine i kako bi ih nazvali … koji da bi se ostvarili nastaju zajedničkim radom servera + clienta, a dev aplikacije treba kucati samo novu deklaraciju varijable…tipa: “uservar x” i dobije puno pozadinske logike na gotovo.
Ta JS+ sintaksa će se obogaćivati putem po potrebi … glavno je da sada postoji točka kompajliranja koja dopušta rast i razvoj te sintakse…

Što se time dobiva?
Pa dobiva se da osoba sa malo znanja (samo HTML/CSS/JS) može praviti bogatu aplikaciju…koja već ima u sebi ugrađene usere, inbox, povezivanje usera u timove…itd…itd… sve to svaka nova Doors aplikacija dobiva na gotovo, kao što svaka nova windows aplikacija dobiva windows okruženje na gotovo. Ne moraš tipa kretati iz DOS-a i graditi cijelo UI sučelje itd…itd…za svaku sitnu “pizdariju” od aplikacije, nego se zato služiš windowsima kao startnom točkom. Tako ovdje krećeš od startne točke Doors, koji već u sebi nudi sve ono što treba svaka moderna web aplikacija.

Ja osobno to vidim drastičnim boost-om u produktivnosti jer sve te frame stvari će se uvijek rješavati samo na jednom mjestu (Doorsi) i sve aplikacije koje će se publishirati preko Doorsa će automatski dobivati nadogradnje tog frame-a …ko što i windows aplikacije uživaju svaku novu verziju windowsa. (Oke, uživaju dok god je backward compatible, hehe …ako nije, gubi se uživancija xd)

I to je strogi DRY koncept, da se iste stvari ne ponavljaju bespotrebno više puta…ta neće svatko tko pravi novu aplikaciju praviti svoje windowse. Na webu se to upravo dešava …isti/sličan frame aplikacije nastaje gotovo sa svakom novom modernijom web aplikacijom. Twiter, facebook, Ovaj forum …svi oni trebaju iste stvari: usere, inbox, povezivanje usere u timove…itd…itd… ima toga hrpetinu stvarno.

Evo koliko malo codea je potrebno da se doda bazična aplikacija, u ovom slučaju texteditor (obična textarea) koja se otvara ako korisnik klikne dblClick na file.txt i koja može mijenjati taj file u filesystemu:

var test_textApp = function(){
	
	var instance = this;
    //config section
	instance.title='Texteditor'; 
    ....
    ....
 
	/*
	parametri koje app nasljedi nakon što ju Doors inicijalizira...
		instance.$content;
		instance.$get('element_aid')
            ....
            ....
	*/

	return instance;
}


test_textApp.prototype.onOpen=function(fileContent){
	
	var instance=this;
	var html = "<textarea aid='text'  style='height:100%;width:100%'></textarea>";

	deffer(function(){

		var textarea = instance.$get('text');
		textarea.value = fileContent;

	});

	var send = {html:html};
	return send;

}

test_textApp.prototype.onSave(){

	var instance=this;
	return instance.$get('text').value;

}

U suštini samo se definira onOpen() metoda koja prima sadržaj iz file-a kojeg korisnik otvara …i ta metoda vraća HTML/JS/CSS koji oblikuju prozor u kojem se aplikacija prikazuje korisniku. Doorsi brinu o tom prozoru i vanjskom okruženju tog prozora …a sadržaj prozora oblikuje app sa onim HTML/CSS/JS koji se kreiraju na onOpen().

App još samo mora deklarirati metodu onSave() koja se trigira onog momenta kada korisnik odluči spremiti ono što je radio sa aplikacijom. Tada taj content koji vraća onSave() metoda opet oblikuje file koji korisnik samostalno odlučuje koji će biti. Aplikaciju se to ne tiče.
Ono što će app izmjenjivati sa fileSystemom će biti puno bogatije od ovako raw sadržaja… no i ovo je varijanta…

Ovo je najsuroviji prikaz … što je aplikaciji potrebno da se uključi u Doors sustav. …a target je upravo to da se sa jako malo code-a kreće iz jedne već vrlo visoke točke pred publishiranje aplikacije.

Zamisli samo da hoćeš napraviti ovakav primitivni editor…a da zbog toga moraš cijeli sistem dići iz nule… i sve konfigurirati. Ovdje taj system unaprijed postoji i on je poletna točka za početak razvoja nove aplikacije.

Tipa možeš imati ideju za neku jednostavnu aplikaciju i prodajni potencijal iste…a može te skuplje vremenski koštati integracija kartičnog plaćanja i payPal-a nego izrada same aplikacije. A sa Doorsima dobiješ mogućnost naplate svoje aplikacije na gotovo.

Tako gore gdje vidiš da aplikacija definira title parametar u sekciji konfiguracije …tamo će developer samo kroz parametre birati koliko tipa aplikacija košta konačnog usera, koji su načini trial verzije prodaje aplikacije itd… a o distribuciji i izvedbi toga brine sustav Doors i profit od prodaje te aplikacije prosljeđuje na račun autora aplikacije. Znači, preskaču se ogromni koraci … pogotovo za nekoga tko niti nebi znao to sve samostalno izvesti. …a sposoban je da kuca HTML/CSS/JS i da kreira nešto pametno i korisno. (Naravno, Doors može ako želi definirati proviziju od svega što se proda preko njega.)

Heto…nadam se da sam bolje dočarao koncept… a što se tiče tvojih pitanja u nastavku…