CoffeeScript

CoffeeScript
CoffeeScript
Класс языка:

объектно-ориентированный, императивный, функциональный, аспектно-ориентированный, прототипный

Появился в:

2009

Автор(ы):

Jeremy Ashkenas

Расширение файлов:

.coffee

Релиз:

1.3.3 (15 мая 2012[1])

Испытал влияние:

JavaScript, Python, Ruby, Haskell

Лицензия

CoffeeScript[2]

Сайт:

coffeescript.org

CoffeeScript ([’kɔ:fɪ skrɪpt]; кофи скрипт) — язык программирования, транслируемый в JavaScript. CoffeeScript добавляет синтаксический сахар в духе Ruby, Python и Haskell для того, чтобы улучшить читаемость кода и уменьшить его размер. В среднем для выполнения одинаковых действий на CoffeeScript требуется в 2 раза меньше строк, чем JavaScript[3]. JavaScript код, который скомпилируется из CoffeeScript полностью проходит проверку JavaScript Lint.

Содержание

История

Изначально компилятор был написан на Ruby, но в версии 0.5, которая вышла 21 февраля 2010, компилятор был реализован на самом же CoffeeScript. CoffeeScript был радушно воспринят в Ruby сообществе. В веб-фреймворке Ruby on Rails версии 3.1, CoffeeScript заменил JavaScript.

Примеры

Переменные

CoffeeScript:

age  = 2
male = true
name = "Матвей"

JavaScript:

var age = 2,
   male = true,
   name = "Матвей";

Функции

CoffeeScript:

say = (speech) -> 
  alert speech
 
say("Машина тютю!")

JavaScript:

var say = function(speech) {
  alert(speech);
};
say("Машина тютю!");

Классы и объекты

CoffeeScript:

class Human
  constructor : (@name) ->
 
class Baby extends Human
  say   : (msg) -> alert "#{@name} говорит '#{msg}'"
  sayHi : -> @say('Уууу!')
 
matt = new Baby("Матвей")
matt.sayHi()

Аналог на JavaScript (именно аналог, а не результат компиляции):

function Human(name)
{
  this.name = name;
}
 
function Baby(name)
{
  Human.call(this, name);
}
 
Baby.prototype = Object.create(Human.prototype);
Baby.prototype.say = function(msg)
{
  alert(this.name + ' говорит ' + msg);
};
Baby.prototype.sayHi = function()
{
  this.say('Уууу!');
};
Baby.prototype.constructor = Baby;
 
var matt = new Baby("Матвей");
matt.sayHi();

Примечание: в JavaScript при работе с «классами» (конструктор + прототипы + функции для наследования и смешивания) часто используют обёртки (MooTools, AtomJS и другие). Аналогия на JavaScript с классовой обёрткой AtomJS:

var Human = Class({
  initialize : function(name) {
    this.name = name;
  }
});
 
var Baby = Class({
  Extends : Human,
  say : function(msg) {
    alert(this.name + ' говорит ' + msg);
  },
  sayHi : function() {
    this.say('Уууу!');
  }
});
 
var matt = new Baby("Матвей");
matt.sayHi();

Пример класса CoffeeScript с различными видами свойств.

class Test
  say   = (msg) -> alert msg       # приватный метод
  @echo = (msg) -> console.log msg # cтатический метод, записан в Test
  setHi : (msg) ->                 # динамический метод, записан в Test.prototype
    @hi = -> msg                   # динамический метод, записан в экземпляр Test

Интересные факты

Так как компилятор CoffeeScript написан на самом CoffeeScript, вы можете опробовать его в онлайн на официальном сайте, при этом, в отличие от Try Ruby, асинхронных запросов происходить не будет, поскольку код компилируется непосредственно в вашем браузере.

См. также

Примечания

Литература

  • CoffeeScript Cookbook, сборник рецептов CoffeeScript от сообщества.
  • The Little Book on CoffeeScript, введение в программирование на CoffeeScript.
  • Smooth CoffeeScript, свободная электронная книга о CoffeeScript. Доступна в двух вариантах с исходным кодом примеров.

Ссылки

Смежные проекты:


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "CoffeeScript" в других словарях:

  • CoffeeScript — Paradigm(s) Multi paradigm: prototype based, functional, imperative, scripting Appeared in 2009 Designed by Jeremy Ashkenas …   Wikipedia

  • CoffeeScript — ist eine Programmiersprache, deren Programme in JavaScript transcompiliert werden. Sie wird seit 2009 von Jeremy Ashkenas entwickelt. Inhaltsverzeichnis 1 Herkunft und Verwendung 2 Compilierung 3 Literatur …   Deutsch Wikipedia

  • Фасад (шаблон проектирования) — У этого термина существуют и другие значения, см. Фасад (значения). Шаблон проектирования Фасад Facade Тип: структурный Описан в Design Patterns Да Шаблон Facade (Фасад)  Шаблон проектирования, позволяющий ск …   Википедия

  • Состояние (шаблон проектирования) — Шаблон проектирования Состояние State Тип: поведенческий Описан в Design Patterns Да Состояние (англ. State)  шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект …   Википедия

  • Мост (шаблон проектирования) — У этого термина существуют и другие значения, см. Мост (значения). Шаблон проектирования Мост Bridge Тип: структурный Описан в Design Patterns Да Bridge, Мост шаблон проектирования, используемый в …   Википедия

  • Компоновщик (шаблон проектирования) — Шаблон проектирования Компоновщик Composite Тип: структурный Описан в Design Patterns Да Компоновщик (англ. Composite pattern) шаблон проектирования, относится к структурным паттернам, объединяет объек …   Википедия

  • Одиночка (шаблон проектирования) — У этого термина существуют и другие значения, см. Одиночка. Шаблон проектирования Одиночка Singleton Тип: порождающий Описан в Design Patterns Да Одиночка (англ. Singleton) в программировании  …   Википедия

  • JavaScript — Не следует путать с Java. JavaScript Класс языка: мультипарадигменный …   Википедия

  • Декоратор (шаблон проектирования) — У этого термина существуют и другие значения, см. Декоратор. Шаблон проектирования Декоратор Decorator …   Википедия

  • Хронология языков программирования — Списки языков программирования По категориям Хронологический Генеалогический Хронология языков программирования  упорядоченный в хронологическом порядке список языков программирования. Содержание …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»