Qual è lo stato attuale del linguaggio di programmazione Dart di Google? [chiuso]


15

Dart è stato fuori per anni (negli anni di Internet), ma a giudicare da Google Trends , non ha ottenuto molto clamore e il fatto che funzioni solo in Chrome non aiuta neanche. Tuttavia, Chrome sta guadagnando quote di mercato ogni giorno, il che si presta a una visione migliore di Dart.

Qual è il quadro generale ora? In che stato è la lingua? Le persone lo tengono in grande considerazione? Quota di mercato? Vetrina app Web? Alcune presentano implementazioni che ti fanno andare "Io devo usarlo?"


2
Questa domanda può essere giudicata troppo localizzata nel tempo e non è sicura su come renderla meno localizzata senza chiedere un parere sulla lingua stessa.
Matthieu,

1
@Matthieu: troppo localizzato? Sul serio?
Jim G.

1
@JimG. : Per una lingua che è nella sua versione 0.06 e che viene aggiornata ogni mese , penso che sia giusto dire che questa lingua potrebbe non essere la stessa nei prossimi 6 mesi e che qualsiasi giudizio emesso oggi sarà inutile allora.
Matthieu,

1
Dart funziona nei browser moderni compilandolo in JavaScript.
Seth Ladd

2
Non capisco davvero il motivo per cui questo è stato chiuso. Richiede fatti (quota di mercato / utilizzo), riferimenti (esempi online, ecc.), Lo stato in cui si trova la lingua (anteprima tecnica come indicato nelle risposte), implementazioni di funzionalità (fatto / riferimento / competenza specifica). Il post fornisce anche alcune informazioni simili a quelle che si aspetta, che è chiaramente conciso e puntuale
Mihalis Bagos,

Risposte:


27

La breve risposta a "Qual è lo stato di Dart?" è: è in Technology Preview. Questo è un modo speciale di dire "abbiamo lanciato presto in modo da poter open source tutto e lavorare all'aperto." "Anteprima tecnologica" significa anche "non siamo ancora in Alpha, abbiamo ancora molto lavoro da fare, ma c'è abbastanza per giocare e dare feedback".

Il tempo di Internet può funzionare per le notizie o le iterazioni di prodotti di consumo, ma probabilmente non per qualcosa di così ambizioso e ampio come lo sforzo Dart. Ricorda, Dart non è solo una lingua. È anche un set di librerie, una migliore interfaccia DOM, una macchina virtuale, un editor e l'integrazione con Chrome. Il team sta lavorando molto su molti thread paralleli, ma personalmente mi aspetto che siano trascorsi sei mesi prima che la maggior parte dei pezzi sia posizionata.

Non è vero che Dart funziona solo su Chrome. Dart si compila in JavaScript e prende di mira i browser moderni. Certo, Chrome sarà il primo ad essere lanciato con il supporto Dart nativo, ma garantire che Dart si compili in JavaScript efficace e performante è un vincolo e una caratteristica fondamentale del progetto.

Il quadro generale è che Dart diventerà un ambiente di sviluppo "batterie incluse" per le app Web moderne. L'obiettivo principale di Dart è garantire che il Web rimanga una piattaforma produttiva e divertente per lo sviluppo e la distribuzione di app. Ciò significa che molti pezzi devono andare a posto: lingua, librerie, editor, macchine virtuali e integrazione del browser. Nel complesso, riteniamo che Dart sarà un'opzione interessante per i moderni sviluppatori di app Web.

La grande grande immagine GRANDE è che vogliamo portare gli sviluppatori di app sul Web e vogliamo che gli sviluppatori Web scrivano app Web più complesse. Se usano Dart, è fantastico. Ma alla fine, la lingua non ha importanza. L'unica cosa che conta è che si stanno costruendo app Web moderne complesse, lato client, alta fedeltà, bassa latenza e belle.

La lingua è in uno stato di sviluppo. Vediamo nuove versioni delle specifiche circa una volta al mese. Mancano le funzionalità principali, come la riflessione, ma continuiamo a ripetere. Abbiamo appena aggiunto il supporto map () alla raccolta, ad esempio. Gilad Bracha, un ragazzo che conosce le sue lingue (avendo creato NewSpeak e lavorato su Java Lang Spec) e Josh Bloch, un ragazzo che conosce le sue librerie (avendo scritto Effective Java e lavorato sulle librerie Java Collection) stanno lavorando sul linguaggio e biblioteche, insieme al gruppo maggiore.

Le persone che considerano fortemente Dart è difficile da generalizzare e probabilmente non importa molto per te. Dovresti trarre le tue conclusioni dopo aver giocato con Dart. La mia esperienza è che gli sviluppatori di app di altre piattaforme come Java, C # o Flex trovano Dart attraente e familiare. La mia esperienza con gli sviluppatori JavaScript è divisa. Se lo sviluppatore JavaScript ha anche creato app su altre piattaforme, sono cautamente ottimisti su Dart (o, almeno, sulla soluzione che sta cercando di fornire). Se quello sviluppatore JavaScript è cresciuto su JavaScript e ha programmato solo in JavaScript, c'è più esitazione. Questa potrebbe essere una preoccupazione fondamentale per la lingua, o esitazione nel lasciare una zona di comfort, o semplicemente non imbattersi in casi limite con JavaScript. Questa è solo generalizzazione, ma io '

Per quanto riguarda la quota di mercato, è estremamente presto nel gioco. Probabilmente non è la domanda giusta da porre, dato che Dart non sta nemmeno spedendo. Una domanda più interessante sarebbe: "Qual è la quota di mercato delle app sul Web?" e poi vai a capire come possiamo affrontarlo.

Per quanto riguarda una vetrina di un'app Web, il team di Dart ha creato Swarm, un lettore di news elegante. Sfortunatamente, lo abbiamo solo nel codice sorgente in questo momento: http://www.dartlang.org/samples/index.html

Per quanto riguarda alcune funzionalità "killer", direi che ce ne sono alcune piuttosto interessanti:

  • i tipi opzionali sono fluidi, aggiungono annotazioni e documentazioni per umani e macchine.
  • Gli isolati sono un ottimo modo per raggiungere la concorrenza in modo sicuro.
  • Le librerie (modularità) sono strettamente necessarie per lo stack Web e Dart ha librerie e classi.
  • Le istantanee consentiranno un avvio estremamente rapido
  • Le librerie in bundle (come raccolte, cronometro, ecc.) Unificheranno le basi di codice e ridurranno il codice spedibile
  • Bella nuova interfaccia DOM, che rende molto più piacevole lavorare con DOM. Sembra un codice Dart nativo.

Spero di aver risposto alle tue domande. Penso che l'unica domanda che conta sia: "La mia lingua mi aiuta a costruire app web complesse, ad alta fedeltà, a bassa latenza, modulari e moderne?" Lo stato finale di tutto ciò è semplicemente aiutare un numero maggiore di sviluppatori di app a fornire app di maggior successo sul Web moderno.


è arrivato a questa discussione mentre guardavi il tuo video Introduction to Dart. Pronto per un po 'di pratica su Dart. :)
SachinGutte,

8

Non è possibile misurare l'età del linguaggio di programmazione in "anni di Internet". In effetti, non è possibile misurare alcuna tecnologia effettiva negli anni di Internet. Tutto ciò che puoi davvero misurare negli anni di Internet sono gli hypes, ma gli hypes non riflettono la realtà.

Il dardo è pubblico da 3 mesi. Confrontalo con le tecnologie "fresche" e "calde" sul campo, come CoffeeScript o Node.js, che sono pubbliche rispettivamente da 2 e quasi 3 anni. Vale anche la pena notare che entrambi sono passaggi relativamente piccoli rispetto a Dart. Fondamentalmente CoffeeScript significava collegare un generatore JavaScript a un parser basato su Ruby e Node.js significava associare I / O non bloccanti a Google V8.

Dart è un tentativo di riprogettare la programmazione Web front-end a tutti i livelli, ad esempio sintassi, funzionalità del linguaggio, ambiente di runtime, API. Il confronto tra Dart e CoffeeScript, ad esempio, è come confrontare un prototipo di un aereo personale a propulsione automatica a energia solare con uno Shelby GT del 1968. Certo, il primo ha un potenziale molto più grande, ma investire in esso, per non parlare dell'imbarco, richiede molta audacia. Quest'ultimo ha molte carenze note, ma sono note, il che rende il tutto prevedibile e affidabile.

Naturalmente questa è solo una speculazione, ma penso che Dart sia un vicolo cieco, che alla fine verrà recuperato per far avanzare JavaScript o altre soluzioni. Se vuoi un linguaggio dinamico, CoffeeScript e Parenscript fanno già ciò che Dart promette. Se preferisci una lingua tipicamente statica, allora haXe e Opa faranno il trucco. Tutti e quattro hanno un vantaggio su Dart. E tutti sono progettati per essere compilati in JavaScript come predefinito, non solo come fallback.


3
Penso che mentre Dart è nuovo come lingua, non ho visto nulla di particolarmente innovativo in esso. Per quanto ne so, è principalmente composto da funzionalità di lingue precedenti. Quindi in realtà non è molto simile a un "prototipo di un aereo personale a propulsione automatica ad energia solare".
Tikhon Jelvis,

@ back2dos +1 "Non puoi misurare l'età del linguaggio di programmazione in" anni di Internet ". In effetti, non puoi misurare alcuna tecnologia effettiva negli anni di Internet." Ciò ha aperto una nuova intuizione per me pensare. Perché non è possibile e come si può misurare la tecnologia nelle epoche pre e post internet?
Ubermensch,

@TikhonJelvis: il confronto riguardava più la maturità. Tuttavia, l'energia solare, il pilotaggio automatico e l'aviazione esistono tutti, quindi il veicolo che ho descritto è simile a Dart, "solo" una ricombinazione di idee esistenti. La sfida dell'ingegneria non è quella di ricombinarsi, ma di farla volare;)
back2dos

Il confronto di Dart con altre lingue è fuori da questa discussione, e per quanto posso immaginare a qualsiasi discussione, dal momento che sono comunque cose diverse. Dart è più di un preprocessore e certamente non è orientato al lato server. Sono d'accordo sulla speculazione sul futuro del dardo, e questa è una delle cose a cui non vedevo l'ora di ricevere una risposta
Mihalis Bagos,

@MihalisBagos: Bene, dato che Dart può essere compilato su JS, potresti già eseguirlo su Node.js, quindi può essere usato sul lato server. Inoltre, il tempo è difficile da misurare in modo significativo, quindi per comprendere fino a che punto Dart può arrivare in quale momento, un confronto con una determinata lingua in una fase successiva con un numero comprensibile di funzionalità è praticamente il miglior quadro di riferimento che puoi ottenere.
back2dos,

5

Dart è ancora in anteprima tecnica. Al momento le specifiche del linguaggio hanno la versione 0.0.6, un 0.0.7 è previsto da qualche parte questa settimana. È tutt'altro che "completo". Ci sono molti esempi nel repository: http://www.dartlang.org/samples/index.html

Ecco una visione di ciò che è meglio in termini di sintassi che in JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Disclaimer: è il mio post . Devo dire che qui mi piace JavaScript, ma in alcuni punti ha delle stranezze, che non mi piacciono molto.

C'è anche una comunità in crescita intorno ad essa: http://www.dartosphere.org

Alcune persone sono riuscite a portare Box2D su Dart, un altro ragazzo collegato a CouchDB. Comunque, non c'è niente che dovresti usare in produzione.

In poco tempo Josh Blochua si è unito al team per lavorare su un refactoring dell'API. Puoi aspettarti alcune modifiche anche nell'API Core.

Supporto per browser: è possibile transcompilare Dart in JavaScript, preferibilmente con Frog (non DartC, si compila in enormi file javascript). Dartium è uno dei browser che supporta Dart nativo, una controversia discussa sul ramo Webkit è anche da qualche parte.

La mia aspettativa personale è di ottenere qualcosa di più concreto nel mezzo del prossimo anno. Dalla mia esperienza, Google Devs sta facendo molto per rendere il linguaggio corretto e buono, prendendo in prestito non solo da Java, ma anche da Erlang e JavaScript.

Ecco un esempio, un gioco portato da JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Ci si può aspettare che Dart arrivi su Android, forse anche come "lingua principale". La gente dice che arriverà su AppEngine.

Personalmente penso che Dart sia molto elegante e già piuttosto carino. Inoltre, penso che avrà una quota di mercato una volta completata.

Troverai molte delle tue domande a cui rispondere in queste FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript


Grazie per la risposta diretta orientata, collegamenti molto interessanti!
Mihalis Bagos,

0

Dart è fuori da anni (negli anni di Internet)

Non è nemmeno ampiamente utilizzato ed è immaturo. Le tecnologie pronte per la produzione esistono da 10-15 anni ... per Dart non si può nemmeno dire che è un pre-alfa. Le nuove tecnologie hanno sempre un bell'aspetto, sulla carta, quando nessuno la utilizza.

non ha avuto molto clamore

Penso il contrario. È un peccato che un linguaggio così brutto e arretrato abbia avuto recensioni così positive. Sta tornando dal bellissimo OOP di Ecma / Java Script con eredità parassitaria, chiusure e richiamate ad alcuni OOP di legno, vecchio di dieci anni, presi da Java con tutte le orribili pratiche di programmazione fornite da Java.

Alcune implementazioni di funzionalità che ti fanno andare "Devo usarlo"?

Nessuna. Se conosci Java e hai intolleranza alla conoscenza per imparare correttamente Ecma / JavaScript Dart è probabilmente l'unica cosa che funzionerà per te.

Sai come funziona google. Usano Java molto, quindi probabilmente è per questo che hanno prodotto un linguaggio così orribile ... ci sono solo abituati.

Inoltre sta ulteriormente frammentando il web e posso solo sperare che Mozilla e Opera non lo implementino mai (perché MS non aggiungerà sicuramente supporto per un linguaggio simile a Google Java). Accanto a tutto il concetto è DATA, dovremmo sbarazzarci di linguaggi come C ++ o Java almeno quando si codificano le interfacce utente perché sono molto inefficaci. È come sostituire C ++ con Assembler, perché i programmatori alla fine degli anni '50 si rifiutano di imparare cose nuove.


2
Potresti voler attenuare un po 'i tuoi pregiudizi linguistici; il tuo primo paragrafo fa un buon riassunto e si finisce con una bella osservazione ma quelli si perdono in tutto il "orribile".
Patrick Hughes,

+1 sulla riduzione, c ++ è ancora molto vivo (come lo è l'assemblatore) per applicazioni specifiche. Potrebbe non essere lo strumento migliore per ogni lavoro, ma in molte circostanze è fantastico. Credo che l'assemblatore sia usato nei motori di gioco.
Paul Hiemstra,

Non ho detto che Java o C ++ sono cattivi ... entrambi sono dannosi per le interfacce utente che è ciò che JS è usato (principalmente) per programmare. Entrambi sono buoni in altre aree. Il dardo è solo un approccio ingenuo da parte di persone che programmano solo in Java, quindi probabilmente pensano che Java sia buono per tutto. Oltre a lavorare con MFC e Java su UI, quindi penso di avere il diritto di dirlo :) È come dire che Assembler è più avanzato di C perché ASM è tutto ciò che conosci :)
Slawek,

Ho lavorato con Java e JavaScript e posso dire che il tuo post è orribile e ingenuo. I linguaggi di programmazione non sono religione e Dart ha un approccio piuttosto valido. Non penso che possiamo o dovremmo sbarazzarci di lingue come Java. Questo è solo un discorso da hacker senza alcun ragionamento.
Christian,

Ragionamento? Puoi fare la stessa cosa in JS che in Java ... solo un paio di VOLTE più velocemente + il codice è molto più facile da gestire e modificare, se parliamo di UI. Tempo = denaro. Era abbastanza brutto quando avevamo VBScript ed ECma sui browser insieme ... perché tornare agli anni '90? JS è un linguaggio specifico per un caso molto specifico perché sostituirlo con qualcosa di generico e scadente?
Slawek,

0

Il dardo è un concetto imperfetto che segue le orme di Javascript. Google dovrebbe collaborare alla creazione di un runtime standard per i browser Web (una specie di HTML 6). Simile al codice byte Java o IL di Microsoft.

Non dovremmo standardizzarci su lingue specifiche, ma sui tempi di esecuzione. Il "browser è un sistema operativo". Giusto? WTF google? Segui la tua visione !!!


2
Il bytecode Java è un linguaggio specifico. Come è CIL.
Jörg W Mittag,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.