A CoffeeScript aranyszabálya: "Ez csak JavaScript".
A CoffeeScript egy programozási nyelv amely JavaScripté fordítódik. A nyelv szintaktikai cukorkákkal ízesíti a JavaScript nyelvet amelyet a Ruby-ból a Python és a Haskell-ből vett át , hogy növelje a JavaScript tömörségét és olvashatóságát. Olyan kifinomult funkciókkal bővítve mint a listakezelés, a generátorok és a mintaillesztés. A CoffeeScript kiszámíthatóan fordul át JavaScripté. A programok tipikusan 1/3 annyi sorral írhatók le a futási idő kára nélkül. 2011, március 16 óta szerepel a CoffeeScript a GitHub leglátogattottabb projektjek listáján. A nyelvet követők nagy része a Ruby közösségből kerül ki. A CoffeScript a Ruby on Rails 3.1-es verziója óta támogattott a nyelvben.
A CoffeeScript azért készült, hogy egyszerűbben tudjuk használni a JavaScript-ből megismert "jó dolgokat", mellőzve a pontosvesszőket és a kapcsos zárójeleket. Miért jobb a CoffeeScript mint a sima JavaScript? A kezdetektől kevesebb kódot kell írni. A CoffeeScript nagyon tömör és a whitespaceket veszi figyelembe.
Továbbá a CoffeeScript olyan finom funkciókkal rendelkezik mint a listagenerálás , a prototype álnevek és az osztályok, amik tovább redukálják a gépelés idejét. Mégis sokkal fontosabb az, hogy a JavaScript olyan mintákkal rendelkezik a maga nemében amelyek egy tapasztalatlan programozót elbátortalaníthatnak. A CoffeeScript szépen átlépi és magába építi a JavaScript ezen kigyűjtött funkcióit, a nyelv furcsaságait ezzel kigyomlálva. A CoffeeScript nem a JavaScript kiegészítése, így, bár használható külső JavaScript könyvtár a CoffeeScriptben belül, de szintaktikai hibát kapunk, ha JavaScripté próbáljuk fordítani konvertálás nélkül. A fordító a CoffeeScript részeit külön-külön JavaScripté alakítja, nem értelmezi őket futási időben.
Először is, tisztázzunk néhány dolgot és oszlassunk el néhány tévhitet!
Tudnunk kell JavaScriptben programozni, ha szeretnénk CoffeeScriptet írni! Így mielőtt hozzákezdenénk CoffeeScriptben programozni, meg kell ismerkedjünk a JavaScript programozással is. A hibaüzenetek értelmezéséhez ugyanis JavaScript tudás szükséges. Bár a futási problémák elég bőbeszédűek, a JavaScript CoffeeScriptre való visszavezetésére jelenleg nem létezik kifinomult eszköz.
A második probléma amit gyakran hallunk az a CoffeeScript sebessége: az a tévhit, hogy a CoffeeScript által generált kód lassabban fog futni mint a "natív” JavaScriptben megírt kód. A gyakorlat viszont azt mutatja, hogy nincs ilyen probléma. A CoffeeScriptben írt program ugyanolyan vagy még gyorsabb, mint a kézzel írt JavaScript. A CoffeeScript törekszik a problémák enyhítésére: és ta és olvasható kódot generál.
A CoffeeScriptet nem korlátozza böngésző és nagy hatékonysággal lehet használni szerver oldali JavaScript implementációkban, pont úgy mint a Node.js-t. Kiegészítőül, a CoffeeScriptet egyre nagyobb téren használják és integrálták, lásd a Rails 3.1-et.
A hátrányairól:
A felsorolt problémák csak jelzésértékűek, nagyon sok erős érv soroltatható fel a CoffeeScript oldalán és ellen.
A CoffeeScript fordítót a 0.5-ös verziójától kezdve CoffeeScriptben írták és elérhető mint Node.js eszköz. A fordító magja nem támaszkodik a Node.js-re, azaz képes futni bármilyen JavaScript környezetben. Az egyik alternatívája a Node.js eszköznek a CoffeeScript maven plugin, a népszerű Apache Maven fordító csomaghoz. Az eszköz a Rhino JavaScript motort használja amit Javaban implementáltak. A hivatalos oldal, a CoffeeScript.org, rendelkezik egy "Try CoffeeScript" gombbal, amellyel egy felugró ablakban láthatjuk a begépelt CoffeeScriptet és a generált JavaScriptet egyszerre a böngészőben. Említettük, hogy nem létezik hatékony eszköz a lefordított kód visszaalakítására. A leírás készítésekor, a js2coffe oldal kínál egy fejlődő szolgáltatást a CoffeeScriptből fordított kódok CoffeeScripté visszaalakítására.
Ez azt takarja, hogy a CoffeeScript kódok egy az egyben JavaScript-re fordulnak, nincs futás közbeni plusz interpretálás valamint természetes módon használhatjuk a már meglévő JavaScript könyvtárakat CoffeeScript-ből oda-vissza.