typescript, dart, coffeescript and javascript comparison
TRANSCRIPT
![Page 1: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/1.jpg)
TypeScript, Dart, CoffeeScriptand JavaScript Comparison
Li fe M
ic hae l .c o
m
Haim MichaelSeptember 7th, 2016
All logos, trade marks and brand names used in this presentation belong to the respective owners.
![Page 2: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/2.jpg)
Table of ContentLi fe M
ic hae l .c o
m● What is JavaScript?
● ECMAScript Specification
● Transpiling into JavaScript
● What is TypeScript?
● What is Dart?
● What is CoffeeScript?
● Detailed Comparison
● Questions & Answers
![Page 3: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/3.jpg)
What is JavaScript?Li fe M
ic hae l .c o
m● The JavaScript programming language is been used
on multiple different platforms. Some belong to the
client side. Other to the server.
![Page 4: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/4.jpg)
ECMA Script SpecificationLi fe M
ic hae l .c o
m● The ECMAScript sets some order in the JavaScript
eco system.
● ECMAScript 2015 (ES6)
ECMAScript 2016 (ES7)
ECMAScript 2017 (ES8)
...
![Page 5: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/5.jpg)
ECMA Script SpecificationLi fe M
ic hae l .c o
m
http://kangax.github.io/compat-table/es6/
![Page 6: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/6.jpg)
Transpiling into JavaScriptLi fe M
ic hae l .c o
m● There is a huge number of various programming
languages we can transpile into JavaScript.
https://github.com/jashkenas/coffeescript/wiki/list-of-
languages-that-compile-to-js
![Page 7: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/7.jpg)
What is TypeScript?Li fe M
ic hae l .c o
m● The TypeScript programming language was
developed by Microsoft. It is an open source
programming language.
● The code we write in TypeScript is transpiled into
JavaScript, so we can basically use TypeScript
wherever we use JavaScript.
http://www.typescriptlang.org
![Page 8: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/8.jpg)
What is TypeScript?Li fe M
ic hae l .c o
m● TypeScript is a superset of JavaScript. It includes the
entire JavaScript programming language together with
additional capabilities.
● In general, nearly every code we can write in
JavaScript can be included in code we write in
TypeScript.
![Page 9: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/9.jpg)
What is TypeScript?Li fe M
ic hae l .c o
m● TypeScript's main added value is the ability to code
with types. It allows us to define new classes and new
interfaces. TypeScript allows us to specify the type of
each and every variable and is even capable of
interfering the type by itself. TypeScript allows us to
use JavaScript as if it was a strictly type programming
language.
![Page 10: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/10.jpg)
What is TypeScript?Li fe M
ic hae l .c o
m
class Rectangle{ private width:number; private height:number; constructor( w:number, h:number) { this.setWidtht(w); this.setHeight(h); } setWidtht(num:number):void { if(num>0) { this.width = num; } } …}
![Page 11: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/11.jpg)
What is Dart?Li fe M
ic hae l .c o
m● Dart is an open source class based, object oriented,
optionally typed programming language that allows us
to develop browser based one page web applications.
Dart can be used for the server side.
● Dart is developed by Google and the initial plan was
to have a Dart VM installed on every web browser.
http://www.dartlang.org
![Page 12: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/12.jpg)
What is Dart?Li fe M
ic hae l .c o
m● Using the Dart virtual machine we can execute the
code written in Dart on the server side.
● We can execute the code either by using a web
browser that supports Dart or by compiling the code
into JavaScript.
![Page 13: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/13.jpg)
What is Dart?Li fe M
ic hae l .c o
m
class Rectangle{
double _width; double _height; Rectangle(double w,double h) { width = w; height = h; } get width => _width; set width(size) => (size>0)?_width=size:_width=10.0; get height => _height; set height(size) => (size>0)?_height=size:_height=10.0; area() => width * height; perimeter() => 2*(width+height);}
![Page 14: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/14.jpg)
What is Dart?Li fe M
ic hae l .c o
m
main(){
var ob = new Rectangle(3.2,4.4); ob.width = 20.2; ob.height = -4.1; var area = ob.area(); print("area is $area");}
![Page 15: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/15.jpg)
What is CoffeeScript?Li fe M
ic hae l .c o
m● CoffeeScript is a relatively small programming
language we can use for writing code and later
transpile it into JavaScript.
● CoffeeScript evolvement was inspired by Python and
Ruby. CoffeeScript provides developers with tools
similar to those you can find in Python and Ruby.
http://www.coffeescript.org
![Page 16: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/16.jpg)
What is CoffeeScript?Li fe M
ic hae l .c o
m
class Person
constructor: (@firstName,@lastName,@id) ->
printDetails: -> console.log "first name is #{@firstName}" console.log "last name is #{@lastName}" console.log "id is #{@id}"
Person a = new Person("haim","michael",123123)Person b = new Person("danidin","jack",234234)
a.printDetails()b.printDetails()
![Page 17: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/17.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Strict
Dynamic
Wh
ite S
pace
s S
ensi
tivity
Types Capabilities Lo
w
Hig
h
Coffee Script
Dart
TypeScript JavaScript
![Page 18: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/18.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Low
High
Ca
pabi
litie
s to
Use
3rd P
arty
JS
Lib
rarie
s
Object Oriented CapabilitiesLo
w
Hig
h
Coffee Script
Dart TypeScript
JavaScript
![Page 19: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/19.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Not Available
Available
Re
leas
e of
New
Ver
sion
s
Independent Virtual MachineR
are
Fre
quen
tly
Coffee Script Dart
TypeScript
JavaScript
(1) https://www.techempower.com/benchmarks/
(1)
![Page 20: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/20.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Simple Difficult
Sup
port
for
Gen
eric
s
Developing with Angular 2N
ot A
vaila
ble
Ava
ilabl
e
Coffee Script
Dart
TypeScript
JavaScript
![Page 21: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/21.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Low
Sup
port
for
Met
hods
Ove
rload
ing
Support for Use of InterfacesN
ot A
vaila
ble
Ava
ilabl
e
Coffee Script
Dart
TypeScript
JavaScript
High
![Page 22: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/22.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Low
Sup
port
for
Met
hods
Ove
rload
ing
Support for Access ModifiersN
ot A
vaila
ble
Ava
ilabl
e
Coffee Script
Dart
TypeScript
JavaScript
High
![Page 23: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/23.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Not Available
Sup
port
for
Enu
m
Support for Abstract ClassesN
ot A
vaila
ble
Ava
ilabl
e
Coffee Script
Dart
TypeScript
JavaScript
Available
![Page 24: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/24.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
Low
IDE
Sup
port
PopularityLo
wH
igh
Coffee ScriptDart
TypeScript JavaScript
High
![Page 25: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/25.jpg)
Detailed ComparisonLi fe M
ic hae l .c o
m
![Page 26: TypeScript, Dart, CoffeeScript and JavaScript Comparison](https://reader035.vdocuments.mx/reader035/viewer/2022062412/5876dac01a28ab1d238b6b33/html5/thumbnails/26.jpg)
Questions & AnswersLi fe M
ic hae l .c o
m● Courses I start to deliver in HIT this November (28 weekly
meetings, 6800 shekels) include the following:
Android 7 Java Applications Development
Software Engineering in PHP
Front End Development
tinyurl.com/lifemichaelhitcourses
● If you enjoyed my lecture please leave me a comment
at http://speakermix.com/life-michael.
Thanks for your time!