कॉफ़ीस्क्रिप्ट बहुत अच्छा लग रहा है। क्या किसी ने इसका इस्तेमाल किया है? इसके पेशेवरों और विपक्ष क्या हैं?
कॉफ़ीस्क्रिप्ट बहुत अच्छा लग रहा है। क्या किसी ने इसका इस्तेमाल किया है? इसके पेशेवरों और विपक्ष क्या हैं?
जवाबों:
हमने अपने उत्पाद में CoffeeScript का उपयोग करना शुरू कर दिया है - एक गैर-सार्वजनिक सामना करने वाली वेबसाइट जो मूल रूप से कुछ प्रकार के डेटा ब्राउज़ करने के लिए एक ऐप है। हम CoffeeScript का उपयोग कमांड-लाइन कंपाइलर के रूप में करते हैं (सर्वर पर नहीं, जिसे हम अंततः करना चाहेंगे)।
महत्वपूर्ण रूप से, हम किसी भी समय वापस मुड़ सकते हैं। हमारा कॉफ़ीस्क्रिप्ट कंपाइलर केवल पठनीय जावास्क्रिप्ट का उत्पादन कर रहा है, इसलिए यदि कोई भी अपना दिमाग बदलता है या किसी चीज़ का पता नहीं लगा सकता है, तो हम अभी उस जावास्क्रिप्ट का उपयोग करने के लिए वापस छोड़ सकते हैं जो कॉफ़ीसेप्टिक द्वारा उत्पादित है - और कोडिंग रखें।
this
, या किसी फ़ंक्शन को गलत प्रकार भेजें? मुझे नहीं लगता कि आपने अभी तक कुछ भी दिलचस्प किया है अगर आपको "कुछ भी डिबग" नहीं करना है।
-m
और आप अच्छे हैं।
हम सभी का उपयोग करें के लिए Coffeescript में व्यस्त जावास्क्रिप्ट । बिजीकॉन्फ़ का एक बड़ा हिस्सा क्लाइंट साइड एप्लिकेशन है जो ऑफ़लाइन मोड के लिए समर्थन सहित ब्राउज़रों में चलता है।
हमारे सभी कॉफ़ीस्क्रिप्ट कोड पूरी तरह से परीक्षण किए गए हैं। परीक्षण स्वयं कॉफ़ीस्क्रिप्ट में लिखे गए हैं, और क्यूनिट ढांचे (जो जावास्क्रिप्ट में लिखा गया है) का उपयोग करें। हमने क्यूनिट ढांचे के लिए एक विस्तार भी लिखा है जो परीक्षणों को अच्छा बनाता है। Qunit विस्तार में लिखा है CoffeeScript । हमारे आवेदन में एक मोबाइल संस्करण है जो कॉफीस्क्रिप्ट में लिखा गया है, और यह स्नेहा टच फ्रेमवर्क (जो जावास्क्रिप्ट में लिखा गया है) का उपयोग करता है।
इससे दूर ले जाता है कि आप अपने आवेदन में स्वतंत्र रूप से जावास्क्रिप्ट निर्भरता को रोक सकते हैं, लेकिन आपके द्वारा लिखे गए कोड (आपके आवेदन कोड, परीक्षण आदि) के सभी (और!) कोफ़स्क्रिप्ट हो सकते हैं।
लगभग एक साल बाद, यह कुछ अपडेट पोस्ट करने लायक है:
कॉफ़ीस्क्रिप्ट प्रोजेक्ट्स की सबसे निश्चित सूची कॉफ़ीस्क्रिप्ट विकीज़ इन द वाइल्ड पेज पर है।
मैं कहता हूँ कि अब तक कॉफ़ीस्क्रिप्ट का अधिकांश उत्पादन उपयोग iPhone / Android ऐप्स बनाने के लिए Appcelerator के साथ किया जाता है। (द चेंजलॉग के व्यान नीदरलैंड ने कॉफ़ीस्क्रिप्ट को "आईओएस, एंड्रॉइड और वेबओएस मोबाइल विकास के लिए मेरा गुप्त हथियार" के रूप में वर्णित करके मेरी पुस्तक को धुंधला कर दिया), लेकिन उत्पादन रेल एप्लिकेशन में बहुत अधिक उपयोग होने जा रहा है- और, मुझे आशा है, अन्यत्र- आने वाले महीनों में।
Coffeescript का उपयोग Ars Technica रीडर में iPad http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars के लिए किया गया था
मुझे इन दिनों कॉफ़ीस्क्रिप्ट बहुत पसंद है। अनिवार्य रूप से संपूर्ण HotelTonight iPhone एप्लिकेशन इसमें लिखा गया है (Appcelerator Titanium का उपयोग करके, जो आपको जावास्क्रिप्ट में "देशी" ऐप्स लिखने देता है - वे वेब ऐप नहीं हैं, जैसे Phonegap कहते हैं)। मैंने इस मामले में कॉफ़ीस्क्रिप्ट का उपयोग करना चुना क्योंकि यह जेएस की एक बड़ी मात्रा को व्यवस्थित और बनाए रखना बहुत आसान है। मुझे यह भी लगता है कि कॉफ़ीसेस्क्रिप्ट (बनाम जावास्क्रिप्ट) के साथ कोड लिखने के लिए यह बहुत अधिक सुखद है। हम अपने रेल एप्लिकेशन में जेएस के लिए कॉफ़ीस्क्रिप्ट का उपयोग करते हैं, लेकिन यह पूरे फोन ऐप के संबंध में कोड की अविश्वसनीय रूप से मामूली / छोटी राशि है।
पेशेवरों को ज्यादातर एक अच्छे सिंटैक्स होने के साथ करना पड़ता है, लेकिन यह भी कि यह एक ओओ तंत्र का मानकीकरण करता है, और फिर कुछ अच्छा जोड़ देता है (सूची समझ, कुछ गुंजाइश चीजें, आदि)।
मेरे लिए विपक्ष लगभग शून्य है। प्राथमिक एक यह है कि यह डिबग करने के लिए एक अतिरिक्त परत है। आपको उत्पन्न जेएस (जो बहुत पठनीय और अच्छा है) को देखने की आवश्यकता होगी, और फिर उसे अपने कॉफ़ीस्क्रिप्ट कोड में मैप करें। हमारे लिए, यह कोई मुद्दा नहीं है, लेकिन YMMV है।
अंत में, मेरा टेक है, उत्पादन ऐप पर इसका उपयोग करने के मामले में शून्य जोखिम है, इसलिए, इसे अवरुद्ध न होने दें। फिर, इसे आज़माएं। इसके साथ कुछ कोड लिखें, तुलना करें कि आप जेएस में क्या लिखते हैं, उत्पन्न कोड को यह देखने के लिए देखें कि क्या आप डीबगिंग आवश्यकताओं के लिए पढ़ने में सक्षम होने के साथ कम्फर्टेबल हैं। इसके अलावा, #coffeescript IRC में हैंग आउट करें, लोग वहां अच्छे हैं। और अंत में, यह देखें कि यह आपके ऐप के साथ कैसे एकीकृत होगा, जैसे कि आपकी "बिल्ड" प्रक्रिया क्या है (जैसे रेल के लिए, बरिस्ता की कोशिश करें, कुछ स्टैंडअलोन के लिए, बस शामिल "कॉफी-डब्ल्यू", आदि का उपयोग करें)।
कॉफ़ीस्क्रिप्ट वास्तव में जेएस को लिखना आसान बनाता है। आप क्लीनर, अधिक कुशल कोड के साथ समाप्त होते हैं।
कहा जा रहा है, आप अभी भी केवल वही कर सकते हैं जो आप वैनिला जेएस में कर सकते हैं। एक बार जब आप कॉफ़ीस्क्रिप्ट का पर्याप्त उपयोग करते हैं, तो जेएस (अच्छा) लिखना बहुत आसान हो जाता है।
इसलिए यदि आपने जेएस को एक टन का उपयोग नहीं किया है, तो मैं आपको इसके बजाय कॉफ़ीस्क्रिप्ट सीखने का सुझाव दूंगा। आप बेहतर, क्लीनर, कम छोटी गाड़ी कोड प्राप्त करेंगे। यदि आप पहले से ही जेएस में वास्तव में धाराप्रवाह हैं, तो "वास्तविक" ऐप पर कॉफ़ीस्क्रिप्ट का उपयोग शुरू करना एक अच्छा विचार नहीं हो सकता है।
(इसके अलावा, कॉफ़ीस्क्रिप्ट ने मुझे थोड़ा सा परेशान किया है कि यह "फ़्लॉफी" कोड को प्रोत्साहित करता प्रतीत होता है। मुझे नहीं पता कि यह अच्छी बात है या बुरी बात है, लेकिन यह TMTOWTDI का एक चरम मामला है)
ध्यान दें कि हालांकि एक संकलक है, आपको जावास्क्रिप्ट की गतिशील प्रकृति के कारण स्थिर जाँच नहीं मिलती है। एफएक्यू में लिखा है:
स्थैतिक विश्लेषण
CoffeeScript एक सीधे स्रोत-से-स्रोत संकलक का उपयोग करता है। किसी भी प्रकार की जाँच नहीं की जाती है, और यदि कोई चर मौजूद है या नहीं तो भी हम काम नहीं कर सकते हैं। इसका मतलब है कि हम उन सुविधाओं को लागू नहीं कर सकते हैं जो अन्य भाषाओं में मूल रूप से महंगा रनटाइम चेक के बिना बन सकती हैं। नतीजतन, इस तरह के विश्लेषण पर भरोसा करने वाली किसी भी विशेषता पर विचार नहीं किया जाएगा।
आईडीई समर्थन जावास्क्रिप्ट की तुलना में कम परिपक्व है (क्लाउड 9 में सिंटैक्स हाइलाइट समर्थन है, लेकिन एक्लिप्स जेएसडीटी में रिफैक्टोरिंग और अधिक हैं): /programming/4084167/ide-or-its-add-in-for-coffescript -programming