Javascript
&
CoffeeScript
TimNew
Brief History of Javascript
Netscape (Mozilla)
DOM (DHTML)
LiveScript (Navigator 2.0)
Brendan Eich in 10 days
Renamed to JavaScript (Marketing)
The Facts of Javascript
Brendan Eich: A Lisp Guru
Intension: Functional Language
Requirement: Java-like Object Oriented Language
Result: JavaScript
Except the name,
NOTHING
related to Java
Syntax inspired by
C
Philosophy borrowed from
Scheme
Object System learnt from
SELF
Prototype
vs
Class-Instance
Regular Expression from
Perl
Prototype in 10 days ->
Design Flaws
Facts
JavaScript is
Functional
, not
Object Oriented
JavaScript is the binary of the web
- Gerard Braad
COFFEE SCRIPT
Just JavaScript
With
Syntactic
Sugar
Best Workaround to Javascript Flaws
Class System
== & ===
for each
this
...
CoffeeScript vs TypeScript
CoffeeScript is prior than TypeScript
Widely used
vs
rarely used
Widely supported
vs
a few options
Twisting
PROTOTYPE
back to
Class-Instance
Class -> Syntactic Sugar
Type ? -> Static Check!
Module?? -> Import
Interface??? -> For what?
Generic???? -> WTF!!!!
Type ins't everything, definition for $()
Feature lost after compiled
Why NOT Type Script
Microsoft
C#
over Javascript Runtime
Visual Studio 2012
Windows
Open sourced in Microsoft Way
Mess toolchain
tsc, typestring?
gulp-tsc, gulp-typescript-compiler, gulp-typescript
Why NOT Type Script
Not Transparent
Module (Not file equivalent)
Hidden Polyfill
this pointer
bad interoperability
Write JavaScript as C#
Syntax
never matters,
Design
does!
C#
design in
Javascript
syntax
Sorry Anders, not this time, it goes too far
THANKS
TimNew
http://timnew.github.io
Made with Slides.com