| Տեսակ | ծրագրավորման լեզու, 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=2male=truename="Матвей"
#"ltr">
varage=2,male=true,name="Матвей";
CoffeeScript:
say=(speech)->alertspeechsay"Hello World!"
JavaScriptECMAScript 2015:
constsay=speech=>alert(speech);say('Hello World!');
#"ltr">
varsay=function(speech){alert(speech);};say("Hello World!");
CoffeeScript:
classHumanconstructor:(@name) ->classBabyextendsHumansay:(msg) ->alert"#{@name} speak '#{msg}'"sayHi:->@say('Hello!')matt=newBaby("baby")matt.sayHi()
JavaScriptECMAScript 2015:
classHuman{constructor(name){this.name=name;}}classBabyextendsHuman{say(msg){alert(`${this.name} speak '${msg}'`);}sayHi(){this.say('Hello!');}}constmatt=newBaby('Baby');matt.sayHi();