Yaklaşık üç haftadır Play! Framework 1.2.x için Joosy benzeri bir front-end framework geliştirmeye çalışıyorum. Joosy tamamen CoffeeScript ile geliştirilmiş ve bir süredir hayal ettiğim tüm özelliklere sahip bir framework. Bu sebeple bu projenin hem fikirlerinden hem de kodlarından faydalanmaya çalışıyorum. Dolayısıyla daha önce yalnızca göz gezdirmiş olduğum CoffeeScript ile bu kadar yakınlaşmamın sebebi Joosy oldu diyebilirim.
CoffeeScript, derlenerek JavaScript diline dönüştürülen küçük bir programlama dili. Bu sebeple JavaScript ile aynı projede birlikte yaşayabiliyor. Örnek olarak jQuery kütüphanesini CoffeeScript ile de rahatlıkla kullanabiliyoruz. Durum böyle iken ve JavaScript gibi güzel bir programlama dili varken CoffeeScript neden var sorusu ister istemez akla geliyor. Geliştiriciler arasında da bu konuda önemli tartışmalar dönmekte. CoffeeScript'in temel varlık nedeni geliştirici verimliliğidir diyebilirim. JavaScript'in görece karmaşık syntax'ına karşılık CoffeeScript çok daha temiz bir syntax sunuyor. JavaScript bilen biri için öğrenme süresi 4-5 saatten fazla değil.
Bir JavaScript Ninja olmasam da ortalamanın üzerinde JavaScript bilgisine sahibim. JavaScript'in geliştiriciyi zorladığı noktaları biliyor olmamın CoffeeScript ile aramızdaki sevgiyi artırdığını düşünüyorum. Bu sebeple CoffeeScript öğrenmek isteyen birinin öncelikle iyi derecede JavaScript biliyor olması gerektiğini savunuyorum. Örnek olarak CoffeeScript içinde gelen class keyword'ünün ne büyük nimet olduğunu anlamak için bence JavaScript ile prototyping işleri ile uğraşmış ve zorlanmış olmak gerekiyor.
CoffeeScript hakkında önbilgi verdikten sonra CoffeeScript'in en sevdiğim özelliklerinden bahsetmek istiyorum. Her maddede önce CoffeeScript kodunu, sonra da karşılaştırma amacıyla derlendiği JavaScript kodunu vereceğim.
CoffeeScript ile değişken tanımlaması için var keyword'üne ihtiyaç bulunmuyor.
CoffeeScriptJavaScript
Fonksiyon tanımı çok yalın olduğundan özellikle jQuery callback'lerinde büyük kolaylık sağlıyor.
CoffeeScriptJavaScript
Nesne tanımlamak için gereken kod daha kısa ve anlaşılır.
CoffeeScriptJavaScript
ForEach ya da select/filter işlemleri tek satır ile gerçeklenebiliyor.
CoffeeScriptJavaScript
Bir değişkenin varlık kontrolü basit görünse de genelde çok baş ağrıtır. CoffeeScript bu sorunu da kolayca çözüyor.
CoffeeScriptJavaScript
Bir değişken ve string'in değerini birleştirmek CoffeeScript ile çok daha kolay.
CoffeeScriptJavaScript
Ve belki de CoffeeScript'in en güçlü olduğu nokta: Sınıflar ve miras alma.
CoffeeScriptJavaScript
Paylaştığım başlıklar CoffeeScript'in bana göre en önemli özelliklerini barındırıyor. Daha fazlası için CoffeeScript resmi sitesi oldukça güzel bir arayüz sunuyor. CoffeeScript konusundaki yorumlarınızı merakla bekliyorum.