Google Dart
Web
• Server: sad su onda dobra stara
vremena
• Klijent – dominacija HTML, CSS i Javascript
• Povratak na fat client – Javascript postaje
nezaobilazan
Javascript
• dinamičan jezik nastao kao “ispomoć”
html-u
• prototype baziran
• vrlo slobodna forma pisanja - puno struja
• velik broj loše dizajniranih ponašanja
• skoro nemoguća IDE podrška
• jezik kojeg se voli ili mrzi ili oboje
Javascript - danas
• nodejs - serverska podrška i korisni
alati
• upravljanje bibliotekama - npm i bower
• build alati - grunt i njegovi pluginovi, ima i
drugih
• jslint i jshint
• ECMAScript 6 i 7
• Google radi web aplikacije
• postojeće je sve teže održavati
• performanse postaju problem
• došlo je vrijeme za “pravi” browser jezik
Dartlang - ciljevi
• mora biti strukturiran jezik,
prepoznatljiv programerima
• Javascript je svugdje i dart2js mora biti
“savršen”
• Dart aplikacija se izvršava na DartVM-u, a
fallbacka na Javascript
• DartVM mora biti brz
• mora imati podršku za ugodan rad s
biblioteka i njihovim ovisnostima
• dobra IDE podrška
Što je Dart?
• objektno orijentiran jezik
• baziran na klasama
• single threaded
• “optionaly typed” - podržava compile
provjeru, ako se koriste tipovi
• izvršava se u checked ili production modu
Dart - prepoznatljiv jezik
Dart - metode
Dart - kolekcije
Dart - asinkronizam
• Future
Dart - html
Dart - polymer
• web components
• shadow dom
• predlošci
• data binding
• u razvoju
Dart - polymer
• html template
Dart - polymer
• komponenta
Dart - polymer
• html upotreba
Dart - pub
• pomoćni alat za biblioteke,
po uzoru na bundler
• ovisnosti se definiraju u pubspec.yaml
• preuzete ovisnosti se zapisuju u
pubspec.lock
• pub install, pub upgrade, pub publish
• javni repozitorij http://pub.dartlang.org
Dart - js
• omogućava komunikaciju s
Javascriptom
• još nije podržano korištenje Darta iz js-a, ali
se mogu izložiti Dart funkcije u js
• Dart objekti se ili transformiraju ili proksiraju
prema js-u
Dart - js
Dart - danas
• verzija 1.1
• generirani Javascript podržava sve moderne
browsere
• još nije izašao DartVM plugin za Chrome
• testovi pokazuju da je Dart duplo brži od
Javascripta
• Prevode se mnogi Javascript frameworci:
Angular, jQuery, Bootstrap (Bootjack),
Google maps….
Dart - konkurencija
• CoffeScript - bolja sintaksa za
Javascript
• TypeScript - Javascript od “sutra”, usko
vezan na JS, i dalje pati od nedostataka
• Dart je puno hrabriji jer nije ovisan o JS-u
nego ga samo podržava.
Zašto je Dart spas za nas?
• sličan Javi
• jednostavnost apstrakcije
• moćan IDE - refaktoriranje, provjera sintakse
• sve to nam omogućuje pisanje “čistog” koda
• čist kod je bitan jer ćemo ga više čitati nego
pisati
• čist kod nas čini sretnima :)
Reference
• https://www.dartlang.org/
• https://github.com/sethladd
• http://blog.angulardart.org/
• http://www.žac.com/