Un ingegnere Google ha proposto di separare JavaScript in due linguaggi, JS0 e JSSugar, ma non tutti sono convinti

Nel recente incontro bimestrale del comitato TC39 di ECMA International, la European Computer Manufacturers Association, è arrivata una proposta della quale siamo pronti a scommettere si discuterà per molto, molto tempo.

Quello di ECMA un nome che potrebbe essere un filo sconosciuto dai più, ma che ha un ruolo piuttosto fondamentale all’interno del panorama web odierno. Infatti il comitato TC39 è responsabile dello sviluppo della specifica ECMAScript, conosciuta comunemente come JavaScript.

Bene, nell’ultimo incontro l’ingegnere di Google Shu-yu Guo ha presentato una proposta per suddividere JavaScript in due linguaggi distinti: un nucleo principale, chiamato JS0, implementato dai motori runtime, e una variante avanzata, JSSugar, supportata da strumenti di compilazione.

L’autore della proposta sostiene che le nuove funzionalità di JavaScript spesso portano effetti negativi per gli utenti ed in particolare è l’aspetto della sicurezza ad essere al centro dell’attenzione, poiché la complessità dei motori JavaScript causata della necessità di garantire alte prestazioni, ne compromette sovente la sicurezza.

Il modello suggerito non prevede di eliminare le funzionalità esistenti ma di cambiare l’approccio per il futuro: le nuove funzionalità di sintassi verrebbero implementate in appositi strumenti di compilazione, piuttosto che nei motori JavaScript. Questo linguaggio “core”, JS0, sarebbe semplificato e si concentrerebbe solo sulle API essenziali e le funzionalità di base. Al contrario, JSSugar sarebbe il linguaggio avanzato, trasformato in JS0 tramite tool come Babel o il compilatore di TypeScript.

Senza scendere ulteriormente in dettagli tecnici, poiché ci vorrebbe un vero developer e non chi sta scrivendo, si fa in fretta a capire come la proposta sia già oggetto di un feroce dibattito.

Come racconta nel dettaglio Dev Class, alcuni sviluppatori sostengono che non si dovrebbe dare ufficialità all’attuale ecosistema di strumenti di JavaScript, preferendo un ritorno a un linguaggio JavaScript senza dipendenze, qualcuno si spinge a dire che Vanilla JS, ossia JavaScript nudo e crudo, è morto:

In conclusione, la proposta mira a semplificare i motori JavaScript migliorando sicurezza, performance e stabilità, ma tutto ha un prezzo, ed in questo caso questo si materializza nella dipendenza dagli strumenti di compilazione, che solleva preoccupazioni nella community.

La discussione, questo è certo, non è che appena iniziata.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

12 risposte a “Un ingegnere Google ha proposto di separare JavaScript in due linguaggi, JS0 e JSSugar, ma non tutti sono convinti”

  1. Avatar JustATiredMan
    JustATiredMan

    invece di ridurre i linguaggi, li vogliono far proliferare. Non ce ne sono già abbastanza ?
    Facessero uno standard tipo il typescript e lo facciano girare nativo sui brower, forse già quello sarebbe abbastanza.

  2. Avatar Alessandro Scarozza
    Alessandro Scarozza

    gia esiste questa separazione: JavaScript e TypeScript

  3. Avatar Alessandro Scarozza
    Alessandro Scarozza

    rendere TypeScript nativo per browser è l'opposto della soluzione.

    il problema attuale è che Javascript evolve e non tutti i browser supportano contemporaneamente le novità.

    al contrario dovrebbero tenere Javascript (o js0 come lo chiama il tizio) piu basilare e fermo possibile in modo da avere un supporto piu omogeneo possibile tra i vari browser, ed avere un altro linguaggio tipo typescript che compila in js ed evolve con le nuove funzionalità

  4. Avatar Matzaptor

    Ma typescript ti genera comunque del JavaScript che viene eseguito dal browser. Non ho seguito da vicino la faccenda, spero quindi che il browser non dovrà più eseguire JavaScript ma il compilato di esso. Ma forse ho capito male…

    Stessa cosa spero di vederla in futuro con python. Magari scrivere python ma poi compilarlo. Se compilato ovviamente si risolvono tante problematiche, anche se di fatto per compilarlo potresti inciampare in altre…

  5. Avatar Alessandro Scarozza
    Alessandro Scarozza

    il compilato di typescript è javascript.

    il punto è cercare di tenere il linguaggio eseguito dai browser il piu stabile possibile in modo da avere tutti i browser allineati

  6. Avatar T3mp
    T3mp

    "il compilato di typescript è javascript"
    questa è troppo bella… me la segno.

  7. Avatar Kib
    Kib

    Il termine compilato, nel suo significato originario, non è esatto ma che ci sia una conversione TS->JS è corretto

  8. Avatar Rez 23
    Rez 23

    Bravo segnatela perché è esattamente così che funziona.
    il compilatore di TupeScript genera nuovo codice JavaScript che verrà eseguito nel browser.
    (lo strumento che effettua tale operazione viene comunemente chiamato source-to-source compiler)

  9. Avatar Alessandro Scarozza
    Alessandro Scarozza

    Cosa c’è di strano?

  10. Avatar Alessandro Scarozza
    Alessandro Scarozza

    Il termine esatto sarebbe transpilato, ma non mi sembrava il caso di usarlo

  11. Avatar Marco Rossi
    Marco Rossi

    eh non c'è niente da fare, gli amanti del codice compilato devono sempre fare invasione di campo … dopo di questo arriverà anche l'html compilato?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *