मैं जहां संभव हो बिना ब्रेसिज़ के संस्करण को पसंद करता हूं ।
निम्नलिखित व्याख्या दीर्घकालीन है। कृपया मेरा साथ दें। मैं इस शैली को पसंद करने के लिए मुझे एक सम्मोहक कारण दूंगा। मैं यह भी बताऊंगा कि मुझे क्यों लगता है कि सामान्य प्रतिवाद पकड़ में नहीं आता है।
(पास-) खाली लाइनें एक बेकार हैं
इसका कारण यह है कि समापन ब्रेस को कोड की एक अतिरिक्त रेखा की आवश्यकता होती है - और इसलिए शैली के आधार पर उद्घाटन ब्रेस होता है। 1
यह एक बड़ी बात है? सतही तौर पर, नहीं। आखिरकार, अधिकांश लोग तार्किक रूप से थोड़ा स्वतंत्र ब्लॉकों को अलग करने के लिए अपने कोड में खाली लाइनें भी डालते हैं, जो पठनीयता में काफी सुधार करता है।
हालांकि, मैं वर्टिकल स्पेस बर्बाद कर रहा हूं। आधुनिक मॉनिटर वास्तव में पर्याप्त क्षैतिज स्थान रखते हैं। लेकिन ऊर्ध्वाधर स्थान अभी भी बहुत, बहुत सीमित है (जब तक कि आप एक मॉनिटर का उपयोग नहीं करते हैं, जो कि असामान्य नहीं है)। इस सीमित ऊर्ध्वाधर अंतरिक्ष है एक समस्या: यह व्यापक रूप से स्वीकार किया है कि अलग-अलग तरीकों यथासंभव कम होना चाहिए, और ताकि आप बिना किसी पूरे ब्लॉक देख सकते हैं कि इसी ब्रेसिज़ (या अन्य ब्लॉक सीमांकक) अंतर में एक स्क्रीन ऊंचाई से अधिक नहीं होना चाहिए स्क्रॉल।
यह एक मूलभूत समस्या है: एक बार जब आप अपनी स्क्रीन पर पूरे ब्लॉक को किसी भी समय नहीं देख सकते हैं, तो यह समझ में आ जाता है।
एक परिणाम के रूप में, मैं निरर्थक खाली लाइनों का पता लगाता हूं। जहाँ सिंगल खाली लाइनें स्वतंत्र ब्लाकों का परिसीमन करने के लिए महत्वपूर्ण हैं (बस इस पाठ के दृश्य स्वरूप को देखें), मेरी किताब में लगातार खाली लाइनें एक बहुत खराब शैली हैं (और मेरे अनुभव में वे आमतौर पर नौसिखिए प्रोग्रामर का संकेत हैं)।
इसी तरह, लाइनें जो एक ब्रेस रखती हैं, और जो किफायती हो सकती हैं, होनी चाहिए। एक एकल-स्टेट ब्लॉक जिसे ब्रेसिज़ द्वारा सीमांकित किया गया है, एक से दो लाइनों को बर्बाद करता है। प्रति स्क्रीन ऊंचाई केवल 50-ईश लाइनों के साथ, यह ध्यान देने योग्य है।
ब्रेसिज़ को छोड़ने से शायद कोई नुकसान न हो
ब्रेसिज़ को छोड़ने के खिलाफ सिर्फ एक तर्क है: कोई बाद में प्रश्न में ब्लॉक में एक और बयान जोड़ देगा और ब्रेसिज़ जोड़ना भूल जाएगा, इस प्रकार अनजाने में कोड के शब्दार्थ को बदल देगा।
यह वास्तव में एक बड़ी बात होगी।
लेकिन मेरे अनुभव में, ऐसा नहीं है। मैं एक मैला प्रोग्रामर हूँ; और फिर भी, अपने दशक के प्रोग्रामिंग अनुभव में, मैं ईमानदारी से कह सकता हूं कि मैं एक बार सिंगलटन ब्लॉक में एक अतिरिक्त स्टेटमेंट जोड़ते समय ब्रेसिज़ जोड़ना नहीं भूलता।
मुझे यह भी असंभव लगता है कि यह एक सामान्य गलती होनी चाहिए: ब्लॉक प्रोग्रामिंग का एक मूलभूत हिस्सा है। ब्लॉक स्तरीय संकल्प और स्कूपिंग प्रोग्रामर के लिए एक स्वचालित, संयमित मानसिक प्रक्रिया है। मस्तिष्क बस यह करता है (अन्यथा, प्रोग्रामिंग के बारे में तर्क करना बहुत कठिन होगा)। कोई अतिरिक्त मानसिक ब्रेसिज़ डाल याद करने के लिए आवश्यक प्रयास है: प्रोग्रामर भी करने के लिए याद करते हैं इंडेंट सही ढंग से नए जोड़े गए बयान, सब के बाद; इसलिए प्रोग्रामर ने पहले से ही मानसिक रूप से संसाधित किया है कि एक ब्लॉक शामिल है।
अब, मैं यह नहीं कह रहा हूँ कि ब्रेसिज़ को छोड़ने से गलतियाँ नहीं होती हैं। मैं जो कह रहा हूं वह यह है कि हमारे पास कोई रास्ता नहीं है। हम बस यह नहीं जानते कि क्या इससे नुकसान होता है।
इसलिए जब तक कोई मुझे कठिन डेटा नहीं दिखा सकता है, वैज्ञानिक प्रयोगों से एकत्र किया गया है, यह दर्शाता है कि यह वास्तव में व्यवहार में एक मुद्दा है, यह सिद्धांत एक " जस्ट-सो स्टोरी " बना हुआ है: एक बहुत ही सम्मोहक परिकल्पना जो कभी भी परीक्षण में नहीं डाली गई है, और वह एक तर्क के रूप में इस्तेमाल नहीं किया जाना चाहिए ।
1 इस समस्या को कभी-कभी सब कुछ डालकर हल किया जाता है - ब्रेसिज़ सहित - एक ही लाइन पर:
if (condition)
{ do_something(); }
हालांकि, मेरा मानना है कि यह कहना सुरक्षित है कि ज्यादातर लोग इसे घृणा करते हैं। इसके अलावा, इसमें ब्रेसिज़ के बिना वैरिएंट के समान समस्याएं होंगी, इसलिए यह दोनों दुनिया में सबसे खराब है।