Rajani's tumblelog

  1. Search
  2. Subscribe
Newer
Older
  • CoffeeScript - sounds interesting… haven’t tried it yet

    CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

    The golden rule of CoffeeScript is: “It’s just JavaScript”. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly (and vice-versa). The compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings, will work in every JavaScript implementation, and tends to run as fast or faster than the equivalent handwritten JavaScript.

    Latest Version: 1.1.1

    Overview

    CoffeeScript on the left, compiled JavaScript output on the right.

    # Assignment: number   = 42 opposite = true  # Conditions: number = -42 if opposite  # Functions: square = (x) -> x * x  # Arrays: list = [1, 2, 3, 4, 5]  # Objects: math = root:   Math.sqrt square: square cube:   (x) -> x * square x  # Splats: race = (winner, runners...) -> print winner, runners  # Existence: alert "I knew it!" if elvis?  # Array comprehensions: cubes = (math.cube num for num in list)
    var cubes, list, math, num, number, opposite, race, square; var __slice = Array.prototype.slice; number = 42; opposite = true; if (opposite) { number = -42; } square = function(x) { return x * x; }; list = [1, 2, 3, 4, 5]; math = { root: Math.sqrt, square: square, cube: function(x) { return x * square(x); } }; race = function() { var runners, winner; winner = arguments[0], runners = 2  arguments.length ? __slice.call(arguments, 1) : []; return print(winner, runners); }; if (typeof elvis !== "undefined" && elvis !== null) { alert("I knew it!"); } cubes = (function() { var _i, _len, _results; _results = []; for (_i = 0, _len = list.length; _i  _len; _i  ) { num = list[_i]; _results.push(math.cube(num)); } return _results; })();
    run: cubes

    via jashkenas.github.com

    Posted via email from Rajani’s weblog | Comment »

    Posted on June 27, 2011