• Mutimedia Web la Web Agency Italiana. Contattateci per preventivi gratuiti e consulenze nello sviluppo del vostro sito web o app Ios e Android. Professinalità e assistenza garatite!
    Immagini dei quadri e opere di: Giuseppe Lattanzio

  • Social

    [easy-social-share buttons="facebook,twitter,pinterest,linkedin,digg,stumbleupon,vk,tumblr,print,mail,del,reddit,whatsapp" counters=0 hide_names="force" template="grey-blocks-retina"]
  • WEB AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Trovaci sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB ITALIA

Home / News / JavaScript: molti tool sono scritti in altri linguaggi. Perché?

JavaScript: molti tool sono scritti in altri linguaggi. Perché?


Un recente post pubblicato su 2ality, ha messo in luce un particolare trend che riguarda vari strumenti per lo sviluppo di applicazioni in JavaScript. Da una piccola ricerca su Twitter, è venuto fuori che un numero significativo di strumenti di questo tipo, pur essendo pensato per gli sviluppatori JavaScript, è spesso scritto sfruttando altri linguaggi di programmazione.

È quindi lecito chiedersi il perché di questo trend. Nel seguito cercheremo di rispondere a questa particolare tendenza, rifacendoci alle considerazioni discusse nel summenzionato post di 2ality.

I tool JavaScript scritti in altri linguaggi

Prima di esplorare in dettaglio i motivi di questa tendenza, vale la pena analizzare questi tool per classi.

Compilatori e building tools

Alcuni strumenti che tendono ad essere scritti in linguaggi diversi da JavaScript sono quelli che permettono di compilare, ottimizzare o “minificare” il codice. Tra questi vi sono:

  • esbuild: scritto in GoLang, che permette di minificare ed impacchettare codice JavaScript e TypeScript, in modo da facilitarne la distribuzione
  • swc: scritto in Rust, è un compilatore per JavaScript e TypeScript
  • Google Closure Compiler: scritto in Java, permette di eseguire il controllo della sintassi e l’ottimizzazione del codice JavaScript

Linter e strumenti per la formattazione del codice

Un’altra importante classe di strumenti che sono affetti da questa peculiare tendenza è quella dei linter (strumenti che analizzano il codice in cerca di errori di sintassi, bug e anti-pattern) e degli strumenti che permettono di migliorare la formattazione del codice (beautifiers). Tra questi vi sono:

  • RSLint, scritto in Rust
  • Flow, scritto in OCaml
  • dprint, scritto in Rust

Strumenti di gestione da riga di comando

Ci sono infine alcuni strumenti utili alla gestione di progetti JavaScript tramite riga di comando, scritti in altri linguaggi. Tra questi menzioniamo Fast Node Manager (noto anche come fnm, e scritto in Rust) e Volta, entrambi sviluppati in linguaggio Rust.

Perché utilizzare altri linguaggi?

I principali motivi che stanno dietro a questa tendenza sono principalmente connessi alle performance. Come è noto, infatti, JavaScript ha molte limitazioni, legate sia alla gestione della memoria, sia alla possibilità di parallelizzare l’esecuzione del codice. Inoltre, alcuni linguaggi possono risultare oggettivamente più adatti ad implementare certi tipi di funzionalità. Si pensi, ad esempio, ai linguaggi funzionali come OCaml o Haskell, che possono più facilmente supportare alcuni tipi algebrici, o magari gestire meglio certe strutture dati.

D’altra parte, l’uso di JavaScript ha i suoi vantaggi. Sebbene sia vero che molti linguaggi sono oggi compilabili in JavaScript tramite WebAssembly, è altrettanto vero che JavaScript gode di una delle più vaste comunità di sviluppatori, cosa che faciliterebbe la costruzione dei team di sviluppo ed il reperimento di un maggior numero di contributor per i progetti open source.

Inoltre, l’ampia community JavaScript porta con sé un altro importante vantaggio, ovvero la vasta disponibilità di librerie e strumenti che possono facilitare lo sviluppo dei tool stessi.

Infine, anche la necessità di sfruttare un linguaggio funzionale può essere facilmente aggirata, visto il supporto (seppur non elegantissimo) di TypeScript.

Fonte: 2ality





Source link