Logo Blogo

Dart, il nuovo linguaggio per il web presentato da Google

Pubblicato: 10 ott 2011 da Giacomo Picchiarelli

Dart Dart è un nuovo linguaggio di programmazione presentato da Google concepito per lo sviluppo di applicazioni web. Lars Bak lo definisce come adatto agli scenari più disparati, dal semplice progetto personale agli applicativi su vasta scala con infrastrutture complesse. Ovviamente il progetto è in fase iniziale e Google mira a raccogliere esperienze e feedback dagli sviluppatori per capirne le reali potenzialità.

Il codice è progettato per essere simile ai linguaggi tipo C#/Java, ma con la necessaria flessibilità dei linguaggi web-oriented, inoltre è evidente la somiglianza con javascript. Dart è dinamicamente tipizzato e orientato agli oggetti; i programmi scritti in Dart possono essere eseguiti in due modalità: con virtual machine DartVM oppure utilizzando un apposito compilatore per tradurre il codice in javascript. Attualmente è in discussione la possibilità di integrare DartVM all’interno di Google Chrome.

Dart può essere eseguito anche all’interno del codice HTML con l’apposito MIME type 'application/dart', in definitiva sembrerebbe avere tutte le caratteristiche necessarie di una buona tecnologia di sviluppo per il web, ma non credo che se ne sentisse davvero il bisogno.

Via | Chromium Blog

1 stelle2 stelle3 stelle4 stelle5 stelle (1 Voti | Media: 5 su 5)
condividi condividi
34 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • picchio picchiatello

    10 ott 2011 - 13:30 - #1
    -1 punto
    Up Down

    Ennesima dispersione di energie nel wrappare qualcosa!!

  • Profilo di tassinarimauro

    tassinarimauro

    10 ott 2011 - 13:50 - #2
    0 punti
    Up Down

    Un altro linguaggio!?? No!!!!
    …Scherzi a parte:
    Se Dart potesse mandarne in pensione un paio dei vecchi sarebbe ben accolto.

  • Un Altro Scettico

    10 ott 2011 - 13:58 - #3
    0 punti
    Up Down

    Mah, non capisco cosa ci sia di sbagliato in JavaScript da doverlo sostituire… JS è uno standard (almeno di fatto) nel web, e con Node.js va anche ben oltre (dai server web alle applicazioni command line).
    Non capisco Google e questo spreco di energie… Per non tirare in ballo, poi, Native Client, che rievoca le ombre del vecchio ActiveX…

  • -.-

    10 ott 2011 - 14:04 - #4
    -1 punto
    Up Down

    ma si frammentiamo un altro po’

  • Caterpillar'909099

    10 ott 2011 - 14:17 - #5
    -1 punto
    Up Down

    Basta frammentazione!!!

  • Dukom

    10 ott 2011 - 14:19 - #6
    0 punti
    Up Down

    Ottimo, un altro linguaggio da imparare e rimpinguare il CV!

    D.

  • MpMp

    10 ott 2011 - 14:20 - #7
    0 punti
    Up Down

    e gwt che fine fa?
    non sono la stessa cosa?

  • Kim Allamandola

    10 ott 2011 - 14:34 - #8
    0 punti
    Up Down

    @MpMp #7
    GWT (Google Web Toolkit) è una piattaforma Java by Google, questo è un teorico
    sostituto di javascript…

    Se javascript crepa faccio i salti di gioia al punto da dimagrire di 5Kg, ma
    se viene sostituito dall’ennesimo linguaggio inutile quando ci sono Python,
    Ruby (che a Google non piace, forse per la gestione malata di Unicode) ecc
    l’unica cosa che faccio è imprecare…

  • plutarco

    10 ott 2011 - 14:41 - #9
    0 punti
    Up Down

    a prima vista sembra anche a me inutile, ma definire buono javascript mi sembra eccessivo… è uno dei pochi linguaggi in circolazione che si è evoluto relativamente poco.. non ha una chiara e semplice sintassi per usarlo ad oggetti… ogni browser c’ha messo il suo…
    se non fosse per librerie alla jquery sfido chiunque a scrivere del buon codice, con buone performance.. che va bene piu’ o meno ovunque..

    non ha niente a che vedere con gwt, almeno apparentemente, visto che è proprio un linguaggio tutto suo che ha tra le varie cose un traduttore in javascript

  • Profilo di daddye

    daddye

    10 ott 2011 - 14:46 - #10
    0 punti
    Up Down

    Si infatti, penso più che altro sia il caso invece di buttarsi su queste schifezze che frammentano e basta di puntare su qualcosa di esistente.

    Io suggerirei di rinnovare i javascript usando la sintassi Coffee nativa, allora si che sarebbe rivoluzione.

  • Paul123

    10 ott 2011 - 16:13 - #11
    0 punti
    Up Down

    @daddye
    Guarda che Dart offre esattamente questa cosa. Se leggi l’articolo principale si dice appunto che possa essere eseguito in maniera nativa da una JVM o tradotto in JavaScript attraverso un compilatore.

    A me come linguaggio sembra essere molto interessante, JavaScript per certi aspetti è veramente una schifezza.
    Il semplice fatto, ad esempio, di dover usare continuamente gli operatori === e !==, perché == e != non si comportano come in qualsiasi altro linguaggio, o il weak typing (’2′ + 2 === ‘22′ && ‘2′ * 2 == 22) mi fanno venire il voltastomaco.

    Inoltre che già il problema della minimizzazione del codice JS, quindi aggiungere ad un applicativo web un ulteriore substrato converta il codice Dart in JavaScript non costerebbe praticamente nulla.

  • Paul123

    10 ott 2011 - 16:17 - #12
    0 punti
    Up Down

    Nell’esempio del weak typing intendevo ‘2′ + 2 === ‘22′ && ‘2′ * 2 === 4.

  • MpMp

    10 ott 2011 - 19:01 - #13
    0 punti
    Up Down

    Con GWT scrivi in Java e compili in Javascript, il che mi sembra molto simile a questo linguaggio di programmazione, almeno per la parte non eseguibile nella JVM.

  • Florianoo

    10 ott 2011 - 21:31 - #14
    0 punti
    Up Down

    sperando non lo cambino frequentemente..
    già con android dimostrano che la stabilità delle api non è una priorità.

  • Profilo di duncanita

    duncanita

    11 ott 2011 - 09:14 - #15
    0 punti
    Up Down

    Personalmente mi piacerebbe se al posto di JS ci fosse la possbilità di usa Ruby come linguaggio di scripting lato client…

  • abral

    11 ott 2011 - 10:18 - #16
    0 punti
    Up Down

    Mi sa che è proprio inutile. Con JavaScript già è possibile fare tutto semplicemente, che bisogno c’è di un nuovo linguaggio? Piuttosto Google potrebbe concentrare le risorse per creare qualche utile libreria JavaScript!

  • DevURandom

    11 ott 2011 - 17:31 - #17
    0 punti
    Up Down

    quoto paul123 100%.

    Hahaha quanti commenti stupidi da mediocri inutili pseudo-programmatori…
    mi fate sbellicare. Ma pensate che google non sappia quello che fa?

    Javascript non e’ un linguaggio. Un linguaggio non tipizzato E’ un ABORTO.

    Ben venga Dart, finalmente…

  • /V ---

    11 ott 2011 - 17:44 - #18
    0 punti
    Up Down

    L’impressione che mi ha dato é che dovrebbe permettere anche al piú mediocre programmatore di scrivere del codice mediamente decente. Inoltre a un type system “opzionale”, per cui uno puó teoricamente, tirare su del codice non tipizzato in fretta e furia per fare un prototipo e successivamente implementargli su i tipi.

    Credo che il type system (ma potrei sbagliarmi) sia anche quel che dovrebbe permettere a google ottimizzazioni a livello di compilatore e VM non possibili in javascript.

    Gli esempi di codice sono chiari e francamente mi pare abbiano implementato su il minimo indispensabile per fare della programmazione pulita ma potente (ereditarietá singola, classi e interfacce esplicite e distinte, sintassi derivata dai soliti C/C++/Java).

    Insomma ha il potenziale per diventare una gran figata.

    PS: no, javascript é una schifezza universalmente nota. Se pensate il contrario o ci avete speso troppo tempo su o troppo poco. Fatevene una ragione.

  • abral

    12 ott 2011 - 00:33 - #19
    0 punti
    Up Down

    DevURandom la tua arroganza è davvero proverbiale. Un linguaggio non tipizzato è un aborto? Dall’alto della tua infinita conoscenza potresti spiegarmi per quale motivo?

    @/V —: Tu saresti il depositario della verità? Perché dovrei farmi una ragione che un linguaggio con cui mi trovo bene in realtà fa schifo solo perché tu dici così?

  • Profilo di duncanita

    duncanita

    12 ott 2011 - 09:20 - #20
    0 punti
    Up Down

    A me sembra quasi un aborto, difficile da leggre come tutti i linguaggi che riprendono la sintassi del C.
    Pieno di punti e virgola, parentesi e graffe generalmente inutili.

    Interfacce, inutili, meglio se avessero implementato il Duck Typing.

    Ribadisco che avrei preferito che avessero pescato a piene mani da Ruby.

  • Profilo di 0xdeadbeef

    0xdeadbeef

    12 ott 2011 - 11:58 - #21
    0 punti
    Up Down

    Introdurre un linguaggio dalla sintassi e il comportamento simili a quelli di java - che, volenti o nolenti, è attualmente il più diffuso - mi pare tutt’altro che sciocco.

    Ora la cosa che a Google deve importare è un’altra: definire uno standard nella maniera più completa possibile, lasciando poche possibilità ad eventuali interpreti/VM di terze parti di creare n-mila varianti inutili - ed intenzionalmente dannose - con lo stesso nome. Con un’accorta definizione del linguaggio il brevetto si può anche evitare.

  • Profilo di duncanita

    duncanita

    12 ott 2011 - 12:52 - #22
    0 punti
    Up Down

    Sarà anche la più diffusa, ma basta mettere affiancati due sorgenti che fanno la solita cosa per vedere quale sia il più leggibile tra i vari (Java, C#, JS ecc) e Ruby.

  • Profilo di 0xdeadbeef

    0xdeadbeef

    12 ott 2011 - 13:16 - #23
    0 punti
    Up Down

    @duncanita
    Ciò è molto soggettivo. Per te sarà così mentre per me, che ho evidentemente abitudini molto diverse, è l’esatto contrario.

    Ma alla fine il dibattito sulle sintassi lo vedo un po’ fine a sé stesso. La differenza di qualità la fa il trio progettista-piattaforma-sviluppatore, raramente il linguaggio.

  • Profilo di duncanita

    duncanita

    12 ott 2011 - 13:45 - #24
    0 punti
    Up Down

    Gurda, scrivo tutti i giorni codice C# pert lavoro da anni ormai, magari non sono un mostro, a casa mi sto dilettando con Ruby per progetti personali, prima gli avevo dato un occhio superficiale, ma appena capite due otre cose semplicissime la differenza di espressività tra Ruby ed altri linguaggi C Style è enorme, almeno personalmente.

    Niente punti e virgola che nel 99% dei casi sono inutili, tutto molto più coinciso, ma espressimo.

    Non concordo sul fatto che il linguaggio più framawork faccia poca differenza, dal, piccolo, confronto che ho potto fare in ruby si fanno le medesime cose scrivendo meno, un esempio? spariscono le interfacce con il duck typing non servono, tutto codice in meno da scrivere.

  • apeacox

    12 ott 2011 - 15:16 - #25
    0 punti
    Up Down

    @duncanita concordo sui pregi di ruby, visto che lo uso con profitto tutti i giorni. tuttavia, vorrei farti presente che anche javascript supporta l’approccio al duck-typing ;)

  • Profilo di 0xdeadbeef

    0xdeadbeef

    12 ott 2011 - 16:09 - #26
    0 punti
    Up Down

    Sul lavoro sono un analista programmatore ma ho fatto una lunga gavetta come programmatore semplice. Secondo me i punti e virgola sono l’ultimo dei problemi, ammesso che lo siano. Tutti i linguaggi hanno un modo di contrassegnare la fine di un comando o di distinguerlo da quello successivo. Il CR in questo senso mi sembra più “equivoco” perché può essere interpretato da chi lo legge come un normale modo di spezzare la riga e ciò riduce la leggibilità del codice. Ma come sempre parlo per me.

    Il ruby è un bel linguaggio, mi ci sono dilettato anch’io per un po’ senza alcuna pretesa. Anche la sua piattaforma di sviluppo mi pare molto interessante. Mi piace ma, come dicevo prima, sta a chi lo usa sfruttarne le caratteristiche.

    Sul duck typing non nego che possa offrire dei vantaggi, soprattutto nel prototyping, ma il problema più grande che porta con sé è il fatto di permettere grossi pasticci e di vederne le conseguenze soltanto al runtime. Non che senza ciò sia impossibile, ma molto più raro. Allora la domanda da porsi prima di rifiutarsi di scrivere un’interfaccia è: “pago prima o pago dopo?” Poi quanto occorra pagare dipende ovviamente dalle circostanze.

  • Profilo di 0xdeadbeef

    0xdeadbeef

    12 ott 2011 - 16:19 - #27
    0 punti
    Up Down

    PS. se hai avuto problemi con i punti e virgola allora ti sconsiglio fortemente di omettere parentesi. Insomma evita di fare cose tipo:
    if (foo())
    bar();
    perché basta una svista e ti ritrovi un punto e virgola dopo l’if. Poi hai voglia a cercare il problema…

  • Profilo di egoalesum

    egoalesum

    12 ott 2011 - 17:03 - #28
    -1 punto
    Up Down

    Magari potrebbe interessare anche questo punto di vista :)
    http://www.quirksmode.org/blog/archives/2011/10/dart_or_why_jav.html

  • Kim Allamandola

    12 ott 2011 - 18:54 - #29
    0 punti
    Up Down

    Dire che assomigliare a Java sia utile è essere come quelle code-monkeys php
    che dicono di aver scelto il php perché assomiglia al C che hanno imparato
    all’università…

    Le sintassi tipo Python e Ruby sono *vincenti* come lo fu ai tempi la sintassi
    del C rispetto all’assembly, e questo indipendentemente da ogni altro aspetto
    del linguaggio (vedi performance, compilato-vs-interpretato, interprete-vs-vm
    ecc.); il perl oggi è sempre più in calo un po’ per l’enorme tempo di attesa
    di Parrot&c ma sopratutto perché è un linguaggio che permette di scrivere del
    codice assai difficile da leggere.

    Del resto Google stà pagando e caro la scelta di Java per Android (e, ot, stà
    pagando la scelta della licenza Apache, se avesse puntato sulla GPLv3 il caso
    Baidu e le liti coi vari carrier sarebbero ben diversi).

    Volete un linguaggio che abbia successo? Ok, la sintassi e la standard library
    del Python, grazie. La possibilità di fare WebApp con il layout gestito tipo
    librerie GTk/Qt/Wx e il resto son cavoli dei designer con CSS, la possibilità
    di fare WebApp e DesktopApp con la stessa libreria, una documentazione chiara
    e nessuna interpretazione personale del singolo browser (stile Java). Fatelo,
    e avrete un successo, fateci un OS ed avrete una nuova UNIX-revolution.

    Continuate a puntare su Java, PHP ecc e seguirete l’esperienza di Go (lo avete
    presente?) del D, e di tutti gli altri linguaggi creati in tempi recenti: non
    si impara qualcosa che non serve, specie se ex-novo.

  • Profilo di 0xdeadbeef

    0xdeadbeef

    12 ott 2011 - 20:04 - #30
    0 punti
    Up Down

    @Kim
    Come al solito, trovo che confrontare linguaggi con la stessa potenza e lo stesso livello di astrazione sia utile più o meno come fare a gara a chi ce l’ha più lungo. Queste cose le lascio a chi ha voglia di sfigheggiare o a chi non ha mai scritto codice serio in vita sua. Si leggono flame così dappertutto ma - poiché siamo un Paese di fenomeni - li si trova soprattutto in italiano.

    Del resto creare bindings per python occupa lo stesso tempo che crearle per java. E uno sviluppatore con un cervello sulla testa sa scrivere ottimo codice indipendentemente dal linguaggio/piattaforma su cui si specializza. Se non ce l’ha, difficilmente combinerà qualcosa di buono in un qualsivoglia linguaggio.

    Google fa quello che gli dice il mercato. Se il mercato gli dice che java lo conoscono tutti - dai code monkeys ai lead programmers - ed ha la piattaforma più produttiva in assoluto, Google segue java. Se il vento cambia, hanno abbastanza uomini e mezzi per cambiare anche loro. Non mi pare ci sia molto da capire. E di certo non andranno falliti per questo. Poi possiamo anche fare manifestazioni contro le discriminazioni su python ma la sostanza non cambia.

  • Kim Allamandola

    12 ott 2011 - 20:27 - #31
    0 punti
    Up Down

    @0xdeadbeef #30
    Sul fatto che le discussioni sui linguaggi di programmazione sono in genere dei
    flame, siamo assolutamente daccordo; sul seguire il mercato no: se il mercato
    va verso i derivati (es. del 2006-8) è giusto e logico andarci? Se si deve
    perseguire il rendimento maggiore è logico comprare bond greci?

    Il discorso sui linguaggi è lo stesso.

    Ritengo che un’azienda debba essere amministrata da manager e guidata, specie
    nel plannig da tecnici del suo settore. Il mercato non “si segue” si segue la
    propria competenza tecnica, l’unica cosa che vale nel medio e lungo periodo.
    Fare come i lemming porta alla stessa fine dei lemming e ci sono n-mila esempi
    che lo provano. All’inizio Symbian era l’ideale, eppure i tecnici dicevano che
    non poteva andare, nessuna azienda era disposta ad ascoltare, i risultati li
    sai. Oggi è il turno di Android con Java, anche qui direi che i risultati siano
    molto prevedibili; hint: che ti dicono i recenti (e non solo recenti) problemi
    evolutivi di Android? Che ti dicono le applicazioni Java che trovi in giro da
    Eclipse a Netbeans passando per WebSphere?

  • Profilo di duncanita

    duncanita

    12 ott 2011 - 22:58 - #32
    0 punti
    Up Down

    @apeacox
    Si, ha il duck typing, ma come leggibilità non è il massimo. Il riferimento riguardava Dart, che a quanto pare ha le interfacce…

    Poi un bravo programmatore è bravo a prescindere dal linguaggio, ma lavorare con uno strumento migliore aiuta anche chi è bravo.

  • Profilo di 0xdeadbeef

    0xdeadbeef

    13 ott 2011 - 00:04 - #33
    0 punti
    Up Down

    Mi pare che il discorso sui bond greci abbia poca attinenza qui; gli strumenti di sviluppo java che non evolvono sono legati a dei paradigmi di sviluppo - in cui i produttori di tool di progettazione lucrano alla grande, altro che websphere - che sono rimasti invariati da almeno 20 anni; eventuali problemi di android sono problemi di android.

    Senza offesa ma ci vedo un totale nonsense solo per insistere sull’ennesimo java vs python. Quindi con permesso me ne traggo fuori.
    Saluti.

  • abral

    14 ott 2011 - 22:44 - #34
    0 punti
    Up Down

    Anche questo mi sembra molto interessante: http://lethalman.hostei.com/maja/index.html

L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito su tutti i blog di Blogo e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento