सवाल वास्तव में इस बारे में नहीं है कि मेटा-प्रोग्रामिंग ठीक है या नहीं, बल्कि इस बारे में कि क्या टीम पर दूसरों की तुलना में बेहतर होना ठीक है, इसलिए यहां कुछ विवादास्पद बिंदु हैं कि मैं इसे कैसे देखता हूं ...
मैं हाल ही में एक नई नौकरी में गया था जहाँ मैं एक बड़ी टीम में काम कर रहा था और यह [मेटा-प्रोग्रामिंग] मेरे कुछ सहयोगियों को चिंतित करता है, क्योंकि वे इसे समझ नहीं पाते हैं।
वे चिंतित हैं कि आप फिर बेहतर हैं। अच्छी बात है। आप नए विशेषज्ञ बनने जा रहे हैं। आपने बस उनकी यथास्थिति को नष्ट कर दिया।
मैं हमेशा भाषा की पूरी क्षमता का लाभ उठाने की कोशिश करता हूं, लेकिन मेरे सहयोगियों में से कुछ (सभी नहीं) को लगता है कि जोखिम के रूप में (कुछ का स्वागत है)।
निश्चित रूप से, कोई भी किसी से कम कुशल होना पसंद नहीं करता है, इसलिए वे आपको उन तकनीकों का उपयोग करने से रोकने की कोशिश कर रहे हैं जो उनके लिए बहुत जटिल हैं। वे या तो इसे समझ नहीं सकते हैं या नहीं जा रहे हैं, क्योंकि वे अब सुरक्षित महसूस करते हैं।
मैं मानता हूं कि कोड लिखना एक समस्या है जो टीम पर कोई और नहीं लिख सकता।
मैं नही। मुझे लगता है कि यह आपकी विशेषज्ञता दिखा रहा है।
मेरा सवाल यह है कि कौन सही है, मुझे क्या करना चाहिए?
आपको सबसे अच्छा कोड लिखने के लिए अपने सभी कौशल का उपयोग करना चाहिए और उन लोगों को पीछे नहीं देखना चाहिए जो इसे नहीं समझते हैं। अन्यथा आप उनके स्तर पर अटक जाएंगे और सिर्फ एक साधारण कोडर बनेंगे। दूसरों से बेहतर होना अच्छी बात है और उनसे बेहतर बनने के लिए प्रयास करना अच्छी बात है। यदि आप कुछ नया प्रयोग करने या चीजों को अलग तरीके से करने की कोशिश नहीं करते हैं तो आप कभी भी कोई नया अनुभव प्राप्त नहीं करेंगे।
मुझे पता है कि मैं नीचे जा रहा हूँ, लेकिन यह इस तरह दिखता है। टीम में दूसरों की तुलना में बेहतर होना अपराध नहीं है, और अपने कौशल का उपयोग करना अपराध नहीं है। यह सिर्फ इतना है कि हर कोई इसे स्वीकार करने से डरता है ... क्योंकि वे गैर-कुशल पक्ष में हैं और इसे नफरत है कि नया आदमी अचानक कुछ कर सकता है जो मैं नहीं कर सकता। यदि वे चतुर थे, तो वे आपसे सहायता के लिए और सलाह के लिए पूछेंगे और आपके कोड की आलोचना नहीं करेंगे।
संपादित करें
इस सवाल को लेकर काफी भ्रम की स्थिति बनी हुई है। जैसा कि टिप्पणियों से पता चलता है कि बहुत से लोग सोचते हैं कि यह सामान्य कोड पठनीयता के बारे में है। नहीं यह नहीं। यह इस बारे में है कि क्या कुछ भाषा सुविधाएँ / निर्माण निषिद्ध या टाल दिए जाने चाहिए क्योंकि कुछ टीम के सदस्य उन्हें नहीं समझते हैं।
मेरा जवाब है नहीं । उन्हें मना नहीं किया जाना चाहिए। यदि आप कुछ करना चाहते हैं तो आप कैसे करेंगे? आपको यह पता लगाने के लिए किसी तरह की प्रश्नावली तैयार करनी होगी कि आपकी टीम के सदस्य क्या कर सकते हैं और क्या नहीं - या यह नहीं सीखना चाहते हैं क्योंकि मुझे लगता है कि सभी फीचर्स फीचर कहीं न कहीं उपयोगी हैं, इसलिए उन्हें जानना और उनका उपयोग करने में सक्षम होना हमेशा होता है अच्छा और जितना अधिक आप जानते हैं बेहतर कोड आप लिख सकते हैं। आपको यह परिभाषित करने के लिए भी पैमाने की आवश्यकता होगी कि कौन सी सुविधाएँ शुरुआती, मध्यवर्ती या उन्नत हैं।
यह दिखाने के लिए कि इस तरह के प्रतिबंध कितने मूर्खतापूर्ण हैं, चलो एक बहुत ही सरल उदाहरण लेते हैं: आप एक सॉफ्टवेयर इंजीनियर के रूप में काम पर रखने जा रहे हैं, लेकिन आपका भावी बॉस आपको बताता है कि आपको do/while
लूप का उपयोग करने की अनुमति नहीं दी जाएगी क्योंकि कुछ लोग हैं जो टीम ने पहले कभी उनका उपयोग नहीं किया है और वे भी नहीं जा रहे हैं क्योंकि वे हमेशा से for
हर चीज के लिए लूप का उपयोग करते रहे हैं ताकि वे do/while
लूप को भ्रमित कर सकें ।
अब आपको लगता है कि यह मूर्खतापूर्ण और पागल है, क्या आप नहीं? लेकिन अन्य सुविधाओं के लिए मना कर रहा है। कुछ कवि उनका उपयोग कर सकते हैं और अन्य उन्हें सीखना नहीं चाहते हैं।
यदि आपको पता है कि आपको बदतर कोड का उत्पादन क्यों करना चाहिए, तो ऐसा कुछ है जो आपको बहुत कम प्रयास के साथ ऐसा करने की अनुमति देता है और फिर भी बहुत अधिक पठनीय परिणाम होता है?
और इससे कोई फर्क नहीं पड़ता कि आप केवल मूल भाषा सुविधाओं या उन्नत लोगों का उपयोग करते हैं, आप समान रूप से असंगत और अचूक कोड का उत्पादन करने के लिए किसी एक का उपयोग कर सकते हैं, इसलिए यह पूरी तरह से अलग विषय है।