La notizia del giorno è che Google ha rilasciato un nuovo linguaggio di programmazione, pensato come il "linguaggio per il Web". Il suo motto è structured web programming e il suo nome è Dart.
Ovviamente ci siamo tutti subito lanciati a leggere le specifiche e a seguire i primi tutorial: le domande e le prime reazioni non si sono certo fatte aspettare.
Tecnicamente il linguaggio è sicuramente interessante, anche se certamente non rivoluzionario. Vediamo di capire un po' meglio di cosa si tratta.
L'utilizzo principale sarebbe quello all'interno di pagine HTML, esattamente come JavaScript, salve alcune importanti differenze. C'è tanto di apposito MIME type application/dart
da utilizzare nei nostri tag <script> per includere il sorgente del linguaggio. Ovviamente è necessario che il browser abbia al suo interno una Virtual Machine che interpreti Dart: per adesso ci tocca aspettare. Tra le librerie fornite c'è ovviamente anche quella che permette di accedere al DOM, con la solita, odiosa interfaccia standard.
La sintassi è la familiare C-like, con tanto di funzione entry point main()
.
Interessante l'approccio alla definizione delle variabili: puoi infatti scegliere se definire anche il tipo oppure no, usando il semplice var
piuttosto che String
, per esempio.
Il motivo di un approccio del genere è favorire l'utilizzo di Dart in fase di prototipazione per poi magari tornare a definire attentamente le variabili in un secondo tempo.
La string interpolation, ovvero il poter usare all'interno di stringhe delle espressioni del linguaggio (grande carenza del JavaScript) è presente, molto potente e con sintassi alla Ruby.
Il modello a oggetti è Class based, con tanto di interfacce. Tutti i metodi o le variabili sono ad accesso pubblico eccetto quelle che iniziano per "_", che sono private.
Magari leggendo le specifiche tecniche del linguaggio qualcuno potrebbe storcere il naso, ma sicuramente vanno incontro agli obiettivi di design: creare un linguaggio flessibile ma anche rigoroso e strutturato, dalla sintassi e la semantica familiare ad un gran numero di programmatori.
Questi obiettivi sono probabilmente stati raggiunti, ma quello che la maggior parte delle persone si sta chiedendo in questo momento è "Perché Google si sta impegnando in un linguaggio di questo tipo?" oltre a farlo solo perché lo possono fare, come spesso Big G è abituata a fare.
L'obiettivo strategico principale parrebbe essere evidente: prendere il posto di JavaScript (anche se qualcuno pensa addirittura a Java o fa interessanti paragoni con quel linguaggio), ma vista la resistenza e l'enorme inerzia di un linguaggio come JavaScript, che vive adesso proprio il suo momento più brillante, se questo è l'obiettivo le tempistiche si prevedono veramente lunghe; ne riparleremo quando uscirà Chrome con la VM Dart, così che potremo anche effettuare qualche benchmark per vedere quanto questo sia effettivamente più veloce di JavaScript.
Nel frattempo esistono dei tool interessanti per chi vuole fare da subito degli esperimenti con il linguaggio. Esiste un compilatore (sarebbe meglio chiamarlo un transpiler) che permette di convertire codice Dart in codice JavaScript e anche un tool scritto in Python che converte il codice Dart inserito in pagine HTML in pagine HTML con all'interno del codice JavaScript. Il tool si chiama infatti HTMLConverter.
Chi volesse giocare con il linguaggio, può accedere al repository ufficiale su Google Code, armarsi di santa pazienza e compilarsi il tutto.
Ultima nota: le specifiche del linguaggio sono ancora in Draft per cui è anche possibile che cambino, e sono rilasciate con licenza Creative Commons BY. La licenza dei sorgenti invece parrebbe essere una BSD.