2011-02-23 4 views
15

यह एक व्यापक सवाल हो सकता है लेकिन यह ऐसा कुछ है जो मैं वास्तव में स्पष्ट और बहुत उत्सुक नहीं हूं।जेनिक्स ने सी # और .NET के डिजाइन को कैसे प्रभावित किया?

कुछ समस्याओं के लिए अक्सर बार मैं यह तर्क सुनता हूं कि जेनिक्स .NET 1.0 में उपलब्ध नहीं था। यही कारण है कि मुझे इन 2 बातें की या तो लगता है कि बनाता है:

  1. जेनेरिक्स पहले नहीं सोचा था, इसलिए डेवलपर्स नेट 1.0 के बाद यह के साथ आया था जो काफी और .NET सी # के डिजाइन को प्रभावित कर सकता है, लेकिन नहीं कर सका क्योंकि पहले से किए गए निर्णयों (पिछड़ा संगतता)।

  2. जेनिक्स की शुरुआत से ही हमेशा योजना बनाई गई थी, इसलिए .NET 1.0 के साथ इसे जारी करने से उत्पन्न होने वाली एकमात्र समस्या 2.0 तक इसका उपयोग करने में सक्षम नहीं थी। लेकिन इसके अलावा, कोई अनावश्यक विशेषताओं को पेश नहीं किया गया था या गलत, अपरिवर्तनीय निर्णय किए गए थे।

मैं ज्यादातर # 1 मानता हूं, लेकिन # 2 वास्तविक मामला है?

+9

यह स्कीट-मैन के लिए नौकरी की तरह दिखता है। –

+9

या एरिक लिपर्ट। –

+2

1.0 में जेनेरिक या टेम्पलेट्स नहीं थे। 1.1 बाहर आया क्योंकि वे उपयोगकर्ता परीक्षण के माध्यम से पाया कि 1.0 उपयोग करने के लिए भयानक था। 2.0 एक पुनर्लेख था और आज हम जो भी उपयोग करते हैं उसका आधार है। –

उत्तर

8

जेनेरिक्स एक लंबे समय के आसपास किया गया है और यह कर सकते हैं के बारे में एंडर्स हेल्स्बर्ग के साथ एक number of interviews किया है सी ++ टेम्पलेट्स की तुलना में कमजोर हो, हालांकि अवधारणा (और शायद अन्य भाषाओं में कार्यान्वयन) भी इससे पहले की भविष्यवाणी करता है।

नेट 1.0 प्लेटफॉर्म का पहला कट है इसलिए योजना उचित रूप से काम करने वाली चीज़ को शिप करना था। अगर किसी भी सभ्य वास्तुकार टीम पर था, तो जेनेरिक "नियोजित भविष्य" पर होना होगा, लेकिन ऐसा कुछ है जिसे बाद में जोड़ा जा सकता है। वास्तव में, .NET के लिए जेनेरिक लागू करने पर पेपर एक साल पहले निकला था। नेट फ्रेमवर्क 1.0 आरटीएम ने इवेंट्यूटेड किया था।

समयरेखा: (http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions)

2002-03-05 .Net Framework version: 1.0.3705.0 released 
~May, 2001 Don Syme's paper on "Design and implementation of generics for .NET" 

माइक्रोसॉफ्ट नेट फ्रेमवर्क 4.0 (के रूप में संस्करण 1.0), लेकिन इतना कोड और एक ही बार में इतनी सारी विशेषताओं बाहर के साथ, यह ले जाएगा के निर्माण के लिए 10 साल ले लिया है हो सकता है यदि परियोजना भी सफल हो सकती है तो सभी बग और उपयोगिता के मुद्दों को ढूंढने के लिए 5 साल।

तो आपके प्रश्न का उत्तर # 2 होगा।

Don Syme मुख्य रूप से सी # और नेट में जेनेरिक डिजाइन और कार्यान्वित किया गया।

संसाधन

विकिपीडिया से - -

एंडर्स हेल्स्बर्ग मेरा हीरो है, टर्बो पास्कल, डेल्फी के मुख्य वास्तुकार के मूल लेखक बाद में सी #

+0

तो एंडर्स 1.0 के लिए टीम पर नहीं थे? –

+1

@ जोन - वह था। लेकिन आप कुछ बनाने के लिए होल्डिंग और 10 साल लगकर क्रांतिकारी बदलाव नहीं कर सकते। _something_ बाहर जाने दें (जो कम से कम काम करता है) और इसे विकसित करें। – RichardTheKiwi

+0

एंडर्स एसओ पर भी होना चाहिए। –

2

Don Syme के वास्तुकार नेतृत्व, एफ # के डिजाइनर, .NET जेनरिक के लिए आंशिक रूप से जिम्मेदार था।

5

मुझे पूरा यकीन है कि जेनरिक शुरुआत से कल्पना की गई थीं। पूरी तरह से यह जानकर कि नौकरी काफी महत्वपूर्ण होगी। परियोजना का नेतृत्व डॉन सिमे (एफ # प्रसिद्धि के), उनके first publication द्वारा जनवरी 2001 के डिजाइन के बारे में किया गया था। सीएलआर को एमएसआईएल को पेपर दस्तावेज़ों के अतिरिक्त के रूप में प्रस्तुत किया गया है, हालांकि उस समय .NET 1.0 को अभी तक नहीं भेजा गया था । यह एक और साल लिया। सब कुछ और यह निष्कर्ष निकालना उचित है कि इसे ठोस शिपिंग सॉफ्टवेयर में एक साथ हथियाने के लिए उन्हें करीब 4 साल लग गए।

संबंधित मुद्दे