2009-11-17 10 views
7

के लिए बहु सूत्रण/संगामिति कपोल-कल्पना मैं सिर्फ सोचा है कि, स्काला, एफ # या हास्केल, (के रूप में उपलब्ध C# या VB में) बुनियादी ढांचे के विपरीत नेट उच्च स्तर संगामिति पैटर्न के लिए बहुत कम देशी समर्थन के लिए लगता है ।उच्च स्तर नेट

बुनियादी उपलब्ध तंत्र रहे हैं - ताले, पर नज़र रखता है, थ्रेड पूल - लेकिन क्या

के बारे में
  • सिंक्रनाइज़ चर (MVar)
  • तुल्यकालिक चैनलों
  • अतुल्यकालिक चैनल (देखें जाएं या Haskell)
  • अभिनेता/संदेश पास (Erlang-Style)
  • वायदा
  • समानांतर संगणना/सूची Linq के माध्यम से
  • composable अतुल्यकालिक संगणना कार्य करता

या यहाँ तक कि सॉफ्टवेयर व्यवहार स्मृति (STM for Haskell)

और यहां तक ​​कि ParallelFX के कारण लिया (एफ # के async {}) की तरह, इस सूची में केवल आंशिक रूप से कवर किया जाता है ।

क्या ऐसी कार्यक्षमताओं को प्रदान करने के खिलाफ कुछ गहरे कारण हैं (और इसके बजाय लोगों को IAsyncResult के साथ गड़बड़ करना चाहते हैं) या क्या भविष्य में इसे एकीकृत करने की योजना बनाई गई है?

+0

आपकी सूची में बड़ी संख्या में कार्यात्मक ओवरलैप है। मुझे नहीं लगता कि मैं इसे एक ही वातावरण में भी चाहता हूं। –

+0

एक चीज़ के लिए, अपनी उदाहरण भाषाओं के विपरीत।नेट फ्रेमवर्क केवल ऑब्जेक्ट ओरिएंटेड प्रतिमान के साथ दिमाग में बनाया गया था, स्कैला बहु-प्रतिमान है, एफ # और हास्केल कार्यात्मक – SpaceghostAli

+4

@ स्पेसघोस्टएली - आप कैसे कह सकते हैं कि .NET केवल ऑब्जेक्ट उन्मुख प्रतिमान के लिए डिज़ाइन किया गया है, तुरंत यह कहकर एफ # (एक भाषा जो इस पर चलती है) कार्यात्मक है? साथ ही, क्या आप लिंक जैसे चीजों को भूल रहे हैं जो पूरी तरह से कार्यात्मक प्रोग्रामिंग की अनुमति देने के लिए डिज़ाइन किया गया है? –

उत्तर

6

सबसे अच्छे और सबसे प्रभावी अबास्ट्रक्शंस में सक्रिय और चल रहे शोध का उपयोग किया जा सकता है जिसका उपयोग कम्यूटिक बी/सी अधिकांश देव के मास्टर किए बिना समवर्ती सॉफ़्टवेयर को सक्षम करने के लिए किया जा सकता है या तो उस स्तर पर अपने कौशल को विकसित करने का समय या झुकाव नहीं है।

इस को देखते हुए, बीसीएल नई अवधारणाओं के लिए प्रवेश करने के लिए एक काफी उच्च बाधा है, लेकिन इसका मतलब यह नहीं है कि वे क्या हो रहा नहीं कर रहे हैं। हाल ही में, नेट 4 में, Task Parallel Library की शुरुआत होगी। TPL के पुराने संस्करण वास्तव में included a Future<T> type के बाद से newerabstractions एचएमएमडब्ल्यूवी कि।

वहाँ भी सक्रिय अनुसंधान अनुसंधान भाषा Axum के माध्यम से चैनल/आदि के क्षेत्र में चल रहा है।

मैं स्पष्ट रूप से टीम का हिस्सा नहीं हूँ और मैं माइक्रोसॉफ्ट के लिए काम नहीं है, लेकिन मेरी समझ क्या पहले से ही व्यापक रूप से उपलब्ध है परे इस क्षेत्र में कुछ नया करने की इच्छा नहीं है कि है।

+0

टीपीएल समांतरता के लिए है, समवर्ती नहीं। –

+0

यह सही है। एक्सम समवर्ती अनुसंधान था, और उस से जीतने की अवधारणाएं अब (स्पष्ट रूप से) .Net 4.5 में घुमाई जा रही हैं। –

2

मैं ग्रेग डी से सहमत हैं, वहाँ "सामान" आने वाले का एक बहुत है। नए .Net4 ढांचे और उनके एक्सम परियोजना के साथ एमएस। समस्या जो मैं उन सभी दृष्टिकोणों से देखता हूं वह यह है कि वे बेहद जटिल हो जाते हैं और वितरित/समांतर/वितरित कंप्यूटिंग के क्षेत्रों में कौशल, ज्ञान और अनुभव बल्कि "सीमित" है। मैं इसे किसी को अपमानित करने के लिए नहीं लिखता, लेकिन मुझे लगता है कि विश्वविद्यालयों और शिक्षकों को आम तौर पर इन विषयों पर अधिक ध्यान देना पड़ता है। लेकिन, मुझे क्या लगता है और आशा है कि मुख्यधारा जागरूकता है कि एमएस इन विचारों में से कई को लागू करने के साथ बनाता है, एक्सम, सीसीआर & डीएसएस, असिंक्रोनस एजेंट लाइब्रेरी इत्यादि और मल्टी-कोर/क्लाउड कंप्यूटर सिस्टम की सामान्य प्रवृत्ति/आवश्यकता जल्द ही देखेंगे :)

+0

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