Cugetari despre evolutia internetului

Citeste articolul…

Aceasta este prima data cand scriu un articol atat de complex. Va rog sa fiti ingaduitori.

Info: Acest articol foloseste multi termeni tehnici.

Dupa parerea mea, internet 1.0 a aparut in 1982, cand s-a inventat protocolul TCP/ IP.

Apoi a aparut Gmail. Apoi MySpace, Facebook si Youtube.

Faptul ca poti lasa comentarii unui produs pe eMag, poti scrie articole pe blog, poti incarca poze si filme, poti vedea stream-uri de stiri, asta inseamna internet 2.

Internet 1 este static, in timp ce 2 este in continua evolutie.

In prezent, pot spune ca suntem la internet 2.5.

Internet 3.0 va fi personalizat 100% pentru fiecare consumator in parte, un prieten virtual care iti stie tabieturile, tine minte ce iti place si ce nu.

Un asistent prietenos si inteligent.

Momentan sunt enorm de multe probleme cu serviciile pe care ni le ofera internetul:

Pentru unele din problemele de mai sus, exista Torrent, Freenet, Retroshare, Tahoe-LAFS, IpFS, Bitcoin si platforme gen Ethereum.

Ele au un rol VITAL, pentru ca sunt puncte de plecare pentru ideile revolutionare. Abia incepem sa ne deschidem mintea pentru ceea ce ne pot oferi.

La fel cum ne-a luat (2006 - 1982 = 24) de ani sa inventam Twitter, va dura comparativ la fel de mult pana cand vom inventa acel “game changer” peste Torrent, sau Ethereum.

Si la final, ce lipseste cel mai mult, este un standard prin care serviciile sa comunice intre ele.

Exista protocoale de comunicare low & middle level (Json RPC, XML RPC, SOAP), dar fiecare site in parte este izolat si trebuie accesat separat.

In prezent nu exista o metoda prin care de exemplu contul meu de Pinterest sa comunice total cu contul meu de Foursquare si mai departe cu Google Maps, astfel incat sa pot cauta dintr-un singur loc:

Ca sa obtina informatiile astea, un dispozitiv trebuie sa stie: cine sunt, unde ma aflu, ce anume mi-ar placea sa mananc, ce am mai mancat in trecut,
dar cel mai important, unde anume se afla fiecare informatie si cum anume trebuie citite si interpretate datele, astfel incat sa rezulte ceva care sa aiba sens.

Sunt chestii foarte complicat de implementat cu tehnologiile pe care le avem acum.

Solutia este un domeniu comun unde serviciile sa se poata inregistra si fiecare sa spuna ce stie sa faca, gen:

Din cate stiu, exista discutii pentru astfel de standard.

Si ca sa vorbesc si despre programare, cea mai tare chestie in ziua de azi este sa scrii cod care sa poata fi executat atat pe client, cat si pe server.

Daca 75% din cod este partajat, rezulta productivitate 175%. Momentan doar Node.js poate face asta. (vezi isomorphic Javascript //isomorphic.net/)

Totusi, cine a dezvoltat la modul serios aplicatii in web, stie deja ca Javascript devine tot mai mult rezultatul final al unei compilari, nu un limbaj in care sa scrii direct. Pentru asta exista CoffeeScript, TypeScript by Microsoft, Dart by Google, etc.

Sunt in lucru standarde gen ES6, ES7 Harmony si mai departe, care vor aduce multe imbunatatiri, dar din pacate EcmaScript este greoi pentru cineva care nu lucreaza in domeniu, iar imbunatatirile nu fac decat sa adauge un strat de complexitate peste un limbaj deja prea complex.

O alta problema de productivitate este: de ce paginile web inca se mai scriu in HTML? In prezent, ca si in cazul Javascript, HTML este doar un “compile target”.

Si peste asta, HTML nici macar nu descrie continutul paginii, ci doar spune cum sa fie reprezentata.

Exista taguri semantice gen <abbr>, <p>, <h1>, dar majoritatea programatorilor nu le folosesc asa cum au fost gandite.

Imi aduc aminte, ca incepator, ce mult timp mi-a luat sa ma obisnuiesc cu sutele de paranteze <...> ... </...> din HTML…

Paginile ar trebui scrise in Slim, Jade, sau Haml, sau de ce nu Markdown sau Rst, ceva compact si prietenos. Prezentarea paginii conteaza enorm de mult!

Din cauza asta CoffeeScript si Jade sunt atat de populare.

Sunt oameni cu foarte multe idei, dar cei cu idei nu au cunostinte suficiente cat sa le implementeze,
iar cei care stiu cum sa le implementeze, se pierd in implementare si nu au idei chiar atat de multe…

In secolul 21 lucrurile se misca ultra rapid, dar nu suficient de rapid…

Pentru web, e nevoie de oameni care sa-si puna in aplicare singuri ideile, fara sa fie experti in programare.

Una dintre solutii ar fi ca limbaje gen Python sau Ruby sa fie integrate nativ in browsere.

Amandoua limbajele sunt usor de invatat, prietenoase si productive, perfecte pentru incepatori. Exista comunitate si zeci de mii de librarii pentru ambele.

Pentru Python exista librarii experimentale gen Brython si Skulpt, care permit executarea de cod python in interiorul <script type="text/python">...</script>.

Sunt multe alte experimente gen FireBreath, sau IronPython in browser, fiecare cu o serie de dependinte, dar nimic nativ si complet portabil.

Sau, limbajul Go, nativ in browser. Atunci multe servicii distribuite gen ipFS si Ethereum s-ar integra nativ.

Acum ca a fost deschisa cutia Pandorei cu formatul binar pentru internet Web Assembly, browserele vor deveni framework-uri gigant, niste sisteme de operare in toata regula.

Estimez ca in urmatorii 5-10 ani, programatorii vor putea scrie cod nativ Python si Ruby pentru Chrome si Firefox.

Au mai fost incercari de formate binare: Java applet, Flash, Silverlight, dar toate au devenit irelevante. De ce?…

La nivel superficial, tot ce am zis mai sus e adevarat, dar in realitate, toate cele 3 au o singura problema: sunt niste produse care apartin unei companii.

Si atunci e vorba de bani, compania decide in ce directie sa se miste produsul.

Daca as avea bani de investit intr-un limbaj de programare, in urmatorii 5 ani as investi in HTML5, care inseamna mai multe tehnologii, nu doar Javascript.

Si nu sunt singurul. Toate companiile relevante imping puternic HTML5. De ce? Pentru ca HTML5 nu apartine unei companii, ci este un standard general.

Hai sa vedem:

Toate sunt firme cu revenue de miliarde, sau sute de milioane de dolari.

Pe partea de browsere cred ca stam cel mai bine.

Microsoft a renuntat la Internet Explorer (care deja devenise o gluma) si il inlocuieste cu Spartan/ Edge, o parte din oamenii care au creat Opera dezvolta acum Vivaldi (in care eu imi pun toate sperantele), BitTorrent a lansat Project Maelstrom un browser pe baza de torrente, Tor a lansat TorBrowser, Ethereum lucreaza intens la Mist, iar Cyanogen isi fac propriul browser pentru Android.

Vor mai fi si altele.

Surse:

Tags: ro