क्या यह भाषा विनिर्देश पढ़ने लायक है? [बन्द है]


18

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

क्या आपने कभी परेशान किया है, और दूसरों को करना चाहिए?


4
एक भाषा विनिर्देश को कवर से कवर करने के लिए पढ़ने के लिए नहीं है, यह केवल एक संदर्भ है।
महमूद होसम

जवाबों:


18

यह मूल रूप से एक काफी सरल प्रश्न के लिए नीचे आता है: क्या आप आधिकारिक, भाषा का विस्तृत ज्ञान चाहते हैं, या क्या आप इसका उपयोग करने के लिए इसे अच्छी तरह से जानकर खुश हैं, यह महसूस करते हुए कि संभवतः ऐसे भाग हैं जिन्हें आप अच्छी तरह से नहीं जानते हैं, और संभवतः अन्य भागों आप बिल्कुल नहीं जानते हैं?

मूल रूप से, कुछ लोग ऐसे हैं जो लगभग "भाषा के वकील" के रूप में पैदा होते हैं - वे तब तक आराम नहीं कर सकते (जब तक कि भाषा में कुछ नुक्कड़ या क्रेनियाँ नहीं हैं, जो वे नहीं जानते और / या समझे। इनमें से कई अपेक्षाकृत सरल भाषाओं की ओर बढ़ते हैं, क्योंकि इस स्तर पर अधिक जटिल भाषाओं को सीखना अक्सर किसी एक व्यक्ति के लिए असंभव होता है।

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


3
अंतिम पैराग्राफ के लिए +1। यही सबसे अधिक प्रोग्रामर्स को एहसास होना चाहिए - क्या वे एक जॉन स्कीट बनना चाहते हैं (जो C # के बारे में सब कुछ जानते हैं, लेकिन किसी भी चीज़ के बारे में कुछ भी नहीं जानते हैं - उदाहरण के लिए, उन्हें SQL प्रश्नों का उत्तर देते हुए नहीं देखा है) या सिर्फ एक उपयोगकर्ता जो अभ्यास को अधिक व्यावहारिक बनाता है और जीवन को अधिक रोचक बनाता है।

2
@Developer Art: लेकिन जॉन स्कीट भगवान हैं;)
Anto

1
@sbi: मैं सहमत हूँ कि भाषा (और इसकी जटिलता) स्पष्ट रूप से एक प्रमुख कारक है। मानक आकार जरूरी नहीं कि बहुत मायने रखता है। उदाहरण के लिए, C ++ मानक का वह भाग जो भाषा को समुचित रूप से कवर करता है, केवल ~ 400 पृष्ठों का है, जबकि जावा भाषा की युक्ति ~ 500 है। जबकि मुझे नहीं लगता है कि जावा लगभग "क्लीन अप" सी ++ है कि कुछ का दावा है, मेरा मानना ​​है कि यह सी ++ की तुलना में 25% अधिक जटिल है।
जेरी कॉफिन

3
जॉन डिकेट के बारे में थोड़ा कठोर है, वह सब कुछ (SQL सहित) के लिए बैज मिला है
18:11

2
@ डाटबुड्डा: मैं निश्चित रूप से अज्ञानता का बहाना नहीं करता, लेकिन निष्पक्षता में, ज्यादातर लोगों के लिए यह कम सवाल है कि उन्हें कुछ सीखना चाहिए, जो कि उन्हें अपना समय बिताना चाहिए। जो C ++ प्रोग्रामर को अधिक लाभान्वित करेगा: एक नया एल्गोरिथ्म सीखना, या सटीक नियमों को सीखने के लिए उपयोग किया जाता है, जो किसी दिए गए पैरामीटर के सेट के लिए कॉल करने के लिए कौन से अतिभारित फ़ंक्शन का चयन करता है? ध्यान रखें कि अगर उसके पास सामान्य रूप से देखभाल करने का बहुत कारण है जिसे कहा जाता है, तो वह शायद वैसे भी ओवरलोडिंग का दुरुपयोग कर रहा है!
जेरी कॉफिन

12

कभी नहीँ

किसी को कभी भी भाषा विनिर्देश नहीं पढ़ना चाहिए ।

यह समय की कुल बर्बादी है।

महान प्रोग्रामर यादृच्छिक कोड टाइप करने में सक्षम होते हैं, स्टैक ओवरफ्लो पर प्रश्न पूछते हैं, और आईडीई का उपयोग अंततः कोड लिखने के लिए करते हैं जो बहुत बार दुर्घटना नहीं करता है।

भाषा समझने में समय बर्बाद न करें। बस अच्छे से स्वत: पूर्ण के साथ एक महान IDE खोजें। बहुत सारे सवाल पूछें। यह सभी की जरूरत है।


3
कभी नहीँ? यदि आप एक दुभाषिया / संकलक लिख रहे हैं तो भी नहीं?
ग्रेफेड

1
आप इसे किसी न किसी! यह वैसे काम करता है। ;)
x4u

4
@ ग्रेफेड: कभी नहीं। तथ्यों पर कभी भरोसा न करें। धारणाओं के साथ रहना।
एस.लॉट

6
उस में क्या सूक्ष्म है?
आदित्य पी १ '

2
मैं ईमानदारी से नहीं बता सकता कि यह व्यंग्य था या नहीं। : पी
ग्रेफेड

5

जावा के लिए भाषा विनिर्देश किसी दिए गए स्रोत निर्माण के अर्थ के बारे में किसी भी प्रश्न का एक निश्चित उत्तर देने के लिए है। एक शिक्षार्थी के रूप में इसे पढ़ने की अनुशंसा नहीं की जाती है - इसके बजाय एक अच्छा शिक्षक आपको सभी जाल दिखाता है और वास्तव में उनका क्या मतलब है।

एक अनुभवी डेवलपर के लिए जावा पज़लर्स अंधेरे कोने के मामलों की आपकी समझ को प्रशिक्षित करने के लिए वास्तव में अच्छा है।


2

सामान्य उत्तर है: हाँ यह मूल्य है।

यदि आप पोर्टेबल कोड लिखना चाहते हैं, तो यह अनिवार्य है।

कुछ भाषाओं के लिए, यह केवल अपरिहार्य है, जैसे, Ada या perl।

इसके अलावा, यदि आप न केवल कोड लिखते हैं, बल्कि दूसरों से कोड भी पढ़ते हैं, तो आपको अंततः विनिर्देश का उल्लेख करना होगा।


2

शायद यह सिर्फ मुझे है, लेकिन यह सवाल कोई मतलब नहीं है। आपके द्वारा उपयोग किए जाने वाले उपकरणों को समझना एक पेशेवर की पहचान है। गहरी समझ, टूल का उपयोग करने की आपकी क्षमता जितनी बेहतर होगी। मेरे लिए यह एक डिलेटेंट या पेशेवर होने के बीच एक विकल्प है।

जब भी मैं एक नई भाषा सीख रहा हूं तो पहली चीज जो मैं देख रहा हूं वह है कल्पना।

मैंने ANSI C, C ++, Java, स्कीम, पायथन और जावास्क्रिप्ट के लिए चश्मा पढ़ा है। मैं ज्यादातर C, C ++ और Java डिटेल्स भूल गया हूं क्योंकि मैं उन भाषाओं का इस्तेमाल नहीं करता। चश्मा पढ़ने के बाद मैं एक बेहतर प्रोग्रामर था क्योंकि मुझे पता था कि भाषा का बेहतर इस्तेमाल कैसे किया जाता है।


1

सामान्य तौर पर यह कुछ मुश्किल क्षणों को समझने के लिए उपयोगी हो सकता है जो आप अभी और फिर मुठभेड़ करते हैं।

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


यह ठीक है कि मैं ECMA-262 की एक प्रति क्यों रखता हूं।
ग्रेफेड

1

मुझे यह उपयोगी लगता है जब आपका रन एक पल में होता है, लेकिन मुझे सीधे पढ़ने के रूप में बनाए रखना मुश्किल लगता है। हालाँकि जब मैंने इसका उपयोग किया है, तो मुझे कुछ समझ में नहीं आया कि यह हमेशा मेरे ज्ञान को बहुत आगे ले गया है।


1

यदि आप उस भाषा में एक हार्ड कोर प्रोग्रामर हैं, और आपको इससे हर सूक्ष्म बारीकियों को लिखने में सक्षम होने की आवश्यकता है, हाँ। उस मामले में आपके समय के निवेश पर स्पष्ट रिटर्न हैं ।

नहीं तो नहीं। यदि आप ज्ञान का उपयोग नहीं करने जा रहे हैं, तो यह निश्चित रूप से आपके साथ रहना नहीं है। भाषा के चश्मे पढ़ने के लिए कल्पना की सबसे नीची चीज के बारे में हैं।


1

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

मेरी राय में, साधारण तथ्य यह है कि प्रोग्रामिंग चुनौती का अधिकांश हिस्सा भाषा को वह नहीं बनाने में है जो आप चाहते हैं, यह जानकर है कि सही विकल्प क्या है। जब तक आप मूल भाषा सुविधाओं को जानते हैं, तब तक यह है कि उनका उपयोग कैसे किया जाए जो मायने रखता है।


1

यह निश्चित रूप से इसे पढ़ने लायक है। कुछ भाषाएँ जैसे कि C ++ और Java और Python पर्याप्त जटिल हैं कि जिस भाषा युक्ति को पढ़कर आप उन भाषाओं और उनके बारे में सभी फैंसी वाक्यविन्यास / अर्थ संबंधी ट्रिक्स सीखेंगे।

मैं कॉलेज जाने के लिए बस की सवारी पर स्कीम R5RS भाषा विनिर्देश पढ़ता था क्योंकि यह छोटा और कॉम्पैक्ट था और मैंने सभी सिंटैक्स और सभी उपलब्ध बुनियादी कार्यों को सीखा।


0

Doc.python.org का लेबल "भाषा संदर्भ" बेहद उपयोगी है। "डेटा मॉडल" अध्याय विशेष रूप से।


0

मुझे लगता है कि अगर इस भाषा में प्रोग्रामिंग करना आपका काम है और आप अपनी नौकरी को गंभीरता से लेना चाहते हैं, तो आपको भाषा विनिर्देश को पढ़ना चाहिए, खासकर जब यह अपेक्षाकृत आसान और पढ़ने में तेज हो और जावा भाषा विनिर्देश की तरह समझने के लिए, हालांकि इसमें recentlyबहुत कुछ खो गया हो यह सामान्यता के साथ सरलता है।

लेकिन अगर आप सीखने की योजना बनाते हैं और अंततः एक नई भाषा में महारत हासिल करते हैं, जिसे आप अभी तक नहीं जानते हैं, तो इससे पहले कि आप इसके साथ अपना समय बर्बाद करें, उस भाषा के विनिर्देश को पढ़ना बहुत ही सुखद हो सकता है। मुझे यकीन है कि अगर अधिक सी ++ डेवलपर्स ने पढ़ा होगा और सी ++ एनोटेट संदर्भ मैनुअल को समझने की कोशिश की होगी, तो इससे पहले कि वे इसका उपयोग करना शुरू कर दें, इससे बहुत से लोग डर कर भाग जाएंगे।

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