NormJS - back to basic HTML

Pozdrav,

NormJS je moja ideja da se uvede dodatni standard u JS zajednicu, kako bi cjela zajednica propričala zajedničkim jezikom. :slight_smile:
Ideja je malo ćaknuta, jer je možda “malkoc” preambiciozna i nesprovediva …s druge strane ja osjećam da je potrebna meni osobno i odlučio sam da ću je razraditi koliko ću moći.

Uglavnom, unutar ove teme nećemo pričati o samoj ideji, valja li ili ne valja…nećemo niti diskutirati što točno ta ideja je… Za to sam već otvorio posebne teme, pa koga zanima neka slobodno tamo čita i pita:

E sad, ovdje ću ukratko pojasniti o čemu je riječ, no svu diskusiju na tu temu, molit ću da prebacite na gore linkanu prvu temu.

  • normJS je standard
  • standard koji definira jednostavan HTML code za kompleksne WEB komponente
  • standard koji definira JS metode nad tim komponentama
  • normJS nema ništa sa proizvodnjom komponenti, to je zadatak zajednice…svakoga ponaosobno
  • normJS samo daje smjernice da ono što zajednica izgradi, da bude međusobno kompatibilno
  • normJS na taj način izbacuje potrebu da se grade frameworci koji će obuhvaćati sve
  • tko god napravi makar jednu komponentu, ona će postati dio tog globalnog “frameworka” ukoliko slijedi normJS standard
  • normJS nije standard kojega bi trebala nametnuti sila nekakvog zakona, to je standard kojega će prigrliti oni koji će od toga imati koristi

E sad, o čemu je ova tema …ako nećemo diskutirati o tome valja li ili ne valja normJS?

Pa ovo je tema unutar koje ću “na glas” razrađivati taj standard. Uz feedback vjernih kritičara, možemo ga zajednički bolje oblikovati nego što bi ja sam.
Znači, oblikujemo web kakav će se jednog dana tipkati. :slight_smile:
Zezam se…jer ja sam sitna riba u velikom moru, hehe, ali ništa loše u snovima nema.

No u suštini, ovo će biti proces stvaranja sintakse korištenja komponenti kako bi to developer htio koristiti da je njemu to najjednostavnije.
Onda tek dolazi zadatak da nastanu komponente koje će ispoštovati zadanu sintaksu normJS-a.

U prvu ruku ću ja to napraviti osobno, tako što ću pretipkati sve bitno iz nekog postojećeg frameworka, da ga prilagodim normJS sintaksi. Tako je onda meni primarni cilj postignut da ja mogu koristiti normJS u svojim projektima, a to je također entry point da bilo tko može dodati novu komponentu u gabarite toga standarda, koja će onda imati nekog smisla…jer će postojati te inicijalne komponente s kojima će svaka nova komponenta dobivati smislenu cjelinu.

Diskusija za svaku komponentu koju ću dodavati u normJS će se voditi na svojoj zasebnoj temi. Ova root tema će tek biti centralni dio iz koje ću linkati prema svakoj komponenti koja će se razrađivati

Unutar ove teme ću stavljati zanimljive novitete koji mi se razbistre u vezi normJS-a. S time da napominjem, sva diskusija koliko ovo valja ili ne valja…neka se vodi u gore već linkanim temama. Ovdje će se nalaziti tek sažetak mog shvaćanja:

  • što ovo zapravo je, koji točno problem rješava
  • kuda treba ići
  • koje su potencijalne mogućnosti
  • koji su mi sljedeći planovi …itd.

Tko shvati što je normJS unutar gore linkanih tema, taj je slobodan da i ovdje postavlja pitanja, polazeći od točke da postavlja pitanje nakon što je prethodno razumio što je normJS. Nije komplicirano i nadam se da će se stvar razbistriti, upravo kako se krenu definirati stvari… tada bi trebalo postati jasnije čemu težim.

Kada otvorim neku temu vezanu uz pojedinu komponentu koju ću razrađivati, onda slobodno unutar te teme udrite drvljem i kamenjem…da me dobro ošamarite sa stvarima koje ne poznajem, a trebao bi poznati…i da ne kreiramo standard za stvari koje su već dobro definirane. Uz to, svi ćemo iz toga ponešto i naučiti…vidjeti koje propuste imamo…tako da, ako ništa drugo…ovo će biti mala školica ponavljanja gradiva.

Toliko za sad.

1 Like

Evo jedne stvari koju sam gore preskočio napomenuti, a mislim da je jako bitna.

Da bi postojao standard, bitno je da postoji kontrola standarda.
Tako recimo, postoji standard ispravnosti vozila da bi isto sudjelovalo na prometnicama. Tehnički pregledi su ustanove gdje se taj standard kontrolira.
Nitko nije prisiljen da se koristi javnim prometnicama, ali ako želi dobiti benefit koje prometnice nude…onda mora ispoštivati standard koji je za to uvjetovan. A standard se ne poštuje na “ljepu riječ” …nego se mora proći stroga kontrola poštivanja standarda. U ovom slučaju to bi bio tehnički pregled.

E sad, koji je trenutno problem sa webom, koji normJS riješava.
Danas postoje standardi za HTML elemente, kako bi se trebali definirati i kako bi se trebali ponašati unutar browsera. Ali ne postoji mogućnost da kontroliramo taj standard. …jer je razvoj browsera decentraliziran i ne moguće je uvesti zajedničku liniju vodilju koja će uskladiti ponašanje svih browsera.

Pri tome, browseri jednostavno nisu u mogućnosti da daju potrebnu podršku za HTML elemenente kakve treba zajednica. Problem postaje tim veći što su se na tržištu pojavili i mobilni internet preglednici i održati standard je puno teže nego nekad. A ne postoji kontrola standarda…niti mogućnost da se uvede na ovako postavljen koncept decentraliziranog razvoja.

E sad, normJS je u svojoj suštini precizno definiran standard. Ali normJS će osim toga imati i svoju platformu, koja će služiti za kontrolu standarda. Znači, upravo kao stanica za tehnički pregled …ta normJS platforma će (automatski) testirati svaku komponentu prije nego ista dobije certifikat da poštuje propisane standarde.

Kada neka komponenta dobije certifikat da poštuje normJS standard, onda svatko tko koristi tu koponentu ima garanciju da se ona jednako ponaša unutar svih major browsera, bilo mobilnih ili destkop internet preglednika.

Na taj način se rasterećuju browser developeri da moraju slijediti trend i potrebe zajednice …i da se moraju teškom mukom usklađivati nebi li ponudili ista ponašanja browsera. (Što se već pokazalo da im nikako ne uspijeva). I taj posao se prebacuje na zajednicu, koja je već pokazala da je spremna prihvatiti taj posao razvoja komponenti, čemu svjedoče silni frameworci koji nastaju…ali koji su međusobno također ne usklađeni, jer nemaju zajedničku nit vodilju poput normJS-a.

(Molit ću, ako želite komentirati ovaj post, da se za to otvori prikladna tema. Kako bi ova root tema ostala sažeto i pregledno dokumentirana sa bitnim stvarima vezanim uz normJS)

Prva i osnovna apstraknta klasa koju mora naslijediti svaka normJS komponenta se razrađuje ovdje:

NormJS je življi nego ikad, samo ti to ne znaš.
Čisto ako te zanima info, pored svojih projekata primam plaću da razvijam normJS. I to po sasvim pristojnoj satnici.

Ideje koje su u međuvremenu nikle, su pravo amazing…da sam i ja ostao paf, kakav plan se na nebesima kuje…ali se neću truditi ih pojašnjavati, kada su i osnove bile ionako preteške za shvatit.

A i sama činjenica da se relativno često sjetimo ove teme nakon više od godinu nastanka iste…ide u prilog tome da je normJS nešto što će ostati “vječno”.

BTW. ta stvar je super, hvala na desetosatnoj verziji. :wink:

Je l’ mozda i neko drugi ostao ‘paf’, tj. postoji li osoba koja objektivno moze reci jesu li te ideje amazing ili nisu ? :smiley:

Naravno da da

To su sad finese i tričarije.
Što bi se sad mi svi ovde dosadjivali tim detaljima kad čovjeku ovako dobro ide a samo da bi ti znao ko je taj neko?
:smile:

Ako ti moje mišljenje ništa ne znači, onda će to vrijeme pokazati kroz finalni produkt.

Da bi bio netko objektivan tko bi mogao procjeniti te ideje, morao bi biti netko tko ih može i razumjeti. Kroz razgovor na forumu to nisam pronašao … što ne znači da je to poljuljalo moju vjeru u razumjevanje istih. Ni prvi puta ni zadnji da razumijem nešto što drugi ne. :wink:

Onda se nadam da razumiješ da nije mala stvar da u godinu dana od ideje koju nitko ovdje ne razumije…ja dobijem potican razvoj istoga, da bi samo od razvoja normJS-a mogao živjeti kada me ništa drugo nebi zanimalo da radim / razvijam.

Ali guram još svašta sa strane. :smiley:

Aman, ti sebi ne možeš objasniti osnovne stvari a kamoli nekom drugom da soliš pamet.
Nego knjigu u šake i nauči osnove pa dodji da razgovaramo na ravne časti.

Znači nema? Što se foliraš, onda?

Mene možeš fascinirati količinom (i to znaj da sam pohlepan u tom smislu) znanja a ne lupetanjem bez kraja i konca koje pas s maslom ne bi poj’o.

A to da ti se više puta činilo nesšto što drugi ne primijećuju, već je bilo dobronamjernih ljudi na drugoj (drugim?) temama da su davali pravilne upute i savjete šta sa tim pa neću ponavljati ono što je već rečeno.

Dakle, nauči da vladaš suvereno nekom materijom pa će te i ljudi ozbiljnije anticipirati.
Za presipanje iz šupljeg u prazno niko ozbiljan nema vremena.

Što se tiče projekta, ako ga nadjem na npm-u ili github-u - naš’o. Kakav forum kakvi bakrači.
Osnove tebi trebaju a ne potvrda članova foruma da nešto (ne)radiš dobro.

1 Like

Ti si jedan veliki lol…gdje sam ja pisao da mi treba potvrda foruma? :smiley:
Ja jako dobro znam u kojem smjeru idem.

Zato se samo i nadam da je moj savjet stig’o na vrijeme.

Zašto bih ja kao developer koristio NormJS?

Toliko otvorenih tema i teksta napisano o NormJS-u i dalje niko ne razumije o cemu se radi i sta ti pokusavas :smiley:

Mozda da se zapitas zasto nisi pronasao nikoga ko razumije o cemu pricas, umjesto da mislis da si ti poseban po necemu i da vidis to sto ostali ne vide ? :smiley:

Uglavnom nastavi furati svoj fazon, sve je dobro dok radis sam :smiley:

Ne mozes ti to shvatiti, nisi dosegao jos taj nivo evolucije :smiley:

Možda nakon godinu dana uspijem bolje objasniti. Da pokušam. :slight_smile:
Ako te zanima samo u najkraćim crtama što dobivaš, preskoči na kraj posta. :smiley:

NormJS nije alat u klasičnom smislu kako ga se vidim često zamišlja. On je prvenstveno “knjiga standarada”. Isto tako postojat će platforma koja će omogućiti da se kroz bogatu interakciju zajednice ta knjiga standarada razvija.

Uzmimo za primjer rad sa bazom…imaš standard razgovora sa bazom koji je SQL sintaksa, i skoro pa ti je nebitno sa kojom bazom si oženio svoju aplikaciju. Ako ćeš htjeti promjeniti bazu, samo ćeš promjeniti engine koji komunicira prema bazi…a sve tvoje naredbe koje su pisane u SQL-u će i dalje (uglavnom) raditi.
Nije ni SQL 100% identičan od baze do baze…minorne razlike postoje…ali većina toga je isto.

Sada istu tu logiku prenesomo na odabir frameworka. Kada oženiš svoju aplikaciju sa nekim frameworkom, nema tu više rastave! hehe.

A to je problem, možda neki drugi framework izbaci neku uber komponentu koju bi baš rado koristio.
Nije baš simpatično includati pola drugog frameworka radi jedne komponente…a bogami, nije baš simpatično ni seliti aplikaciju na novi framework.

Znači kada se oženiš sa frameworkom, onda je to to.

NormJS rješava taj problem.
On iako će opisati sintaksu kako bi se komponente trebale pozivati i što bi trebale raditi…on neće praviti engine koji će pokretati te komponente. Komponente će moći praviti bilo tko, ako će ispoštovati normJS standard…ta komponenta će moći dobiti “licencu” da poštuje NormJS standard.

Kako će dobiti licencu?

Pa razvoj svake komponente unutar NormJS-a će prolaziti neke svoje faze:

  1. Zajednica predlaže komponente

  2. Zajednica odabire koje komponente će normatizirati

  3. Za odabrane komponente:
    a. zajednica predlaže koje funkcionalnosti mora suportati
    b. zajednica odabrije koje funkcionalnosti mora suportati

  4. Za odabrane funkcionalnosti
    a. zajednica predlaže sintaksu poziva tih funkcionalnosti. (Ime metoda, format parametara)
    b. zajednica odabire između predloženih sintaksa koje idu u proizvodnju

  5. Nakon što je komponenta odabrana, kreće pisanje testova prema odabranom. (Taj proces će se moći dosta automatizirati, jer samo biranje će kreirati testove da zajednica toga neće morati niti biti svjesna)

  6. Nakon što testovi opišu funkcionalnost komponente…dalje može bilo tko uplodati komponentu koja ispunjava zadanu normu. Testovi mu automatski pokazuju što komponeta podržava, što joj fali…itd. A i cijeli sustav će biti stabilan, jer će biti skroz pokriven testovima.

  7. Plaftorma pri tom testiranju komponenti zna koje su najbolje optimizirana po pitanju CPU efikasnosti i po pitanju HDD efikasnosti. Što znači da plafroma radi kompeticiju između komponenti da one najbolje isplivavaju na vrh. (Gura evoluciju komponenti)

Stoga, ti ako odabereš biti unutar normJS standarda, za tebe je to slično kao da si odabrao neki framework. Samo si svjestan da je normJS usmjeren na razvoj standarada sintakse tog frameworka što mu omogućuje da poveže jedan puno širi “eko-sistem” komponenti u cjelinu. Pa bi ti to trebao biti najpouzdaniji odabir na duže staze.

Prema tome, ako se ti odlučiš razvijati neku svoju komponentu koju uklapaš u nečiju aplikaciju koja se drži normJS standara, ti uopće ne moraš brinuti o tome koje komponente se koriste unutar te cjeline gdje će tvoja komponenta završiti.
Pogledaš u normJS standard, vidiš da se recimo “dialog” komponenta poziva tako i tako…i ti ju iz svoje razvojne okoline pozivaš po toj sintaksi.

Ti u svojoj razvojnoj okolini imaš moža imaš includan dialog koji je Perina komponenta, xd, …i koji se drži normJS standarda. I ti kako razvijaš svoju komponentu koja otvara dialog… testiraš ju koristeći Perin dialog.

Kasnije kada prodaš svoju komponentu ili daš nekome drugom na korištenje…tebe ne mora brinuti čiji dialog koristi taj sustav koji je preuzeo tvoju komponentu. Jer dok oni koriste dialog koji se drži normJS-a standarda, neće nigdje u sintaksi puknuti veza između tvoje komponente i dialoga koji oni koriste.

Stoga, normJS boosta cijelu zajednicu, zato jer omogućava puno modularniji razvoj gdje su stvari kompatibilne i gdje onda ne mora svako praviti sve.



I za kraj, u najkraćim crtama. Da si developer koji uopće nema pojma kakvu problematiku je normJS rješio…on je za tebe:

  • jako bogat framework koji nudi odličnu standariziranu dokumentaciju koja pokriva sve od igle do auta
  • dobivaš i veliku zajednicu koja se drži toga frameworka, pa ti je to logičan izbor, kao što ti je logičan odabri SQL za rad sa bazom.

Žao mi je što si stekao takav utisak…i što sam ga ja očito takvog ostavio.

Ali što da ti kažem…pokušaj pogledati iz mojih očiju. Ako objašnjavam, stvarno se potrudim (bez obzira što mi očito ne uspjeva)
…i onda dobijem natrag sprdanje od onih za koje mi je očigledno da nisu ubrali što govorim. A vjeruj iz moje perspektive je full očigledno kada netko uopće ne skapira ništa od onog što kažem…i onda uzvrati nekim trećim nevezanim pitanjem.

To je svakako moja greška, očito ne znam prenesti ono što želim reći. Ali svejedno ako mi netko vrati ruganjem kome sam pokušao više puta na različite načine objasniti, logično da mu više neću imati volju pojašnjavati.

Iako je meni to ruganje fora i zabavlja me …ali svjedno mi je gubljenje vremena takvima po stoti put istu traku vrtiti.

Sad malo bolje kužim, ali i dalje vidim probleme. Recimo, pričaš o zajednici kako će zajednica predlagati i birati komponente, predlagati funkcionalnosti, sintaksu, birati sintaksu i slično. Ali, realnost je takva da zajednicu nemaš bez prvog člana. A ja te kao potencijalni prvi član pitam kako da dođemo do toga.

Pa da se onda prebacim na ovo “u najkraćim crtama”:

Da si developer koji uopće nema pojma kakvu problematiku je normJS rješio…on je za tebe:

  • dobivaš veliku zajednicu koja se drži toga frameworka, pa ti je to logičan izbor, kao što ti je logičan odabri SQL za rad sa bazom.

Dakle, pusti zajednicu, to je sad fikcija. Ja pitam konkretno - što bi prvi član te potencijalne zajednice imao od toga da koristi NormJS?

Veliko bravo…ovo je prvo konkretno pitanje oko rješavanja konretne problematike. Čime ukazuješ da si primjetio target koji se cilja i koji su problemi putem da se tamo dođe. (I bemu, ne kužim zašto si prvi…ja uopće ne vidim da je ideja nešto previše SF)

No primjeti molim te da sada imamo dvije različite teme:

Tema 1: Što normJS donosi i kako može pridonesti zajednici. Te ima li on svoju svrhu.
Tema 2: Da li postoji realna šansa da se takav plan izvede u praksi.

Ova tema se do sada cijelo vrijeme držala točke 1. … da ja uopće dočaram koju on problematiku rješava i što nudi zajednicu. Već u toj točki sam ignoriran da on ne donosi ništa…itd…itd.

Tako da se realno nisam ni mogao dotaknuti točke 2. i objašnjavati kojim putem tamo planiram stići. :slight_smile:

Imam planove, da…nisu jednostavni i velik je to izazov pred menom.
U svakom slučaju u početku ću ja biti jedini član te zajednice koji će provoditi samostalno sve faze razvoja komponente. (Iako će platforma od starta podržavati koorporativnu suradnju oko tih faza razvoja komponente.) Što je i dobro u startu, jer na taj način ću testirati platformu kako radi…vidjeti što joj fali…itd…itd.

Same normative komponenti ću u startu skupljati tako što ću proučavati razne frameworke i nj. sintakse i tražiti presjek svega toga…i ići ću tim putem da formuliram jednu zdravu sintaksu za svaku komponentu.

Samu izradu komponenti neću niti morati raditi, dovoljno će biti da uzmem bilo čiju komponentu i wrap-am je u svoju sintaksu. I to je za mene već veliki goal. Jer onda mogu kasnije lako za svoje aplikacije mijenjati komponente…ako mi zatreba neka druga naprednija, samo je ubacim u postojeći warper i sve veze prema svim aplikacijama koje koriste tu komponentu će neometano raditi.

To je moj goal, dalje niti ne trebam ići. Jer ja ovo radim primarno radi sebe da postignem upravo to…jednu veliku stabilnosti između svojih aplikacija i komponenti koje ću koristiti.

Kako razvijam i firmu, u startu ću se osjećati sigurnije ako unutar svoje firme nametnem takav režim…neko da izaberem neki framework i da se tako oženim za njega i poslije mučim brigu i u plač ako taj framework odustane od razvoja, dok drugi gaze naprijed.

E sad, ako dođem do toga da napravim zdrav sustav za svoju firmu, samo Bog će biti taj koji će to možda proširiti dalje. Mene to osobno i ne zanima previše…jer što ja imam od toga??

Iako imam…normJS može biti i jako profitabilan. Kao što se prodaju teme za WP, tako vjerujem da će nastajati komponente koje će se distribuirati unutar tog eko-sistema samo za money-money. A onda će i platforma od toga omastiti svoj brk.

Naravno, valja primjetiti…da ovakav modularni pristup omogućava puno kompleksnije komponente od onih kakve imamo danas…sa puno složenijom svrhom i isprepletenijom funkcionalnosti.
Vjerujem da će postojati komponente i koje će nešto raditi sa bazom…itd…itd. Najbolji je pokazni primjer upravo WP i njegovi pluginovi. To je u jednu ruku to…samo će ovdje krenuti razvoj komponenti od najnižih slojeva da se prvo oni normatiziraju, a do kuda će to narasti…samo Bog zna.

I da još nadodam, pitanje koje si postavio je uopćeno za bilo koji crowdsource servis.
Što bi imao od facebooka da si prvi član tamo?
Što bi imao od Njuškala da si prvi član tamo?
Što bi imao od BlaBla car da si prvi član tamo?
itd…itd.

Znači to je generalna problematika crowdsource servisa i nije nešto specijalno tipično samo za NormJS.
Ali je svakako problem koji stoji na putu, kao i svim ostalim servisima koji žele biti crowdsource servisi.