[Haskell] एक सर्वर के लिए हास्केल?


Answers

मेरे पास हास्केल या न ही एरलांग में अनुभव नहीं है, लेकिन सतह पर वे समान दिखते हैं

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

हास्केल की तरह, एर्लंग प्रक्रियाओं के बीच राज्य को साझा नहीं करती है, इसलिए बहु-प्रक्रिया सॉफ़्टवेयर लिखना आसान है। लेकिन हास्केल और एर्लंग के बीच की प्रोग्रामिंग शैली थोड़ी अलग है, क्योंकि एर्लंग समवर्ती प्रसंस्करण के लिए छोटी प्रक्रियाओं के उपयोग पर जोर देती है।

मुझे हास्सेल से प्यार है - यह मेरी पसंदीदा भाषाओं में से एक है - लेकिन अगर मैं सर्वर सॉफ्टवेयर लिखने जा रहा था, तो मैं शायद इर्लैंग का उपयोग करूँगा लेकिन हास्केल में एक सर्वर को लिखना निश्चित रूप से संभव है, अगर आप बेहतर जानते हैं या लाइब्रेरी समर्थन को श्रेष्ठ बनाते हैं

Question

एक गेम सर्वर बनाने के संबंध में, ऐसा लगता है कि एर्लंग हमेशा एक ऐसी भाषा के रूप में आती है जो "इस प्रकार की चीज़ के लिए बनाया गया है" इसकी स्केलेबिलिटी और संगामिति की विशेषताएं हैं मेरे पास हास्केल या न ही एरलांग में अनुभव नहीं है, लेकिन सतह पर वे समान दिखते हैं हास्केल के दस्तावेज़ों को देखते हुए ऐसा लगता है कि इसमें बहुप्रोसेसर स्केलेबिलिटी और संगामिति के लिए समर्थन है, और हास्केल को एक और अधिक ठोस भाषा कहा जाता है और एक बेहतर रूप से बेहतर समुदाय है मेरा प्रश्न यह है कि, हास्केल को सर्वर बिल्डिंग के समाधान के रूप में अच्छा माना जाता है क्योंकि एर्लंग माना जाता है?







मुझे यकीन है कि आप ऐसे लोगों को ढूंढ सकते हैं जो ऐसा सोचते हैं, लेकिन मुझे लगता है कि आप इस प्रकार के उपयोग के समर्थन के लिए एर्लंग की क्षमता के बारे में गलत हैं; यह टेलीफ़ोनी अनुप्रयोगों में व्यापक रूप से उपयोग किया जाता है, और वास्तव में बहुत मजबूत है एर्लंग बहुत विश्वसनीय, उच्च संगामिति सर्वरों के लिए अनुकूलित है




आलस्य के कारण आपके हास्केल आवेदन में मेमोरी लीक पेश करना बहुत आसान है। लंबे समय से चलने वाले सर्वर ठीक उसी प्रकार के प्रोग्राम होते हैं जहां आप वास्तव में कोई मेमोरी लीक नहीं करना चाहते हैं

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

मुझे नहीं लगता कि हास्केल के बराबर है, कहते हैं, मनेशिया, और लिखना मुश्किल होगा। आप gen_server , gen_event , आदि के हास्केल संस्करणों को लिख सकते हैं लेकिन वे एक दशक से अधिक के लिए अनुकूलित और ट्यून नहीं किए जा सकेंगे।