में पॉडकास्ट 73 , योएल Spolsky और जेफ Atwood पर चर्चा, अन्य विषयों के बीच, "पाँच बातें हर कोई अपने पसंदीदा प्रोग्रामिंग भाषा के बारे में नफरत चाहिए":
यदि आप अपनी वर्तमान टूल श्रृंखला से खुश हैं, तो कोई कारण नहीं है कि आपको स्विच करने की आवश्यकता हो। हालाँकि, यदि आप अपनी पसंदीदा प्रोग्रामिंग भाषा के बारे में आपसे नफरत करने वाली पांच चीजों को सूचीबद्ध नहीं कर सकते हैं, तो मेरा तर्क है कि आप इसे अभी तक अच्छी तरह से नहीं जानते हैं कि यह न्याय करना है। विकल्पों के बारे में पता होना अच्छा है, और जो भी आप इसका उपयोग कर रहे हैं, उसके लिए एक स्वस्थ महत्वपूर्ण आंख है।
जिज्ञासु होने के नाते, मैंने किसी भी उम्मीदवार से यह सवाल पूछा जिसका मैंने साक्षात्कार किया था। उनमें से कोई भी सी # # के बारे में कम से कम एक चीज का उद्धरण देने में सक्षम नहीं था।
क्यूं कर? इस सवाल में इतना मुश्किल क्या है? यह साक्षात्कार के तनावपूर्ण संदर्भ के कारण है कि यह प्रश्न साक्षात्कारकर्ताओं द्वारा उत्तर देना असंभव है?
क्या इस सवाल के बारे में कुछ है जो एक साक्षात्कार के लिए बुरा बनाता है?
जाहिर है, इसका मतलब यह नहीं है कि C # सही है। मेरे पास सी # से नफरत करने वाली पांच चीजों की एक सूची है:
जेनरिक में प्रकारों की चर संख्या का अभाव (
paramsतर्कों के समान )।
Action<T>,
Action<T1, T2>,
Action<T1, T2, T3>,
⁞ गंभीरता से ?!
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>एफ # की तरह, माप की इकाइयों के लिए समर्थन की कमी।
केवल पढ़ने की कमी गुण।
private readonlyहर बार एक बैकिंग फ़ील्ड लिखना, मैं चाहता हूं कि केवल पढ़ने के लिए संपत्ति उबाऊ हो।डिफ़ॉल्ट मान वाले गुणों की कमी। और हां, मुझे पता है कि मैं उन्हें पैरामीटर रहित कंस्ट्रक्टर में इनिशियलाइज़ कर सकता हूं और अन्य सभी कंस्ट्रक्टर्स से कॉल कर सकता हूं। लेकिन मैं नहीं करना चाहता।
एकाधिक वंशानुक्रम। हां, यह भ्रम पैदा करता है और आपको ज्यादातर मामलों में इसकी आवश्यकता नहीं होती है। यह अभी भी कुछ (बहुत दुर्लभ) मामलों में उपयोगी है, और भ्रम उस वर्ग पर भी लागू होता है (और सी # में हल किया गया था) जो कई इंटरफेस को विरासत में मिला है जिसमें समान नाम के साथ विधियां शामिल हैं।
मुझे पूरा यकीन है कि यह सूची पूरी होने से बहुत दूर है, और हाइलाइट करने के लिए बहुत अधिक बिंदु हैं, और विशेष रूप से मेरे मुकाबले बहुत बेहतर हैं।
Framework कुछ लोगों ने .NET असेंबली में कुछ असेंबली की आलोचना की या फ्रेमवर्क में कुछ लाइब्रेरी की कमी या CLR की आलोचना की। यह मायने नहीं रखता है, क्योंकि सवाल भाषा के बारे में ही था, और जबकि मैं संभावित रूप से .NET फ्रेमवर्क के मूल में कुछ नकारात्मक के बारे में एक उत्तर को स्वीकार कर सकता था (उदाहरण के लिए कुछ इस तथ्य की तरह कि कोई सामान्य इंटरफ़ेस नहीं है TryParse, इसलिए यदि आप कई प्रकारों के लिए एक स्ट्रिंग पार्स करना चाहते हैं, आपको हर प्रकार के लिए खुद को दोहराना होगा), JSON या WCF के बारे में एक उत्तर पूरी तरह से विषय से दूर है।
Why the question “give five things you hate about C#” is so difficult to answerक्योंकि यह एक सूची का सवाल है, और एक दुष्ट मॉड इसे "