क्या ऐसी चीजें हैं जो एलिक्जिर कर सकती हैं कि एर्लैंग नहीं कर सकती, या इसके विपरीत?


102

यह प्रश्न बीम वीएम और उन क्षमताओं के संदर्भ में है जो यह प्रदान करता है, न कि सामान्य संदर्भ में एक ट्यूरिंग पूरी भाषा क्या कर सकती है। मैं शुद्ध एर्लांग या अमृत सीखने के लिए कुछ समय का निवेश करना चाहता हूं। मुझे दोनों के बीच बुनियादी अंतर मिलते हैं और मैक्रोज़, बेहतर वाक्य रचना और इस दिन भाषा के तेज़ विकास के कारण मैं अमृत की ओर झुक रहा हूं।

मेरा सवाल है: अगर मैं अमृत चुनता हूं, तो क्या मैं उस चीज पर ठोकर खाऊंगा जो मैं इसमें नहीं कर सकता, लेकिन एर्लैंग में कर सकता हूं? क्या मैं अमृत के साथ सभी ओटीपी सामान, सभी एरलंग लाइब्रेरी, कोड रीलोड आदि का उपयोग कर सकता हूं?

मैं दोनों के बीच किसी की प्राथमिकता नहीं पूछ रहा हूं; भाषाओं की संभावनाओं के बारे में सिर्फ तथ्य। अधिमानतः किसी से जो उत्पादन में दोनों का इस्तेमाल किया।


19
@ जेडेहॉग एक राय नहीं, तथ्य। सवाल यह है कि "मेरा सवाल यह है कि अगर मैं एलिक्ज़िर चुनता हूँ, तो क्या मैं किसी ऐसी चीज़ पर ठोकर खाऊँगा जो मैं नहीं कर सकता, लेकिन एर्लैंग में कर सकता हूँ? क्या मैं एलीगिर के साथ सभी ओटीपी सामान, सभी एर्लांग लाइब्रेरी, कोड रीलोड इत्यादि का उपयोग कर सकता हूँ?" और जवाब तथ्यों पर आधारित है, राय नहीं।
सास akजक

4
उस प्रश्न के लिए, इसका उत्तर है: एर्लैंग में आप जो कुछ भी कर सकते हैं वह अमृत में संभव है। लेकिन शीर्षक बताता है कि सवाल यह है कि आपको क्या निवेश करना चाहिए और यहाँ उत्तर "यह निर्भर करता है" है। आप क्या करना चाहते हैं? वेब अनुप्रयोगों के लिए अमृत अधिक अच्छा है, क्योंकि यह इस समस्या को हल करने के लिए बनाया गया था। कुछ प्रकार की वितरित प्रणालियों के लिए आप एरलंग श्रेष्ठता की सरलता पा सकते हैं। सुविधाओं की कमी अक्सर अच्छी बात है। केवल एर्लैंग सीखने से आपको सबसे महत्वपूर्ण बिट पर ध्यान केंद्रित करने में मदद मिलेगी: ओटीपी।
tkowal

2
@ Saša questionijak मैंने सवाल का शीर्षक बदल दिया, IMO को बेहतर ढंग से प्रतिबिंबित किया कि यह किस बारे में है - यदि आप सहमत नहीं हैं तो वापस लौटें।
पावेल ओबर्क

2
@ PawełObrok महान संपादित करें, यह ठीक उसी तरह संक्षेप में प्रस्तुत करता है जो मुझे जानने में दिलचस्पी थी
Saāa'ijak

3
हर बार जब मैं इस तरह के सवाल करता हूं तो मुझे 10
डाउन डाउन

जवाबों:


37

बस प्रस्तावना करने के लिए - मैंने केवल उत्पादन में एलिक्सिर का उपयोग किया है न कि एर्लांग।

मैं ईमानदारी से अमृत की सिफारिश करूंगा। यह मेरी राय है और जरूरी नहीं कि आपके लिए सही हो, लेकिन नीचे मैं अपने कारणों की सूची दूंगा।

  1. उत्पादकता: मैं रूबी / रेल की पृष्ठभूमि से आता हूं, इसलिए अमृत वाक्य रचना और शैली कुछ ऐसी है जो मेरे लिए बहुत परिचित थी। मुख्य कारकों में से एक जो मुझे यह निर्धारित करने में मदद करता है कि कोई भाषा सीखना है या नहीं, मैं इसमें कितना उत्पादक हो सकता हूं - मुख्य रूप से मैंने रूबी को क्यों चुना। अमृत ​​समान है। मैं इसमें सिर्फ उतनी ही तेजी से काम कर सकता हूं जितना कि मैं कंसीलर और पैटर्न मैचिंग के सभी अतिरिक्त लाभों के साथ रूबी कर सकता हूं।
  2. एरलैंग: चूंकि एलिक्जिर एरांग के शीर्ष पर बना है और एर्ग्लंग और बीम वीएम के लिए नीचे संकलित है, इसलिए आपके पास हर एरांग मॉड्यूल और पैकेज तक पहुंच है। इसलिए यदि आप अमृत के उपयोग से चिंतित हैं और एरलांग की सभी विशेषताओं को याद कर रहे हैं, तो आपको ऐसा नहीं करना चाहिए। यहां तक ​​कि अमृत के पास सबसे बड़ी एर्लांग / ओटीपी सुविधाओं जैसे जेनरवर, जेनेयर आदि के अपने कार्यान्वयन हैं।
  3. समुदाय / संसाधन: अमृत समुदाय वास्तव में एक महान है। शुरुआती सवालों के कुछ जवाब पाने के लिए सुस्त चैनल वास्तव में लोकप्रिय और शानदार तरीका है। भाषा पर पहले से ही कुछ बहुत अच्छी किताबें लिखी गई हैं (प्रोग्रामिंग एलिक्सिर 1.2 - डेव थॉमस, रूबी पिकैक्स के लेखक) भी जो भाषा में आसान हो जाती हैं।

वास्तव में, यदि आपके पास दोनों के साथ गड़बड़ है, तो आप शायद एक ही निर्णय पर आएंगे कि एलिक्जिर एक अधिक अच्छी भाषा है, जिसमें एरलंग + मोर की सभी विशेषताएं हैं। यह वृद्धि के साथ-साथ है, मुझे सटीक संख्या याद नहीं है, लेकिन मुझे याद है कि हेक्स वेबसाइट (पैकेज मैनेजर) से पैकेज डाउनलोड में काफी वृद्धि हुई है।


14
एलिक्जिर ने एर्लैंग के लिए संकलन नहीं किया है, यह बीईएएम कोड के लिए संकलित है। अमृत ​​कॉफ़िशस्क्रिप्ट, एट के समान नहीं है। अल। वह सिर्फ JS लिखें।
पीटर आर

64

आपको किसी ऐसी चीज पर ठोकर नहीं खानी चाहिए जो आप एक में कर सकते हैं जो आप दूसरे में नहीं कर सकते हैं, क्योंकि आप स्वतंत्र रूप से एरलैंग से एलिक्सिर कोड कह सकते हैं और इसके विपरीत। तुम भी आसानी से एक परियोजना में Erlang और अमृत फ़ाइलों का मिश्रण कर सकते हैं।

अमृत ​​में:

:erlang_module.erlang_function(args)

एर्लांग में:

'Elixir.ElixirModule':elixir_function(args)

2
नेस्टेड निर्भरता या अन्य बहुत विशिष्ट मामलों के साथ रिलीज करते समय यह कभी-कभी थोड़ा मुश्किल हो सकता है लेकिन मुझे लगता है कि यह निश्चित रूप से सही उत्तर है। नोट : यदि बहुत ही संसाधन की कमी वाली मशीनों पर चल रहा है, तो अमृत और अमृत निर्भरता को एक रिलीज में जोड़ना स्मृति के मामले में भारी हो सकता है। इसलिए अगर मैं गलत नहीं हूं, तो कभी-कभी ऐसा हो सकता है कि शुद्ध एरांग से चिपके रहने से कुछ मेगाबाइट मेमोरी को बचाने का लाभ हो सकता है, जिससे VM को विस्तारित करने के लिए कोई जगह नहीं बचती है, तो क्रैश से बचने में आसानी होती है।
लैमर

37

टीएल; डीआर - अमृत ​​से शुरू करें

एरलैंग में एलिक्सिर की तुलना में एक स्टेटर लर्निंग कर्व है। एक बार जब आप अमृत सीखना शुरू करते हैं, तो आप स्वचालित रूप से एर्लैंग सीखना शुरू कर देंगे। इसलिए, अमृत से शुरुआत करें। एलिक्जिर एरलंग और एलिक्सिर में लिखा गया है। गितुब पर वितरण देखें (चूंकि अमृत मैक्रोस उर्फ ​​मेटा-प्रोग्रामिंग से भरा है)। अमृत ​​परियोजना कोड वितरण

आप एरलंग और इसके विपरीत के साथ अमृत का उपयोग कर सकते हैं, इसलिए पुस्तकालयों के 20+ वर्ष की पूर्ण एर्लैंग इको-सिस्टम।

एर्लांग सॉल्यूशंस से अधिक जानकारी

अमृत ​​की 'आउट ऑफ द बॉक्स' उत्पादकता डेटा हेरफेर की अभिव्यक्ति में टूलींग और सुविधा पर एक मजबूत ध्यान केंद्रित करके पूरी की जाती है। एलिक्सिर और एरलैंग में सिस्टम डिज़ाइन समान है, लेकिन एलिक्सिर बहुत सारे बॉयलरप्लेट कोड को हटा देता है और विस्तारित करना आसान होता है। बॉयलरप्लेट को हटाने से उत्पादकता में वृद्धि होती है और प्रोग्रामर को तेजी से प्रतिक्रिया प्राप्त करने की अनुमति मिलती है - जब आप जितनी जल्दी हो सके अपने उत्पाद को बाजार में लॉन्च करना चाहते हैं। कम बॉयलर भी खुश डेवलपर्स के लिए बनाता है, और खुश डेवलपर्स अनिश्चित रूप से उत्पादक डेवलपर्स हैं।

जो आर्मस्ट्रांग का (एर्लांग आविष्कारक का) ब्लॉग अमृत के बारे में पोस्ट

अमृत ​​के बारे में जानने के लिए यहां शुरू करें - शुरुआत करना

एक बार जब आप इसके ठीक होने का अनुभव करें, तो व्यायाम और अन्य संसाधनों पर अभ्यास करने की दिशा में अपना काम करें ।


3

कुछ चीजें हैं। मुझे लगता है कि आप एलिक्सिर में एक पुनरावर्ती एनॉन फ़ंक्शन नहीं कर सकते। अब निष्पक्ष होना कुछ ऐसा है कि 8+ साल के एर्लैंग में मुझे नहीं लगता कि मुझे कभी ऐसा करने की आवश्यकता है, और अगर मैंने किया तो इसे किसी अन्य तरीके से आसानी से किया जा सकता है। संभवत: ऐसी कुछ और चीजें हैं, जिन्हें आप पूरी ईमानदारी से अनदेखा कर सकते हैं।

सामान्य तौर पर, उन चीजों के लिए जो ज्यादातर लोग किसी भी चीज के बारे में परवाह करते हैं जिसे आप Do in Erlang में कर सकते हैं, आप Elixir में कर सकते हैं और इसके विपरीत। एलिक्ज़िर की तरफ समुदाय अधिक सक्रिय प्रतीत होता है इसलिए मैं वहां से शुरू करने का सुझाव दूंगा। मैं हाल ही में एरलैंग से एलिक्सिर गया हूं और कुछ फैंसी चीजों के अपवाद के साथ मैं कह सकता हूं कि यह एक बहुत आसान संक्रमण है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.