Slide 1

Slide 1 text

CoffeeScript Unfancy JavaScript

Slide 2

Slide 2 text

Dimitris Tsironis CEO & Founder at Geembo UI designer & huge geek, who loves good design and french fries, as much as good indentation in a stylesheet. @tsironakos

Slide 3

Slide 3 text

Jeremy Ashkenas Interactive News at the NYTimes / DocumentCloud • Creator of CoffeeScript + Backbone.js • Code is Literature

Slide 4

Slide 4 text

CoffeeScript is a little language that compiles into Javascript

Slide 5

Slide 5 text

It’s just Javascript!

Slide 6

Slide 6 text

Code is poetry...

Slide 7

Slide 7 text

A beautiful programming language Least amount of code to get the job done Readable and understandable Easy to maintain well, should have elegant and beautiful form

Slide 8

Slide 8 text

Let’s see some code!

Slide 9

Slide 9 text

Variables var message; message = “Ready for some coffee?”; alert(message); CoffeeScript JavaScript coffee = -> confirm “Ready for some coffee?” Functions var coffee = function() { return confirm(“Ready for some coffee?”); } CoffeeScript JavaScript message = “Ready for some coffee?” alert(message)

Slide 10

Slide 10 text

Example CoffeeScript var coffee; coffee = function() { var answer; answer = confirm(“Ready for some coffee?”); return “Your answer is ” + answer; } JavaScript coffee = -> answer = confirm “Ready for some coffee?” “Your answer is ” + answer or “Your answer is #{answer}”

Slide 11

Slide 11 text

Function Parameters CoffeeScript var coffee; coffee = function(message) { var answer; answer = confirm(message); return “Your answer is “ + answer; } JavaScript coffee = (message) -> answer = confirm message “Your answer is #{answer}”

Slide 12

Slide 12 text

Optional Parameters CoffeeScript var coffee; coffee = function(message) { var answer; if (message == null) { message = “Ready for some coffee?”; } answer = confirm(message); return “Your answer is “ + answer; } JavaScript coffee = (message = “Ready for some coffee”) -> answer = confirm message “Your answer is #{answer}”

Slide 13

Slide 13 text

Applied jQuery CoffeeScript jQuery(function($) { function changeTab(e) { e.preventDefault();\ $(“#tabs li a.active”).removeClass(“active”); $(this).addClass(“active”); } $(“#tabs ul li a”).click(changeTab); }); jQuery $ -> changeTab = (e) -> e.preventDefault() $(“#tabs li a.active”).removeClass “active” $(@).addClass “active” $(“#tabs ul li a”).click changeTab

Slide 14

Slide 14 text

You get the idea

Slide 15

Slide 15 text

hubot, make me some coffee please!

Slide 16

Slide 16 text

Hubot is your company's robot. Install him in your company to dramatically improve and reduce employee efficiency.

Slide 17

Slide 17 text

What he/she does Lives in your chat (Campfire, GTalk, Hipchat etc.) Deploys your code Connect to your issues, commits etc. Finds funny cat gifs Integrates with almost every service on Earth Manages the playlist in your office everything you could imagine!

Slide 18

Slide 18 text

Written in CoffeeScript (and some Perl and Shell)

Slide 19

Slide 19 text

we have our own hubot Meet Geembot!

Slide 20

Slide 20 text

Open source & expandable (original written by Github Inc.)

Slide 21

Slide 21 text

Thanks! Follow me @geembohq @tsironakos