WebAssembly va trimite "programatorii js" la culcare (?)

Se pare ca in cativa ani vom avea in sfarsit ceea ce ar fi trebuit sa avem de la inceputul timpurilor: un VM in interiorul browserelor care executa cod “binar” (de fapt un AST, motivatia e in [1] ), independent de platforma, ce poate fi generat din orice alt limbaj sursa.

Nu va fi nimic mai frumos ca a scrie validarea unor date intr-un limbaj - de exemplu PHP, si a genera cod wasm pentru validare pe client, dar a si apela fix aceeasi validare atunci cand cererea HTTP ajunge la server.

Categoric vom scapa de multa frustrare.

Dar se pare ca wasm va ingloba si integrare in DOM, ceea ce inseamna ca vom putea renunta la aplicatii web poliglote (ex: PHP + JS).

Prin urmare, si notiunea de “front-end developer” va deveni foarte fuzzy, ba chiar asa-zisa meserie de “front-end developer” va dispare.

In fapt, eu nici acum nu inteleg de ce avem aceasta dorinta morbida unor colegi programatori de a nu se numi simplu “programator”, ci “programator back-end” sau “programator front-end”. Ori esti programator, ori numai esti.

Pentru mine exista

  • programatori
  • web designeri (care au simt artistic, fac psd-uri, le taie, si le fac template-uri)
  • administratori IT (sistem, retea, DB)
  • analisti, domain experts, UX experts

si alte meserii conexe care nu participa la actul de creatie a software-ului insusi (gen marketing).

In [1] se scrie ca JS va continua sa existe - si cu siguranta asa va fi. Insa importanta sa va fi minimizata considerabil odata cu aparitia lui WebAssembly.

Voi ce credeti?

  1. https://github.com/webassembly/design/
  2. https://www.w3.org/community/webassembly/
2 Likes

Primii doi-trei ani din carieră i-am petrecut făcând slicing la PSD-uri. Chestia cu designerii este că pot avea un simț artistic foarte dezvoltat dar nici o legătură cu HTML-ul.

Am lucrat cu programatori PHP, ASP, CFM și Rails care chiar dacă erau catalogați drept seniori în respectivele limbaje (privind în urmă sunt oarecum sceptic cu respectiva catalogare), nu voiau/știau/puteau face slicing.

În majoritatea cazurilor am avut design de la un astfel de designer, ce trebuia trimis la un astfel de programator :smile:

Sigur, asta se întâmpla acum șase-șapte-opt ani, când trebuia să ai grijă la IE6, IE7, IE8 (tocmai apăruse), Firefox, Opera și ce mai era folosit pe atunci. Adică nu era o chestie foarte productivă pentru nimeni ca programatorul PHP să piardă timp cu hack-uri de browsere.


În prezent, majoritatea browserelor se comportă rezonabil de asemănător (atât la CSS cât și la JS), nu mai ai bug-uri dubioase etc. Cu toate astea, nu cred că este convenabil pentru nimeni ca un programator să se ocupe cu slicing & co.


Cu toate astea, este ceva diferit, ce nu exista acum… să zicem cinci ani: framework-urile MV*. Iar aici da, front end developers sunt sortiți pierzaniei :smiley:

1 Like

Un programator de frontend este la fel de “programator” precum cel backend, la fel cum un mecanic de automobile este la fel de “mecanic” precum unul de locomotive. Diferenta in titlu exprima specializarea, nu spune ca-i in vreun alt domeniu de activitate. FE nu mai inseamna doar HTML si CSS, ci a devenit mai complex, fapt pentru care o specializare se justifica. Altfel, cei care stiau doar CSS si HTML nu s-ar fi numit nici in ruptul capului “programatori FE”. De cum treaba a devenit mult mai complicata, in care ai nevoie de 1-2 ani sa stapanesti intreaga suita de limbaje si standarde, nu-i de mirare ca FE a devenit un domeniu separat de BE. Nu-i asa de alb si negru - ori esti, ori nu esti - ca nu-s anii 70.

Aceasta “dorinta morbida”, cum o numeai tu, cred ca vine din dorinta omului de a fi perceput ca un specialist (nu in sens de lauda, ci de cunoastere aprofundata a unui domeniu). Despre specializari ca ingradiri carieristice cred ca am mai vorbit. Doar oamenii investesc prea mult in el.

4 Likes

niste prezentatii https://brendaneich.com/2015/06/from-asm-js-to-webassembly/

Cred ca o exprimare mai buna ar fi “dorinta omului de a fi perceput ca specializat sau cu experienta intr-un anumit (sub)domeniu”. After all, astfel de titluri denota specializarea, caci pentru cat de “specialist” esti sunt folositi termenii de junior, senior si ce mai este…

De ce ar trimite WebAssembly programatorii JS la culcare?

WebAssembly inseamna ca web-browserul va fi capabil sa execute un modul binar, scris in orice limbaj sau tehnologie capabila sa produca WebAssembly, deci inclusiv JS.

WebAssembly nu mi se pare ceva spectaculos ca si idee, spectaculos mi se pare daca se vor pune de acord asupra standardului si il vom vedea efectiv implementat si ruland in toate web-browsers, macar in cele care au segment de piata mare, cum ar fi in ziua de azi (IE11, Chrome, FF pe desktop si Safari 8+, Chrome for Android pe mobile).
Astia nu se pun de acord si nu implementeaza chestii mai simple in materie de feature-uri de CSS si Javascript.
Deci eu cred ca o sa mai dureze ceva timp…

In plus, cand am auzit prima data stirea asta, mi s-a parut hilar… daca stai sa te gandesti ca Flash si Silverlight oarecum faceau cam acelasi lucru, dar nu nativ.

4 Likes

inceputul este bun dar probabil ca o sa dureze multi ani pana vedem ceva rezultate concrete.

Avand in vedere ca JS a depasit de mult partea de frontend si mananca din cota altor limbaje pe backend nu vad niciun motiv sa-si piarda relevanta.

Fara sa deviez off-topic, e trist sa vezi si sa intelegi, negru pe alb, ca ego-urile pun piedici in progresul platformei web:

Web Components were a Google effort and little negotiation was made with other browsers before shipping. Like most negotiations in life, parties that don’t feel involved lack enthusiasm and tend not to agree.

Cand am citit prima data, am clipit de cateva ori si am recitit ca sa fiu sigur ca am inteles bine.
Seriously, Mr Wilson Page from Mozilla? Go fuck yourself.

Deci nu e important ca un feature e bun sau nu pentru intreaga platforma web, eventual ca sa iasa din stadiul penibil de epoca de piatra, e mai important ca unii nu primesc invitatii speciale ca sa-si dea cu parerea si sa contribuie.

E evident ca nu doar Mozilla face asta, probabil toate companiile o fac.
Microsoft a facut asta ani de-a randul cu IE. Si nu e doar un om, sunt o gramada.
E trist ca se intempla ca oamenii sa fie in pozitii in care sa aiba un impact imens asupra tehnologiei si a web-ului.

Notably, the people working on WebAssembly are the PNaCl (Google) and asm.js (Mozilla) teams. In some sense this can be considered the follow on effort to those projects, meant to combine the best attributes from each, and in a way that can be agreed on by all browser vendors.

This is exactly how the system is supposed to work: individual teams try to advance the state of the art, and eventually all those lessons learned are incorporated into a new and better system. See e.g. SPDY → HTTP2. WebAssembly draws on both the past work and the experience of all those involved, and wouldn’t be what it is without them.

via The Web is getting its bytecode: WebAssembly | Ars Technica

1 Like

In fapt, eu nici acum nu inteleg de ce avem aceasta dorinta morbida unor colegi programatori de a nu se numi simplu “programator”

Eh nah, nici chiar asa :slight_smile: toți sunt programatori. Dar dacă un alt programator te întreabă ce faci, e util sa fii mai specific, poate aveți ceva în comun. E la fel de util sa fii mai specific în CV.

Și personal, nu cred ca exista un" programator" cum zici tu. Toți avem expertiza noastră și nu e ușor sa schimbi limbajul de pe o zi pe alta.

Web assembly este o tehnologie mult prea ideala pentru a merge în practică. E un proiect interesat dar nu are nici o șansă.

1 Like

Am lucrat cu programatori PHP, ASP, CFM și Rails care chiar dacă erau catalogați drept seniori în respectivele limbaje (privind în urmă sunt oarecum sceptic cu respectiva catalogare), nu voiau/știau/puteau face slicing.

MI se pare normal sa nu se ocupe de slicing.

2 Likes

Comparaţie întreb TypeScript şi Flow, despre care zicea Brendan Eich în speach-ul de mai sus:

1 Like

Chestia asta va fi ignorată de prea mulți:

SHOULD I USE A TYPE CHECKER?

if your project does not live for long: no
if your project is really simple: no

1 Like

Deja exista asmjs cu care se poate compila c++ in javascript si obtine performante aproape native si e fain ca se face o standardizare si divergenta planuita de la JS.

Intradevar, daca se face un IDE de web C++/C#/Java cu performante native isi iau bataie toti cei care folosesc javascript. (practic un unity, source sau unreal engine pentru web development ar fi cu mult peste orice poate face un om normal cu javascript si html)

Partea proasta e ca javascript va deveni oaia neagra dupa IE6. Eu prin backend developer inteleg faptul ca un programator are cunostinte serioase de informatica si nu se joaca lego cu functii/obiecte (imagini/animatii/event-uri).

1 Like

O discuţie interesantă (deși posibil ușor părtinitoare) despre TypeScript vs. Babel vs. Flow, precum şi despre utilitatea unui type checker:

https://discuss.reactjs.org/t/if-typescript-is-so-great-how-come-all-notable-reactjs-projects-use-babel/4887

Un articol despre mitul cauzalităţii type checker => less bugs

https://medium.com/javascript-scene/the-shocking-secret-about-static-types-514d39bf30a3#.l6aw6gslc


P.S.: Poate nu ar strica un split pe acest subiect.

2 Likes

In anul 2 am asiatat la o prezentare sustinuta de Mozilla la facultate. Au vorbit despre emscripten si au prezentat cateva demo uri.

https://d2jta7o2zej4pf.cloudfront.net/

https://websightjs.com/index-video.html

2 demo-uri legate de computer vision. Primul demo face identificare faciala+identificarea ochilor(pt cei care au ochelari s-ar putea sa dea rateuri). Al doilea demo este legat de prelucrarea de imagine. Tot felul de efecte pe o imagine sau stream de la o camera web.

Observati diferenta de performanta dintre Web Assembley si asm.js :slight_smile:

Cred ca deja computer vision “in browser” este un domeniu in care aceste tehnologii si-au gasit locul. Ma gandesc ca pe viitor, o metoda de logare intr-o aplicatie web ar putea fi bazata pe recunoastere faciala

3 Likes

Recunoaștere facială, recunoaștere facială, dar ce facem cu chinezii care toți arată la fel?

1 Like

care arata la fel ca japonezii, coreeni precum si alte popare din acea zona a Asiei. :))

Acum, intr-o nota mai serioasa, am fost prin acra parte a Asiei si sa stii ca sunt diferiti. Poate filmele si serialele ne-au facut sa credem ca arata la fel

Poti sa gasesti si in Europa persoane care sa semene
Iphone x a reusit sa fie pacalit de acest lucru.

You’ve got a point anyway !

PS: Ai ridicat o probelma interesanta, totusi !