Ce este Dart și de ce ar trebui să vă îngrijiți?

În acest tutorial, vă prezint noul limbaj de programare Google, Dart, și explicați de ce ar trebui să vă placă și ce trebuie să știți despre acest lucru. Aflați despre această nouă limbă și formați câteva opinii despre aceasta - va înlocui cu adevărat JavaScript?


Ce este Dart?

Straight de la gura calului (care este situat aici):

Dart este un limbaj de programare orientat pe obiecte, bazat pe clasă, singură moștenire. Dart este opțional tastat ... și susține reified generice și interfețe.
Programele Dart pot fi verificate static. Controlorul static va raporta
unele încălcări ale regulilor de tip, însă astfel de încălcări nu anulează compilația
sau să excludă executarea.

Dacă este o grămadă de mumbo-jumbo grozavă în aburi, permiteți-mi să parafrazez cele de mai sus.

-Class bazate pe: Dart vă așteaptă să utilizați clase. În timp ce JavaScript este destul de clasă, nu puteți scrie Dart fără să scrieți clase.

Single-moștenire: Clasele pot extinde alte clase, dar numai una la un moment dat. Aceasta este o structură comună în programarea orientată pe obiecte. Câteva limbi rare susțin mai multe moșteniri, dar consensul general este acela că cauzează mai multe probleme decât rezolvă, astfel încât majoritatea limbilor OOP merg pentru moștenire singulară.

Limbajul de programare orientat pe obiect: Această afirmație este puțin redundantă, având în vedere un bit de tip "clasă" bazat pe anterior. Dar este semnificativ: Dart este PPO prin și prin. De fapt, este mai degrabă o reamintire a Java (nu JavaScript, Java), care este de asemenea bazată pe clasă.

Opțional tastat: Cele mai multe limbi sunt tipărite sau nu. JavaScript, de exemplu, nu este. Atunci când definiți o variabilă, aceasta va fi neatinsă. Puteți să o setați pe a Şir, apoi la a Număr, și nimeni nu se va plânge (bine, eu voi). Mai mult decât atât, puteți apela mulțime metode pe acea variabilă și nu veți avea probleme până când nu executați acea linie de cod. În schimb, Java este tastat. Fiecare variabilă trebuie declarată cu un tip, cum ar fi Şir sau int. Și când o variabilă este tastată, nu puteți pune în ea o valoare diferită. Și dacă ați încercat să apelați o metodă care nu există pe acel tip, compilatorul va ridica o eroare, permițându-vă să vă cunoașteți greșeala înainte să executați codul. C și variantele sale sunt alte limbi de scriere, în timp ce Ruby și Python sunt alte limbi netumite.

Opțional tastat înseamnă, așa cum ați putea acum ghici, că aveți opțiunea de declarare a unui tip pentru variabile. Este la fel de simplu ca aceasta: puteți lăsa tipul dezactivat și compilatorul nu va efectua nicio verificare suplimentară. Dacă furnizați un tip, compilatorul vă va ajuta cu erori. ActionScript este un exemplu de altă limbă opțional introdusă.

Aceasta este o mișcare destul de inteligentă, una care este probabil destinată să ajute la accelerarea adoptării. Programatorii darts vor fi cel mai probabil programatorii JavaScript care fac saltul. Asigurarea suportului pentru un limbaj necitit oferă JavaScript-ului o curbă mai ușoară de învățare, oferind în același timp o caracteristică pe care mulți programatori insistă că este esențială pentru programele grave, care pot fi preluate ulterior.

Gene generalizate: Genericile sunt o caracteristică lingvistică care vă permite să tastați elementele unei colecții. De exemplu, un mulțime în JavaScript nu se poate garanta că obiectele pe care le conține sunt orice tip specific (cu excepția faptului că JavaScript nu este un limbaj introdus). Cu toate acestea, genericul vă permite să specificați că fiecare element într-un mulțime - sau orice alt tip de colecție - trebuie să fie de un anumit tip, poate a Şir. Astfel, dacă încercați să inserați a Număr în mulțime, puteți primi avertismente. Reified generice merge un pas suplimentar și să permită acest tip de siguranță trecut de compilator. Integritatea tipului la timpul de execuție este păstrată.

interfeţe: O interfață este o tehnică utilă orientată spre obiect. Definește un tip fără definirea funcționalității. Utilizările sunt greu de rezumat într-o propoziție sau zece, este suficient să spunem că acestea sunt integrate în tehnicile de programare avansate (și curate) orientate pe obiecte (și anume modele de proiectare). Odată ce ați gros interfețe, veți plânge lipsa lor în alte limbi.

Verificați static: Aceasta se întoarce la chestia de scriere. Atunci când se utilizează tastarea, o variabilă cu un tip este considerată "tipărite static" și, ca atare, tipul nu poate fi modificat după ce a fost declarat. Aceasta permite compilatorului (sau "verificatorului static") să facă presupuneri despre intențiile dvs. cu codul; adică dacă declarați o variabilă ca a Şir, atunci nu ar trebui să încercați să apelați changeTimeZone pe el. Dacă ați făcut-o (poate ați scris în ceea ce voi gândire a fost acea variabilă care deținea Data obiect), atunci compilatorul vă poate avertiza la eroare fără a fi nevoit să execute codul.


Deci, ce este cu adevărat Dart?

Da, a trebuit să furnizez explicația "oficială" a lui Dart. Dar asta poate sau nu poate să vă satisfacă. Iată ce este Dart, având în vedere dezvoltatorul web tipic.

Dart este înlocuirea Google pentru JavaScript. A fost anunțat în luna octombrie a anului 2011, iar intenția generală este să furnizeze aceleași instrumente pe care JavaScript le are, numai ca unelte electrice. Așa cum sa explicat în pasul anterior, acesta are o mulțime de funcții Object-Oriented pe care programatorul tipic JavaScript nu-l va cunoaște. Dar majoritatea programatorilor care sunt familiarizați cu aceste caracteristici îi vor susține cu ușurință ca fiind esențiali pentru dezvoltarea serioasă.

Pe scurt, Google consideră că JavaScript nu este pregătit pentru a fi o limbă de programare "reală", având în vedere cantitatea de ridicare greu de făcut de când iPhone a împușcat o gaură în zeppelin-ul Flash.

Speranța Google este că Dart va fi susținut nativ de toate browserele importante pe termen lung. Asta evident că nu se întâmplă chiar acum, dat fiind faptul că Dart în sine este încă în modul de lansare timpurie, și nu ne putem aștepta Apple, Microsoft, sau Mozilla să sărind încă la bord. Totuși, ceea ce face ca Dart să se uite la acum este că Google a furnizat un compilator pentru a converti codul Dart în JavaScript obișnuit.

Din punct de vedere personal, acesta este un lucru de care am dorit de când am apelat la JavaScript, provenind de la ActionScript. Spuneți ce veți face despre Flash (și fiți siguri, probabil că am spus și eu), dar ActionScript 3 este un limbaj bun. Trecerea de la AS3 avansată la JavaScript a dovedit că provoacă înjurături. De fapt am jucat cu propriul meu compilator JavaScript (nu am ajuns prea departe și sunt foarte fericit să abandonez proiectul) și am vrut ceva care ar putea cel puțin să mă lase să mă dezvoltăm cu niște priceperi, cum ar fi clase reale, interfețe și tipuri , chiar dacă a fost compilat în JavaScript prototip, un prototip. Procesul de compilare poate surprinde unele erori înainte de a rula proiectul, ceea ce reprezintă un economizor de timp uriaș.

Deci, indiferent dacă Google își face drumul, este cu siguranță posibil să scriem astăzi proiecte Dart pentru web și vom face exact acest lucru până la sfârșitul acestui tutorial. Sperăm că, pe parcurs, vă voi convinge că Dart este de fapt destul de promițător.


Ce e rău cu Dart?

Acum că sunteți entuziasmați de "JavaScript 2.0", acum pentru adevărul dur. Doar Google intenționează să includă suportul pentru Dart în browserul său. Nimeni altcineva nu și-a exprimat interesul pentru asta. De fapt, au fost făcute câteva declarații împotriva Dart, sau cel puțin ideea de a sprijini Dart nativ, de la producătorii de browser-uri înșiși.

Și în timp ce proiectele Dart se pot compila în JavaScript, există în mod necesar niște cheltuieli generale în acest proces. Compilația Dart nu este destul de asemănătoare compilatorului CoffeeScript, care este mai mult un proces unu-la-unu. Dart este propria limbă, cu biblioteci și altele asemenea, iar atunci când se compilează în JavaScript, în consecință, compilează codul suplimentar al bibliotecii în JavaScript-ul rezultat. Acest lucru cântărește în prezent mai mult decât o bibliotecă, cum ar fi jQuery. Acest lucru este obligat sa se schimbe pe masura ce echipa Dart fineseseste compilatia, dar practic este o biblioteca jQuery-ish care este necesara pentru a normaliza diferentele de browser, precum si unele "zaharuri" suplimentare pentru a ajuta JavaScript sa devina mai cinstit fata de natura sa dinamica. Acest tip de greutate în plus nu este teribil, dar dacă construiți un widget UI simplu pentru un site mobil, atunci poate Dart nu este cea mai bună alegere. Acesta va străluci mai mult cu aplicații web la scară largă care se bazează pe JavaScript semnificativ.

În cele din urmă, Dart este în curs de dezvoltare. Este interesant și nu este ceva "greșit" cu Dart per se, dar dacă începeți să dezvoltați în Dart acum, există o anumită șansă ca API să se schimbe sau că lucrurile nu vor fi documentate complet sau corect și cantitatea de informațiile de pe web sunt mai mici decât, să zicem, suma pe care o puteți găsi despre jQuery. Este marginea de sângerare, și asta nu ar putea fi pentru tine, sau pentru un proiect dat.


Ce este minunat despre Dart?

În același timp, este marginea sângerării, și asta e minunat. Investirea într-un timp scurt pentru a învăța Dart ar putea pune într-un loc frumos odată ce Dart este mai stabil. Dacă te implici acum, chiar ai ocazia să ajuți la formarea limbii. Lista de e-mailuri Dart din cadrul Grupurilor Google are adesea unele avantaje între persoanele care sugerează idei și inginerii Google care răspund acestei idei. Adesea, ideile contribuite de utilizatori sunt luate în considerare și nu este neobișnuit să le vedem încorporate.

Am discutat deja despre avantajele unui limbaj orientat pe obiecte și, probabil, este de la sine înțeles că aceste trăsături sunt, de asemenea, minunate.

Dart este, de asemenea, mai degrabă amintesc de Java, și că ar trebui să fie minunat dacă sunteți mai mult de un programator Java (sau C) care doresc să ajungă în dezvoltarea web. Dart ar trebui să ofere o tranziție mai bună în acea lume decât ar fi JavaScript.

În cele din urmă, Dart nu este doar un concurent JavaScript. Este o limbă cu totul nouă și este gata să ruleze oriunde. Este folosit pe partea de server, a la Node.js, și promite să fie un alt instrument pe scară largă, cum ar fi Ruby sau Python.


Ar trebui să vă pasă?

Aceasta este, bineînțeles, o întrebare încărcată și aș invita o Inchiziune bazată pe comentarii indiferent de răspunsul meu. Dar răspund eu.

Probabil că veți avea grijă sau nu aveți grijă, în funcție de cât de mult sunteți deranjați de problemele lui Dart sau de entuziasmul față de avantajele lui Dart. Cele două etape anterioare vă oferă o mulțime de informații care vă conduc la concluzia dvs..

Dacă sunteți tipul de persoană a cărei idee de programare a JavaScript este de a căuta pe web pluginurile jQuery și a le instala în pagina HTML, atunci Dart probabil că nu vă va oferi multă entuziasm. Simțiți-vă liber să nu vă pasă. Și lasă-mă să vă salvez o grămadă de timp și să vă arăt că am bazat restul acestui tutorial presupunând că cititorul îi pasă, cel puțin suficient pentru a explora.

Cu toate acestea, dacă sunteți tipul de dezvoltator de front-end care crede de fapt în JavaScript orientat pe obiecte, încearcă să construiască erori de prindere în scenariile tale și tinde să scrie mai mult JavaScript decât HTML, atunci poate fi un roșcată cineva care are grijă de o programare bună, indiferent de limbă sau de platformă, caz în care ar putea să-ți pese de Dart. Cel puțin îți datorezi pentru tine să-l încerci.

În opinia mea, Dart arată o mulțime de promisiuni și are un loc în programarea web. Dar nu cred că va înlocui sau chiar va schimba cu adevărat stăpânirea JavaScript-ului asupra scripting-ului pe paginile HTML. Cred că va găsi un loc cu aplicațiile web mai serioase, dar dacă producătorii de browsere (cu excepția Google) nu sunt de acord să construiască un Dart VM - pe care nu cred că-i destinul lui Dart, este retrogradat la experimente Chrome, aplicații web de dimensiuni mari. Sarcinile simple de scripting, ca o pauză de interactivitate pe o pagină altfel statică, nu vor beneficia foarte mult de Dart.

După ce am spus asta, simt că întotdeauna merită să învăț despre lucruri noi. S-ar putea să afli că noul lucru nu merită timpul tău, dar ar trebui să-ți formulezi acea opinie pe cont propriu, prin experiență. Vom oferi o experiență în acest tutorial, așa că dacă vă simțiți aventuros, pregătiți-vă pentru Dart.


Concluzie

Această scurtă discuție despre Dart a sperat că a dat naștere interesului tău în această nouă limbă care poate sau nu poate să ia webul prin furtună. Dacă doriți să încercați acest lucru, aruncați o privire la tutorialul meu exclusiv pe Facebook, care vă va pune mâinile murdare cu un simplu proiect Dart.

(Dacă nu sunteți pe Facebook, nu vă faceți griji. Tutorialul va fi în principal pe site-ul Activetuts + în cele din urmă și vom avea mult mai mult conținut Dart aliniat în același timp.)

Vă mulțumim pentru lectură! Împărtășește-ți părerile despre Dart în comentariile.

Cod