Տեսակ | ծրագրավորման լեզու, off-side rule language?, ֆայլի ֆորմատ, source-to-source compiler?, ՋավաՍկրիպտ գրադարան, բազմահարացուցային ծրագրավորման լեզու, իմպերատիվ ծրագրավորում, Ֆունկցիոնալ ծրագրավորում, aspect-oriented programming? և prototype-based programming? |
---|---|
Առաջացել է | դեկտեմբերի 13, 2009 |
Ստեղծող | Ջերեմի Աշկենաս |
Նախագծող | Ջերեմի Աշկենաս |
Ընդլայնումներ | .coffee |
ՕՀ | բազմապլատֆորմ |
Համացանցի տվյալների տեսակ | text/coffeescript[1] և application/vnd.coffeescript[2] |
Ներշնչվել է | ՋավաՍկրիպտ, Ruby, Python, Haskell և Erlang |
Արտոնագիր | MIT արտոնագիր[3] |
Կայք | coffeescript.org |
Ելակոդ | github.com/jashkenas/coffeescript |
CoffeeScript, JavaScript-ում տրանսյացվող ծրագրավորման լեզու։ CoffeeScript-ը ավելացնում է «սինտաքսային շաքար» կոդում Ruby, Python, Haskell և Erlang ծրագրավորման լեզուների նման, դրանով իսկ դարձնելով կոդը ավելի ընթեռնելի և քչացնում է կոդի ծավալաը։ CoffeeScript-ը թույլ է տալիս գրել ավելի կարճ կոդ համեմատած JavaScript-ի հետ[4]։ CoffeeScript-ով գրված կոդը ամբողջությամբ անցնում է JavaScript Lint ստուգում։
Ծրագրավորման լեզվի հիմնադիրը համարվում է Ջերեմի Աշկենասը։
Սկզբնական տարբերակում կոմպիլյատոր գրված էր Ruby-ով, սակայն նոր 0,5 տարբերակում, որը թողարկվել է 2010 թվականի փետրվարի 21-ին, կոմպիլյատորը գրվել է հենց CoffeeScript-ի հիման վրա։
CoffeeScript-ը շատ լավ ընդունվեց Ruby-հասարակության կողից։ CoffeeScript-ի 3․1 տարբերակում ավելացավ Ruby on Rails վեբ-ֆրեյմորքը։
Պաշտոնական կայքում կա «try coffeescript» բաժինը, որը թույկ է տալիս գրել ծրագրեր և գործարկել online[5]։
CoffeeScript:
age = 2
male = true
name = "Матвей"
JavaScript:
var age = 2,
male = true,
name = "Матвей";
CoffeeScript:
say = (speech) ->
alert speech
say "Hello World!"
JavaScript ECMAScript 2015:
const say = speech => alert(speech);
say('Hello World!');
JavaScript:
var say = function(speech) {
alert(speech);
};
say("Hello World!");
CoffeeScript:
class Human
constructor : (@name) ->
class Baby extends Human
say : (msg) -> alert "#{@name} speak '#{msg}'"
sayHi : -> @say('Hello!')
matt = new Baby("baby")
matt.sayHi()
JavaScript ECMAScript 2015:
class Human {
constructor(name) {
this.name = name;
}
}
class Baby extends Human {
say(msg) {
alert(`${this.name} speak '${msg}'`);
}
sayHi() {
this.say('Hello!');
}
}
const matt = new Baby('Baby');
matt.sayHi();