CoffeeScript
  Unfancy JavaScript
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
Jeremy
Ashkenas
Interactive News at the
NYTimes /
DocumentCloud •
Creator of CoffeeScript
+ Backbone.js • Code is
Literature
CoffeeScript is a little language
 that compiles into Javascript
It’s just Javascript!
Code is poetry...
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
Let’s see some code!
Variables
 message = “Ready for some coffee?”
                                               CoffeeScript
 alert(message)

 var message;
 message = “Ready for some coffee?”;           JavaScript
 alert(message);



Functions
 coffee = ->
                                               CoffeeScript
   confirm “Ready for some coffee?”

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

or “Your answer is #{answer}”


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




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




 var coffee;
 coffee = function(message) {
   var answer;
                                                   JavaScript
   if (message == null) {
     message = “Ready for some coffee?”;
   }
   answer = confirm(message);
   return “Your answer is “ + answer;
 }
Applied jQuery
  $ ->
    changeTab = (e) ->
       e.preventDefault()
       $(“#tabs li a.active”).removeClass “active”   CoffeeScript
       $(@).addClass “active”

    $(“#tabs ul li a”).click changeTab



jQuery(function($) {
  function changeTab(e) {
    e.preventDefault();
    $(“#tabs li a.active”).removeClass(“active”);      jQuery
    $(this).addClass(“active”);
  }
  $(“#tabs ul li a”).click(changeTab);
});
You get the idea
hubot, make me some coffee please!
Hubot is your company's robot.
Install him in your company to dramatically
  improve and reduce employee efficiency.
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!
Written in CoffeeScript
 (and some Perl and Shell)
we have our own hubot

 Meet Geembot!
Open source & expandable
 (original written by Github Inc.)
Thanks!
Follow me

@geembohq

@tsironakos

Coffeescript - take a sip of code

  • 1.
  • 2.
    Dimitris Tsironis CEO & Founderat Geembo UI designer & huge geek, who loves good design and french fries, as much as good indentation in a stylesheet. @tsironakos
  • 3.
    Jeremy Ashkenas Interactive News atthe NYTimes / DocumentCloud • Creator of CoffeeScript + Backbone.js • Code is Literature
  • 4.
    CoffeeScript is alittle language that compiles into Javascript
  • 5.
  • 6.
  • 7.
    A beautiful programminglanguage Least amount of code to get the job done Readable and understandable Easy to maintain well, should have elegant and beautiful form
  • 8.
  • 9.
    Variables message =“Ready for some coffee?” CoffeeScript alert(message) var message; message = “Ready for some coffee?”; JavaScript alert(message); Functions coffee = -> CoffeeScript confirm “Ready for some coffee?” var coffee = function() { return confirm(“Ready for some coffee?”); JavaScript }
  • 10.
    Example coffee =-> answer = confirm “Ready for some coffee?” CoffeeScript “Your answer is ” + answer or “Your answer is #{answer}” var coffee; coffee = function() { var answer; JavaScript answer = confirm(“Ready for some coffee?”); return “Your answer is ” + answer; }
  • 11.
    Function Parameters coffee= (message) -> answer = confirm message CoffeeScript “Your answer is #{answer}” var coffee; coffee = function(message) { var answer; JavaScript answer = confirm(message); return “Your answer is “ + answer; }
  • 12.
    Optional Parameters coffee= (message = “Ready for some coffee”) -> answer = confirm message CoffeeScript “Your answer is #{answer}” var coffee; coffee = function(message) { var answer; JavaScript if (message == null) { message = “Ready for some coffee?”; } answer = confirm(message); return “Your answer is “ + answer; }
  • 13.
    Applied jQuery $ -> changeTab = (e) -> e.preventDefault() $(“#tabs li a.active”).removeClass “active” CoffeeScript $(@).addClass “active” $(“#tabs ul li a”).click changeTab jQuery(function($) { function changeTab(e) { e.preventDefault(); $(“#tabs li a.active”).removeClass(“active”); jQuery $(this).addClass(“active”); } $(“#tabs ul li a”).click(changeTab); });
  • 14.
  • 15.
    hubot, make mesome coffee please!
  • 16.
    Hubot is yourcompany's robot. Install him in your company to dramatically improve and reduce employee efficiency.
  • 17.
    What he/she does Livesin 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!
  • 18.
    Written in CoffeeScript (and some Perl and Shell)
  • 19.
    we have ourown hubot Meet Geembot!
  • 20.
    Open source &expandable (original written by Github Inc.)
  • 21.