2012-09-17 25 views
12

हाल ही में, मैं कार्यात्मक प्रोग्रामिंग पर गहराई से खोज कर रहा हूं। और इसके द्वारा मुझे एर्लांग और इसके समवर्ती मॉडल के बारे में काफी कुछ पता चला।एरलांग कंसुरेंसी मॉडल बनाम स्कैला बनाम गो

आश्चर्यजनक रूप से (मेरे लिए कम से कम) मैंने पाया कि यह (एरलांग) फेसबुक के चैट चैनल जैसे व्हाट्स ऐप मैसेंजर के पीछे के अंत में कई प्रसिद्ध कोर-ऐप्स के मूल में उपयोग किया जाता है और फिर भी कॉल ऑफ ड्यूटी के कोर-ऑनलाइन सर्वर। मैं भी कुछ मंचों में पढ़ने के लिए है कि वितरण प्रणाली है कि वेब अनुरोध में भाग लेने के लिए, Erlang भी Node.js या JVM की तुलना में अधिक स्केलेबल है (यकीन नहीं करता है, तो उस जानकारी सटीक है)

  • क्यों हम क्या ज़रूरत है मिल गया उदाहरण के लिए, ट्विटर RoR से Scala में माइग्रेट कर रहा है? भले ही स्कैला का कार्यात्मक प्रतिमान के साथ उपयोग किया जाना है, फिर भी एरलांग बेहतर नहीं होगा?

  • एक और महान मामला जिसे मैं समझ नहीं सकता Google है। यह अच्छी तरह से जाना जाता है (Google I/O 2011 में जाने की प्रस्तुतियों द्वारा) कि कोर एप्लिकेशन या तो सी ++ या जावा पर बनाए जाते हैं। तो अगर एरलांग भूमिका निभा सकता है तो उन्हें गो (गोलांग) क्यों बनाना होगा?

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

एरलांग की ताकत क्या होगी जो इसे लेने के लिए और इसे सीखने में इतना समय निवेश करेगी?

बहुत बहुत धन्यवाद।

+1

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

उत्तर

5

एरलांग हर समस्या के अनुरूप नहीं है। आपके उदाहरण दिखाते हैं कि यह ज्यादातर नेटवर्क (वितरित) नेटवर्क अनुप्रयोगों के लिए उपयोग किया जाता है। लेकिन जावा और स्कैला के पास बहुत व्यापक ऑपरेशन उपयोग है। आप डेस्कटॉप एप्लिकेशन, गेम्स और कई अन्य बना सकते हैं। जाओ प्रोग्रामिंग भाषा स्कैला से अलग है क्योंकि यह आपको अनिवार्य प्रोग्रामिंग की अनुमति देता है, कुछ एरलांग के साथ असंभव है।

एरलांग की मुख्य "समस्या" यह कार्यात्मक भाषा है। बहुत से लोग अनिवार्य सी आधारित प्रोग्रामिंग भाषाओं के लिए चिपके हुए हैं, एरलांग जैसी भाषा का उपयोग एक पूरी नई भाषा सीखना है।

यदि आपकी समस्या पूरी तरह से erlang डोमेन फिट बैठती है, तो यह सबसे अच्छा विकल्प है। लेकिन यह जावा या स्कैला जैसी भाषा नहीं है जो कई और समस्याओं के लिए उपयुक्त है।

+7

स्कैला आपको अनिवार्य प्रोग्रामिंग की भी अनुमति देता है। – xiefei