क्या पायथन प्रोग्रामर व्हाट्सएप मुद्दे को असुविधाजनक पाते हैं? [बन्द है]


11

कई प्रोग्रामर, पहले पायथन का सामना करने के बाद, तुरंत व्हाट्सएप के महत्व से दूर हो जाते हैं। मैंने कई कारणों से सुना है कि यह असुविधाजनक है, लेकिन मैंने पायथन प्रोग्रामर की शिकायत कभी नहीं सुनी है।

बेशक, मैं बहुत सारे पायथन प्रोग्रामर से नहीं मिला हूं, क्योंकि मैंने अपना करियर जावा दुनिया में बिताया है।

तो मेरा प्रश्न आप में से उन लोगों के लिए है जिन्होंने एक बड़े पायथन प्रोजेक्ट में भाग लिया है (3 महीने से अधिक, पायथन को प्राथमिक भाषा के रूप में इस्तेमाल किया गया है): क्या आपने व्हाट्सएप मुद्दे को असुविधाजनक और लगातार कष्टप्रद पाया? या प्रवाह में आने के बाद यह एक गैर-मुद्दा था?

मैं सवाल नहीं पूछ रहा हूं क्योंकि मैं पायथन के खिलाफ हूं या व्हाट्सएप के इस्तेमाल के खिलाफ हूं। मैं पायथन को पसंद करता हूं, लेकिन मैंने कभी भी किसी बड़ी चीज के लिए इसका इस्तेमाल नहीं किया है।

यदि आप पायथन में अनुभवी नहीं हैं तो कृपया कयास न लगाएं।


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

कब से व्हाट्सएप एक मुद्दा है? :-)
कुगेल

22
हमें यह असुविधाजनक लगता है कि बाकी सभी इसे सामने लाते रहें। हम इसके बारे में कभी नहीं सोचते।
विंस्टन इवर्ट

व्हाट्सएप का मुद्दा अलग नहीं है सालों पहले - OCCAM2 में महत्वपूर्ण सफेद स्थान था। यह कोई बड़ी बात नहीं थी।
जल्दी_अगले

4
केवल एक बार जो मैंने कभी पाया है वह कष्टप्रद है जब ऑनलाइन से कॉपी-पेस्टिंग कोड जो टैब (या इसके विपरीत) के बजाय रिक्त स्थान का उपयोग करते हुए लिखा गया था, जिससे शाब्दिक रूप से अदृश्य सिंटैक्स त्रुटियां पैदा होती हैं
कैमरन

जवाबों:


14

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

कुल मिलाकर, यह एक जीत है, हालांकि, अगर मेरी स्क्रीन के आधे हिस्से को निम्न की तरह लाइनों से भरा होने से रोकने के लिए:

         }
      }
   }
}

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

1
हां, Emacs में मैं ब्लॉक चुनता हूं और हिट C-c >या C-c <। आपको अभी भी इसे स्वयं करना है, हालांकि। इसे दूसरे तरीके से रखने के लिए, चूंकि व्हाट्सएप और कोड लॉजिक बेमानी नहीं हैं, आप M-x indent-regionइसे केवल "सही ढंग से" इंडेंट करने के लिए एक विशाल ब्लॉक और कॉल (या जो भी आपके संपादक का संस्करण है) का चयन नहीं कर सकते ।
dfan

6
@ अदम, एक अच्छा संपादक आपके इंडेंटेशन स्तर को बदलना आसान बनाता है। लेकिन एक ब्रेसिज़ भाषा में, आप नए कोड को पेस्ट कर सकते हैं, और फ़ाइल को रीइंडेंट करने के लिए अपने पसंदीदा कीस्ट्रोक को हिट कर सकते हैं। टाडा! इंडेंटेशन सही है। अजगर में, आपको पेस्ट करना, चयन करना, इंडेंट / समर्पण करना होगा। यह बहुत नहीं है लेकिन ब्रेसिज़ के लिए यहां एक छोटी जीत है।
विंस्टन ईवर्ट

@ आइंस्टीन - आपका संपादक होना चाहिए। यदि आप जिस कोड को पेस्ट करते हैं वह सही ढंग से इंडेंट होता है, तो यदि यह कुछ स्तरों से दायीं / बायीं ओर निकलता है, तो यह केवल टाइप करने की बात है (SHIFT +) टैब को तदनुसार संरेखित करना - कुंजी को मारने के लिए वास्तविक अंतर नहीं है फ़ाइल को फिर से बनाएँ। इसके अलावा - आप कॉपी / पेस्ट कोड को शालस्ट नहीं करेंगे :)
इंगो

1
@ आइंस्टीन: यहां तक ​​कि नोटपैड ++ इंडेंट ब्लॉक जब टैब और शिफ्ट-टैब का उपयोग करते हैं, तो मुझे अभी तक वीम शॉर्ट-कट नहीं मिला है, लेकिन मैं इसे पर्याप्त रूप से उपयोग नहीं करता हूं मुझे लगता है: पी
मैथ्यू एम।

50

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


8
अपने आप को दोहराने के लिए +1 नहीं। अच्छा अभ्यास वैसे भी ब्लॉक संरचना को प्रतिबिंबित करने के लिए कोड को इंडेंट करना है, इसलिए मार्करों को भी शुरू / समाप्त करना है?
स्टीव ३४

12

महत्वपूर्ण व्हाट्सएप वास्तव में मेरे लिए सुविधाजनक है। यह मुझे कम टाइप बनाता है। यह बड़े करीने से और बल्कि स्पष्ट रूप से कोड स्वरूपित करता है। इसके कारण, यह कोड को अधिक पठनीय बनाता है।

(मुझे हस्केल में भी महत्वपूर्ण व्हाट्सएप पसंद है, उन्हीं कारणों से।)


1
मैंने हास्केल व्हाट्सएप के साथ अपने सकारात्मक अनुभव को भी साझा किया होगा, लेकिन फार्मबॉय ने जोर देकर कहा कि किसी के पास पायथन के साथ 3 महीने का अनुभव होना चाहिए, कुछ और अटकलें थीं। :-)
इंगो

1
1998 के बाद से पायथन के साथ मेरा अनुभव, इसलिए मेरा जवाब शायद योग्य है :) (हास्केल के साथ मेरा अनुभव बहुत छोटा है।)
9000

@ 9000 भले ही पाइकॉन से पहले हास्केल आया था! : D
pradyunsg

8

जब मैंने पहली बार अजगर का इस्तेमाल किया, तो व्हॉट्सएप की बात नई थी और इसलिए यह एक कष्टप्रद प्रतिबंध था।

अब मैं इसे नोटिस भी नहीं करता। मैं 11 महीने से अजगर का उपयोग कर रहा हूं।


5

सबसे पहले - मेरी रोटी और मक्खन भाषाएं पायथन, एसक्यूएल और जावा हैं। मुझे पायथन का व्हाट्सएप बहुत पसंद है - यह कम वाक्य रचना और टाइपिंग है, और यह लोगों को सुपाठ्य, बड़े करीने से प्रारूपित कोड लिखने के लिए मजबूर करता है। OTOH, मैं जावा की वाचालता से घृणा करता हूं - इतना कि मैं वास्तव में Python का उपयोग करता हूं मुझे उन सभी बॉयलरप्लेट को बनाने के लिए जो मुझे जावा में लिखना है, जो मेरे सभी जावा सहकर्मियों को प्रभावित करता है जो मेरी उत्पादकता पर चकित हैं।

एक बड़ा चेतावनी, हालांकि, जब वेब से कॉपी / पेस्टिंग कोड होता है - यह अक्सर मिश्रित रिक्त स्थान और टैब का कारण बनता है जिसे साफ करने के लिए एक अतिरिक्त कदम की आवश्यकता होती है, और मैं आमतौर पर केवल एक रनटाइम अपवाद के बाद पकड़ता हूं।


सिंटैक्स हाइलाइट टैब के लिए अपने संपादक को highlight link RedundantSpaces Error | au BufEnter,BufRead * match RedundantSpaces "\t" | au BufEnter,BufRead * match RedundantSpaces "[[:space:]]\+$"
बताना

4

यदि कोई प्रोग्रामर श्वेत-रिक्त स्थान के महत्व से नाराज है, तो वह संभवतः अजगर प्रोग्रामर नहीं बनेगा।


1
मैंने काफी लोगों को अजगर के बारे में सुना है जो कहते हैं कि उन्हें द व्हाट्सएप थिंग (टीएम) के साथ अपनी समस्या थी, लेकिन थोड़ी देर बाद उसे यह पसंद आया। मेरे अवलोकन से, ऐसा लगता है कि जितने अधिक लोग इस विषय पर चर्चा में शामिल होते हैं, उनमें से किसी एक की कहानी कहने की प्रवृत्ति एक दृष्टिकोण है। (संपादित करें: दूसरे उत्तर से तुरंत साबित ...)

@delnan, मैं इसकी सदस्यता ले सकता हूं।
इंगो

3

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

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


3

वास्तविक कोडिंग के लिए, यह बिल्कुल भी असुविधाजनक नहीं है, लेकिन वास्तव में फायदेमंद है (देखें dsimcha का जवाब)।

संचार तकनीकों से निपटने के दौरान यह कष्टप्रद हो सकता है जो प्रमुख व्हाट्सएप का सम्मान नहीं करते हैं (जैसे कि कई गैर-प्रोग्रामिंग उन्मुख वेब फ़ोरम और यह भी जब एक अलग भाषा के अंदर पायथन कोड को एम्बेड करना, जैसे कि HTML अस्थायी भाषाएं), भले ही मुझे लगता है कि पायथन में एक दोष की तुलना में व्हाट्सएप को अग्रणी बनाने वाले औजारों में दोष का अधिक होना, यह सच है कि निरर्थक भाषाएं जो कोड संरचना को दो बार व्यक्त करती हैं, ऐसे विनाशकारी वातावरण को संभालने के लिए बेहतर तरीके से सुसज्जित हैं (क्योंकि आप कोड को एक संपादक और ऑटो में पेस्ट कर सकते हैं- स्पष्ट संरचनात्मक मार्करों के आधार पर निर्भर, या कोड केवल मनुष्यों द्वारा पढ़ने के बजाय निष्पादित किया जा रहा है, तो परवाह नहीं है)।


2

मुझे व्हॉट्सएप परेशान नहीं लगता। मुझे अन्य भाषाओं में बहुत कष्टप्रद या असंगत इंडेंटिंग की कमी है। मैं समझता हूं कि यह समस्या उन समस्याओं में से एक है जिन्हें हल करने का इरादा है।

पायथन मेरी प्राथमिक भाषाओं में से एक नहीं है।

मुझे इस अवसर पर नाराजगी के कारण टैब और रिक्त स्थान की हैंडलिंग का पता चलता है। एडिटर्स को एक एडिट से दूसरे एडिट पर स्विच करते समय, या किसी अन्य एडिटिंग कोड को एडिट करते समय यह समस्या पैदा कर सकता है। यह आमतौर पर हल करने के लिए तुच्छ है।


1
अजगर इंडेंटेशन में टैब्स और स्पेस को मिलाना नर्क की सबसे छोटी सड़क है: p
Matthieu M.

@ मटिउ: निश्चित रूप से, यह मेरी झुंझलाहट है।
बिलथोर

1

मैं बिना किसी विशेष क्रम के C # / Javascript / XBase बैकग्राउंड से आता हूं, और पायथन के साथ मेरी डबब्लिंग्स में यह मेरे लिए बिल्कुल भी विचार नहीं है। यह अन्य भाषाओं में ब्रेसिज़ की तरह है - यह है कि यह कैसे काम करता है, चीजों को रखो जैसे कि नियम कहते हैं, और अपनी आँखें सूखना मेरा दृष्टिकोण है।

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