Coffeescript terlihat cukup keren. Apakah ada yang menggunakannya? Apa Pro & Kontra nya?
Coffeescript terlihat cukup keren. Apakah ada yang menggunakannya? Apa Pro & Kontra nya?
Jawaban:
Kami telah mulai menggunakan CoffeeScript di produk kami - situs web non-publik yang pada dasarnya adalah aplikasi untuk menjelajahi jenis data tertentu. Kami menggunakan CoffeeScript sebagai kompilator baris perintah (bukan di server, yang pada akhirnya ingin kami lakukan).
Yang penting, kami dapat kembali kapan saja. Kompiler coffeescript kami hanya menghasilkan javascript yang dapat dibaca, jadi jika ada yang berubah pikiran atau tidak dapat menemukan sesuatu, maka kami dapat kembali menggunakan javascript yang dihasilkan coffeescript - dan terus melakukan coding.
this
, atau mengirim jenis yang salah ke suatu fungsi? Saya rasa Anda belum melakukan sesuatu yang menarik jika Anda belum harus "men-debug apa pun".
-m
dan Anda baik-baik saja.
Kami menggunakan coffeescript untuk semua javascript di BusyConf . Sebagian besar BusyConf adalah aplikasi sisi klien yang berjalan di browser, termasuk dukungan untuk mode offline.
Semua kode coffeescript kami telah diuji sepenuhnya. Tes itu sendiri ditulis dalam coffeescript, dan menggunakan framework Qunit (yang ditulis dalam javascript). Kami juga menulis ekstensi pada kerangka kerja Qunit yang membuat pengujian lebih bagus. Ekstensi Qunit ditulis dalam CoffeeScript . Aplikasi kami memiliki versi seluler yang ditulis dalam CoffeeScript, dan menggunakan kerangka Sencha Touch (yang ditulis dalam javascript).
Kesimpulannya adalah Anda dapat dengan bebas mencampurkan dependensi javascript dalam aplikasi Anda, tetapi semua kode yang Anda tulis (kode aplikasi Anda, tes, dll) dapat (dan seharusnya!) Menjadi coffeescript.
Hampir setahun kemudian, ada baiknya memposting beberapa pembaruan:
Daftar proyek CoffeeScript yang paling pasti ada di halaman In the Wild wiki CoffeeScript .
Menurut saya, sebagian besar penggunaan produksi CoffeeScript sejauh ini terkait dengan Appcelerator untuk membuat aplikasi iPhone / Android. (Wynn Netherland dari The Changelog menguraikan buku saya dengan menggambarkan CoffeeScript sebagai "senjata rahasia saya untuk pengembangan seluler iOS, Android, dan WebOS"), tetapi akan ada lebih banyak penggunaan dalam aplikasi Rails produksi — dan, saya harap, di tempat lain— dalam beberapa bulan mendatang.
Coffeescript digunakan dalam pembaca Ars Technica untuk iPad http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars
Saya sangat menyukai Coffeescript hari ini. Intinya seluruh HotelTonight aplikasi iPhone ditulis di dalamnya (menggunakan Appcelerator Titanium, yang memungkinkan Anda menulis aplikasi "asli" dalam JavaScript - ini bukan aplikasi web, katakanlah seperti Phonegap). Saya memilih untuk menggunakan Coffeescript dalam kasus ini karena itu membuat pengorganisasian dan pemeliharaan JS dalam jumlah besar menjadi jauh lebih mudah. Saya juga merasa jauh lebih menyenangkan untuk menulis kode dengan Coffeescript (vs. JavaScript). Kami juga menggunakan Coffeescript untuk JS di aplikasi Rails kami, tetapi ini adalah kode yang sangat kecil / kecil dalam kaitannya dengan seluruh aplikasi ponsel.
Pro sebagian besar harus dilakukan dengan hanya menjadi sintaks yang lebih baik, tetapi juga itu menstandarkan mekanisme OO, dan kemudian menambahkan beberapa tambahan yang bagus (pemahaman daftar, beberapa hal ruang lingkup, dll.).
Kontra bagi saya hampir nol. Yang utama adalah bahwa ini adalah lapisan tambahan untuk di-debug. Anda perlu melihat JS yang dihasilkan (yang SANGAT mudah dibaca dan bagus), dan kemudian memetakannya ke kode Coffeescript Anda. Bagi kami, ini sama sekali bukan masalah, tapi YMMV.
Pada akhirnya, pendapat saya adalah, tidak ada risiko dalam hal menggunakannya di aplikasi produksi, jadi, jangan biarkan itu menjadi pemblokir. Lalu, cobalah. Tulis beberapa kode dengannya, bandingkan dengan yang Anda tulis di JS, lihat kode yang dihasilkan untuk melihat apakah Anda merasa nyaman untuk dapat membacanya untuk kebutuhan debugging. Juga, nongkrong di #coffeescript IRC, orang-orang baik di sana. Dan terakhir, lihat bagaimana itu akan berintegrasi dengan aplikasi Anda, misalnya apa proses "membangun" Anda (misalnya untuk Rails, coba Barista, untuk sesuatu yang berdiri sendiri, cukup gunakan "kopi -w" yang disertakan, dll.).
Coffeescript benar-benar membuat penulisan JS lebih mudah. Anda akan mendapatkan kode yang lebih bersih dan efisien.
Meskipun demikian, Anda tetap hanya dapat melakukan apa pun yang dapat Anda lakukan di vanilla JS. Setelah Anda cukup menggunakan coffeescript, itu menjadi jauh lebih mudah untuk menulis JS (yang bagus).
Jadi jika Anda belum pernah menggunakan JS satu ton, saya sarankan belajar coffescript. Anda akan mendapatkan kode yang lebih baik, lebih bersih, dan lebih sedikit buggy. Jika Anda sudah sangat fasih menggunakan JS, mungkin bukan ide yang baik untuk mulai menggunakan coffeescript di aplikasi "asli".
(Selain itu, coffeescript sedikit mengganggu saya karena tampaknya mendorong kode yang agak "menjemukan". Saya tidak tahu apakah itu hal yang baik atau buruk, tetapi tampaknya kasus TMTOWTDI yang ekstrem)
Perhatikan bahwa meskipun ada kompiler, Anda tidak mendapatkan pemeriksaan statis karena JavaScript bersifat dinamis. Seperti yang tertulis di FAQ:
Analisis Statis
CoffeeScript menggunakan kompiler sumber-ke-sumber langsung. Tidak ada pemeriksaan tipe yang dilakukan, dan kami tidak dapat mengetahui apakah sebuah variabel ada atau tidak. Artinya, kami tidak dapat mengimplementasikan fitur yang dapat dibuat oleh bahasa lain secara native tanpa pemeriksaan waktu proses yang mahal. Akibatnya, fitur apa pun yang mengandalkan analisis semacam ini tidak akan dipertimbangkan.
Dukungan IDE kurang matang dibandingkan dengan JavaScript (Cloud9 memiliki dukungan sorotan sintaks, tetapi Eclipse JSDT memiliki refactorings dan banyak lagi): /programming/4084167/ide-or-its-add-in-for-coffescript -programming