जावास्क्रिप्ट को जाने बिना कॉफ़ीस्क्रिप्ट का उपयोग करना कितना जोखिम भरा है? [बन्द है]


15

मैं एक बहुत अनुभवी प्रोग्रामर हूं जो वेब डेवलपमेंट सीखने की कोशिश कर रहा है। मैं एक क्लाइंट-साइड वेब एप्लिकेशन विकसित करने की कोशिश कर रहा हूं जो ग्राफिक्स के लिए svg या कैनवास का उपयोग करता है। मैंने तय किया है कि मैं कॉफ़्सस्क्रिप्ट में एप्लिकेशन कोड लिखना चाहूंगा। मुझे या तो जावास्क्रिप्ट या कॉफ़ीस्क्रिप्ट नहीं पता है।

Coffeescript वेब डेवलपमेंट के लिए जावास्क्रिप्ट को जानना कितना आवश्यक है? क्या मुझे कुछ गंभीर समस्या से जूझने की संभावना है जो मुझे जावास्क्रिप्ट को समझने की आवश्यकता है? क्या मैं कॉफ़ीसेस्क्रिप्ट से जावास्क्रिप्ट एपीआई के साथ खुशी से काम कर सकता हूं?

संपादित करें : मैं एक सप्ताह में आसानी से जावास्क्रिप्ट की मूल बातें जान सकता था। मुझे लगता है कि जावास्क्रिप्ट में बहुत अधिक तेज धार है। में अजीब भाषा सुविधा StackOverflow जावास्क्रिप्ट पर सवाल सबसे आम भाषाओं में से एक है। इसमें एक असामान्य वस्तु और वर्ग मॉडल है। इसमें गैर-स्पष्ट नाम स्कूपिंग नियम हैं। मुझे लगता है कि मुझे वास्तव में एक भाषा जानने में एक सप्ताह से अधिक समय लगता है।

मैं वेब विकास सीखने के लिए एक छोटी सी सरल परियोजना पर काम करने जा रहा हूं। क्या मैं जावास्क्रिप्ट या कॉफ़ीस्क्रिप्ट का उपयोग करना बेहतर होगा? मुझे लगता है कि लंबे समय में मैं कॉफ़ीस्क्रिप्ट पसंद करूंगा, लेकिन मैं जावास्क्रिप्ट के साथ शुरू करने के लिए तैयार हूं, अगर मुझे कॉफ़ीसेस्क्रिप्ट का उपयोग करने के लिए जावास्क्रिप्ट की पूरी तरह से समझ की आवश्यकता है।


ध्यान रखें कि CoffeeScript केवल जावास्क्रिप्ट के लिए संकलित है। जबकि CS जावास्क्रिप्ट की कुछ बारीकियों को प्रबंधित करना आसान बनाता है, यह उन्हें राहत नहीं देता है; यह अभी भी सभी एक ही कार्यक्षमता और quirks के अधीन है। उदाहरण के लिए, classCS में कीवर्ड कुछ भी जादुई नहीं करता है; यह केवल जावा स्क्रिप्ट का उपयोग करता है देशी प्रोटोटाइप विरासत तंत्र। इस कारण से, मैं अनुशंसा करूंगा कि कुछ जावा स्क्रिप्ट्स में से कुछ से अधिक अस्पष्ट "सुविधाओं" का कम से कम सहायक ज्ञान हो।
मिशेल टिली

2
सीएस एक जादू की रजत गोली नहीं है जो सब कुछ आसान बनाता है, यह एक अलग वाक्यविन्यास के साथ जेएस है। चाहे आप JS लिखें या CS एक शैली पसंद है।
रायनोस

जवाबों:


12

मुझे लगता है कि यह बिल्कुल आवश्यक नहीं होगा, लेकिन यदि आप नहीं करते हैं तो आप लंबे समय तक बाधाओं को मारेंगे।

आपको यह समझने की जरूरत है कि हुड के नीचे क्या हो रहा है और कॉफीस्क्रिप्ट कंपाइलर क्या कहता है, जैसा कि ब्राउज़रों (यह मानते हुए कि हम ब्राउजर वातावरण में कॉफीस्क्रिप्ट का उपयोग करने के बारे में बात कर रहे हैं) की व्याख्या करने की आवश्यकता होगी। इसका मतलब यह भी है कि यह आपको डिबग करने की आवश्यकता होगी , विशेष रूप से कॉफीस्क्रिप्ट पर विचार करना हाल ही में है और हम अभी भी इसके ट्रांसक्रिप्शन तंत्र में कुछ खुरदुरे किनारों और बगों के पार आ सकते हैं। इसके अलावा, यदि डिबगिंग के लिए किसी भी bespoke डिबगिंग टूल का उपयोग नहीं किया जाता है, तो आपको फायरबग या क्रोम देव टूल्स या पसंद के अपने JS कंसोल का उपयोग करके उत्पन्न जावास्क्रिप्ट कोड के माध्यम से कूदना होगा। कुछ मामलों में आप देख पाएंगे कि जेएस त्रुटि सीधे स्रोत कॉफीस्क्रिप्ट कथन से कैसे संबंधित है। दूसरों में, प्रतिलेखन गैर-तुच्छ है,

इसे इस तरह से लें: आप कभी भी निम्न-स्तरीय विकास किए बिना जावा और सी # में बहुत अच्छी तरह से सॉफ्टवेयर विकसित कर सकते हैं। फिर भी आपको यह समझने में बहुत बुरा समय लगता है कि क्या हो रहा है और आपने प्रदर्शन में अड़चनें और मेमोरी के मुद्दों को क्यों मारा है अगर आपके पास कोई सुराग नहीं है और इन भाषाओं के रनटाइम के लिए पृष्ठभूमि में आपके लिए क्या करना है, इसके बारे में एक शिक्षित अनुमान लगाने में असमर्थ हैं, और अनुमान का क्या हिस्सा वे पेंच कर सकते हैं क्योंकि वे बस चमत्कार नहीं खींच सकते।

इसके अतिरिक्त, यदि आप जावास्क्रिप्ट सीखते हैं, तो आपको एहसास होगा कि मूल रूप से यह जितना मुश्किल लगता है, उससे कहीं अधिक मुश्किल होगा, और आप इसके स्वाद और स्वच्छ वाक्यविन्यास के लिए कॉफीस्क्रिप्ट की सराहना करेंगे :)


1
या आप JavaScript नहीं होने के कारण CoffeeScript पर नाराज होंगे;)। ES5 एक प्यारी भाषा है।
रेयानोस

@ रेयानोस: एक सुअर पर लिपस्टिक, अभी भी एक सुअर; एक बकरी पर टक्सीडो, अभी भी एक बकरी, आदि ... :) मैं सहमत हूं कि ECMAScript वास्तव में एक बहुत ही रोचक भाषा है जिसे एक बार आपको पता चल जाता है, लेकिन इसके पास बहुत अधिक असंगतताएं और जाल और नुकसान हैं जो इसे दोनों के लिए बोझ बनाते हैं। नए शिक्षार्थियों और यहां तक ​​कि उन्नत प्रोग्रामर के लिए। फिर भी, यह हमारी आधुनिक वेब भाषा है, और यह समय के साथ बेहतर और परिपक्व होती जा रही है। मैं कॉफीस्क्रिप्ट के विचार को पसंद करता हूं क्योंकि यह ईसीएमएस्क्रिप्ट की कुछ कष्टप्रद चीजों को छुपाता है, उसी तरह से जावा (या इसके ऊपर भी एक भाषा) के लिए कुछ लिबास का उपयोग करते हुए इसे मुस्कराते हुए बनाते हैं।
१३

2
मेह, आपको सिर्फ अच्छे पुर्जों को पढ़ने की जरूरत है और जाने के लिए आपकी भलाई। नुकसान से बचने के लिए मुश्किल नहीं हैं।
रायनोस

@ रेयानोस: फिर भी मैं दुर्भाग्यवश उन्नत जेएस डेवलपर्स को किराए पर लेने के लिए संघर्ष करता हूं, दुर्भाग्य से। वास्तव में अच्छे लोगों को ढूंढना काफी कठिन होता है।
ज्येष्ठ

ओह मैं सहमत हूं, जेएस समुदाय औसत दर्जे के डेवलपर्स के साथ संतृप्त है। मुझे नहीं लगता कि आपको उन्हें कहां ढूंढना चाहिए। मैं केवल JS chat.SO के कमरे से कुछ अच्छे डेवलपर्स को जानता हूं । मुझे लगता है कि सरासर तथ्य यह है कि कोई भी अच्छे JS डेवलपर नहीं हैं, JS को कठोर होना चाहिए। मुझे लगता है कि कोई भी इसे ठीक से सीखने के लिए परेशान नहीं करता है।
Raynos

4

तुम पूछो:

क्या मुझे कुछ गंभीर समस्या से जूझने की संभावना है जो मुझे जावास्क्रिप्ट को समझने की आवश्यकता है?

मैं कह सकता हूं, असमान रूप से, हां। सामान्य तौर पर, यदि आप कुछ दिलचस्प कर रहे हैं, तो कुछ बिंदु पर आपको कम से कम यह समझने की आवश्यकता होगी कि आपके नीचे के स्तरों में क्या हो रहा है। (कभी-कभी Google + कट + पेस्ट आपको बचा सकता है, लेकिन आप उस आदमी नहीं बनना चाहते।)

किसी भी "यथोचित अनुभवी प्रोग्रामर" को तब एक नई भाषा चुनकर आपको बहुत लंबा नहीं लगना चाहिए। जावास्क्रिप्ट एक काफी सरल भाषा है। इसके बारे में कुछ भी मुश्किल पर्यावरण से आता है जो इसमें निष्पादित हो रहा है: अर्थात्, अलग-अलग विचारों के साथ कई अलग-अलग वेब ब्राउज़र।

वेब पर आपको जो भी "जानकारी" मिलेगी, उसमें से बहुत सारी जानकारी जावास्क्रिप्ट के साथ लिखी जाएगी, इसलिए आपके पास संभवतः एक आसान समय होगा यदि आप सीखेंगे कि जावास्क्रिप्ट को कैसे पढ़ना है और इसे बराबर कॉफ़ीस्क्रिप्ट में अनुवाद करना है।

ईमानदारी से, जब तक आप जानबूझकर अनजान बने रहने की कोशिश नहीं करते, तब तक आप शायद कॉफीस्क्रिप्ट में काम करने के साइड इफेक्ट के रूप में जावास्क्रिप्ट सीखेंगे। तो बस पहले से ही शुरू हो जाओ।


4

क्योंकि " कॉफ़ीस्क्रिप्ट का सुनहरा नियम है: 'यह सिर्फ जावास्क्रिप्ट है' ," मैं कम से कम जावास्क्रिप्ट के साथ एक बुनियादी परिचित की सिफारिश करता हूं। विशेष रूप से, डगलस क्रॉकफोर्ड की छोटी पुस्तक, जावास्क्रिप्ट: द गुड पार्ट्स पर एक नज़र है । आप इसके बारे में क्रॉकफोर्ड की अपनी शानदार परिचयात्मक प्रस्तुति भी देख सकते हैं ।

कॉफीस्क्रिप्ट मूल रूप से जावास्क्रिप्ट के अच्छे हिस्सों को एक अलग पैकेज में लपेटता है: " कॉफीस्क्रिप्ट एक ऐसी भाषा की कल्पना करने के लिए एक सरल विचार है जो जावास्क्रिप्ट को रेखांकित करने वाली सुंदर वस्तु मॉडल के लिए एक न्यूनतम वाक्यविन्यास को उजागर करता है। " आपको सभी विवरणों को जानने की आवश्यकता नहीं है बस यह समझना होगा कि जावास्क्रिप्ट, जो अपने आप, है पर्याप्त नहीं एक वर्ग आधारित वस्तु उन्मुख भाषा। इसकी कोई कक्षा नहीं है। इसके बजाय, यह " प्रोटोटाइप " का उपयोग करता है और यह अन्य OO भाषाओं के कुछ अंतरों के लिए बनाता है। जेरेमी एशकेनस ने जावास्क्रिप्ट सिंटैक्स के कुछ खराब हिस्सों को साफ किया, कुछ संवर्द्धन जोड़े, और इसे थोड़ा और पायथन -केस बना दिया ।

जावास्क्रिप्ट के लिए बाहर देखने के लिए कुछ प्रसिद्ध "गोच" हैं। अन्यथा, यह एक महान भाषा है और आज बहुत आम उपयोग में है। हमारे पास इसके बिना AJAX या jQuery नहीं होगा, अन्य बातों के अलावा।

अपने CoffeeScript के साथ शुभकामनाएँ!


अच्छे हिस्से खरीदें। एक Cheapskate मत बनो!
रेयानोस

@ रेयानोस - मैंने किया। मैं नहीं! : D लेकिन मैंने संभावित अनुचित खोज सुझाव को हटा दिया है। इस पर ध्यान दिलाने के लिए धन्यवाद!
16:35 पर जॉन टोबलर

3

हाँ। यह दुनिया का अंत नहीं है यदि आप नहीं करते हैं, लेकिन हाँ।

क्यों? खैर पहले, जावास्क्रिप्ट वास्तव में सीखना आसान है। सचमुच इसे सीखने में मुझे 4 दिन लगे (खैर, इसका अधिकांश)। इसके अलावा, मेरा मानना ​​है कि यह कॉफीस्क्रिप्ट से अधिक मूल्यवान है। मुझे नहीं लगता कि आपको कॉफ़ीस्क्रिप्ट की भी ज़रूरत है। लेकिन यह अभी भी एक अच्छा उपकरण है।


3
मैं वर्षों से जावास्क्रिप्ट सीख रहा हूं, और मैं अभी भी नहीं कहूंगा कि मैं वास्तव में इसे जानता हूं। एक बार में मुझे इसके बारे में ऐसी बातें पता चलीं जिसने मुझे आश्चर्यचकित कर दिया। यह सीखना आसान हो सकता है कि "हैलो वर्ल्ड" कैसे करें, लेकिन अंतर्निहित प्रकार रूपांतरण और क्लोजर के व्यवहार की भविष्यवाणी करना सीखना नहीं है।
Zach

@Zach आपको जावास्क्रिप्ट ज्ञानवर्धन पुस्तक में रुचि हो सकती है । एक समीक्षा में लिखा है: "वास्तव में, मुझे वास्तव में कुछ भी याद नहीं आ रहा है। यदि आपने कभी सोचा है कि जेएसएलआईएनटी को किसी चीज की शिकायत क्यों है, तो मूल कारण इस पुस्तक में कहीं समझाया जा सकता है।"
मिशेल Tilley

1
@Zach क्लोजर इतना कठिन नहीं है, टाइप रूपांतरण एक दर्द है। जेएस के साथ बड़ी समस्या यह जान रही है कि IE के पुराने संस्करण क्या कर रहे हैं।
रेयनोस

@Zach: मुझे पता है कि मैं जावास्क्रिप्ट के सभी नहीं जानता। मैं पास भी नहीं हूं। लेकिन मुझे पता है कि मूल बातें और कुछ मध्यवर्ती सामान सीखना बहुत आसान है।
डायनेमिक

0

निर्भर करता है।

यदि CoffeeScript, जावास्क्रिप्ट को पर्याप्त रूप से अमूर्त करता है, ताकि आपको इसे जानने की आवश्यकता न हो (जैसे C # सार इंटरमीडिएट भाषा), तो हाँ, आप जावास्क्रिप्ट सीखने के बिना CoffeeScript में जो करना चाहते हैं, वह कर सकते हैं।

लेकिन मेरा अनुभव मुझे बताता है कि मैं कितना भी जावास्क्रिप्ट से भागने की कोशिश करूं, जब क्लाइंट की बात आती है, तो मुझे कभी-कभी अपने हाथों को गंदा करने और शुद्ध जावास्क्रिप्ट लिखने की आवश्यकता होती है।

हां आप ठीक हैं। जबकि जावास्क्रिप्ट सिंटैक्स आसान है और आप इसे कमजोर में सीख सकते हैं, लेकिन इसमें आपको मास्टर होने में कई साल लगते हैं।

IMHO, जैसा कि मैं CoffeeScript देखता हूं, यह पूरी तरह से सभी जावास्क्रिप्ट पेचीदगियों को लपेटने के लिए पर्याप्त परिपक्व नहीं है। इसलिए, मैं जावास्क्रिप्ट के साथ सीधे सीखने या काम न करने का जोखिम नहीं उठाता।


CoffeeScript एक बहुत पतली अमूर्तता है। आप सीधे कॉफ़्सस्क्रिप्ट सीख सकते हैं लेकिन संकलित जेएस डिबगिंग एक दर्द होगा। "मेरे हाथ गंदे हो जाओ और शुद्ध जावास्क्रिप्ट लिखो"। जावास्क्रिप्ट गंदा नहीं है।
रेयानोस

1
@ रेयान, मेरा मतलब यह नहीं था कि जावास्क्रिप्ट गंदा है। :)। यह एक प्रकार का अभिव्यक्ति है जिसका अर्थ है कि आपको गहरी अंतर्निहित परतों को प्राप्त करना चाहिए।
सईद नेमाटी

यह कहने की तरह है कि "मैं कुछ गेम प्रोग्रामिंग कर रहा हूं, सबसे अच्छे से अपने हाथ गंदे कर रहा हूं और सी ++ लिख रहा हूं" या "मैं कुछ एआई कर रहा हूं, सबसे अच्छे से अपने हाथ गंदे करूं और LISP लिखूं"। ब्राउज़र में हमारे पास एकमात्र गहरी अंतर्निहित परत NaCl
Raynos

0

Coffeescript प्रलेखन समतुल्य जावास्क्रिप्ट के संदर्भ में coffescript को परिभाषित करता है। यदि आप जावास्क्रिप्ट को नहीं समझते हैं, तो आप कॉफ़ीस्क्रिप्ट को भी नहीं समझेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.