हास्केल वेब विकास के लिए पारिस्थितिकी तंत्र क्या है? [बन्द है]


80

इस सवाल से प्रेरित और एक हालिया मामला , मैं सोच रहा हूं कि हास्केल वेब विकास के साथ क्या शामिल है।

  • क्या कोई हास्केल वेब फ्रेमवर्क या टेम्पलेट इंजन हैं?
  • हास्केल साइट के काम की मेजबानी कैसे करेंगे, क्या उपयुक्त वेब सर्वर हैं?
  • क्या हस्केल बहुत तेजी से विकास और प्रोटोटाइप आधारित वर्कफ़्लो के लिए बहुत जटिल है जो अक्सर वेब विकास में उपयोग किया जाता है?
  • क्या मौजूदा हास्केल वेब अनुप्रयोगों के उदाहरण हैं?

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

2
इसीलिए मैंने इसे अन्य प्रश्न से दूर कर दिया, जो मुख्य रूप से अन्य भाषाओं को सीखने के लिए सिफारिशों के साथ उत्तर दे रहा था। हास्केल के लिए पारिस्थितिकी तंत्र में इस सवाल का एक अलग ध्यान केंद्रित है, विशेष रूप से वेब-केंद्रित परियोजनाएं। : - /
deceze

7
मैं इस ओपन
सिस्कोपफोन

@ डिसेज़ मैंने आपके प्रश्न को थोड़ा पीछे कर दिया है। विशेष रूप से, मैंने शीर्षक को अन्य प्रश्न से अलग बनाया है।
टॉम लोखोरस्ट

@ धन्यवाद! आशा है कि यह इसे थोड़ा बेहतर बनाता है।
deceze

जवाबों:


18

सबसे पहले, एक अस्वीकरण: मैंने कभी भी हास्केल वेब विकास नहीं किया है, इसलिए मैं अनुभव से नहीं बोलता हूं।

यदि आप हैकेज पर वेब श्रेणी को देखते हैं, तो बहुत सारे वेब-संबंधित पैकेज हैं।

मुझे लगता है कि अधिकांश हास्केल वेब एप्लिकेशन एक कस्टम सर्वर पर चलते हैं (संभवतः अपाचे का उपयोग करते हुए mod_proxy या आईआईएस के उन्नत अनुरोध रूटिंग का एक सामने के छोर के रूप में)। हालाँकि, कुछ FastCGI बाइंडिंग भी हैं।

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

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

हास्केल में कई और वेब्सवर्कर्स / चौखटे हैं, लेकिन ये दोनों ही हैं जिन्हें मैं अपने सिर के शीर्ष के बारे में जानता हूं।


36

मैंने हास्केल में वास्तविक उत्पादन वेब अनुप्रयोग किए हैं। यहाँ वह स्टैक है जिसका मैंने उपयोग किया है:

  • PostgreSQL डेटाबेस बैकएंड
  • इससे जुड़ने के लिए HDBC पोस्टग्रैट्स
  • Html उत्पन्न करने के लिए XHTML । यह एक अजीब वाक्य रचना का एक सा है, लेकिन कम से कम आप लैम्ब्डा-अमूर्त है।
  • FastCGI को बैकएंड कनेक्ट करने के लिए lighttpd , वेब सेवा कर रही है।

संपूर्ण वेब अनुप्रयोग एक एकल हैस्केल कार्यक्रम है, जो देशी कोड ghc के लिए संकलित है। मैंने हाथ से अनुरोध मार्ग (और रिवर्स रूटिंग) करने के लिए कोड लिखा था।


14

मैंने हैप्पस्टैक का उपयोग हमारे स्थानीय इंट्रानेट के लिए एक सरल वेबैप / वेबसेवा बनाने के लिए किया है।

  • यह रिकवरी के लिए लेन-देन लॉग के साथ मेमोरी स्टोर करता है (हैप्पस्टैक के साथ मानक)। आपको कहीं भी कोड में SQL नहीं मिलेगा।
  • कोई टेम्पलेट नहीं। आमतौर पर कोई भी टेम्प्लेट के साथ क्या करता है, मैं जावास्क्रिप्ट में करता हूं। बस JSON प्रारूप में डेटा प्राप्त करें, और इसे DOM में डालें।

हास्केल कोड की सिर्फ 169 लाइनें हैं Main.hs, जो सर्वर को परिभाषित करती हैं। बाकी प्रस्तुति के लिए जावास्क्रिप्ट है, और परीक्षण के लिए कुछ पायथन है।

यह खुला स्रोत है, आप इसे GitHub पर देख सकते हैं , और शायद इसे शुरुआती बिंदु के रूप में उपयोग कर सकते हैं।


1
पंक्ति 82, आप एक समापन उद्धरण भूल जाते हैं।
रेयन डेस

10
हास्केल पहचानकर्ताओं में उद्धरण के लिए अनुमति देता है। दु: ख की बात है कि जीथुब का वाक्य विन्यास हाइलाइटिंग उस पर पड़ता है।
दोपहर

9
  • क्या कोई हास्केल वेब फ्रेमवर्क या टेम्पलेट इंजन हैं?

कई वेब फ्रेमवर्क हैं। वेब श्रेणी में देखें: http://hackage.haskell.org/packages/archive/pkg-list.html#coc.org/b

टेम्प्लेटिंग के लिए, HStringTemplate ब्रांड लीडर लगता है: http://hackage.haskell.org/package/HStringTemplate

  • हास्केल साइट के काम की मेजबानी कैसे करेंगे, क्या उपयुक्त वेब सर्वर हैं?

अपने स्वयं के वेब सर्वर (जैसे हैप्पीस्टैक-सर्वर या अन्य हास्केल वेब सर्वरों में से एक) को चलाने वाले सांख्यिकीय रूप से जुड़े बायनेरीज़, अपाचे से बात करते हुए हास्केल बायनेरिज़ ... बहुत ज्यादा हर संयोजन जिसे आप सोच सकते हैं।

  • क्या हस्केल बहुत तेजी से विकास और प्रोटोटाइप आधारित वर्कफ़्लो के लिए बहुत जटिल है जो अक्सर वेब विकास में उपयोग किया जाता है?

नहीं, और आपको मजबूत गारंटी मिलेगी कि ऐप टाइप सिस्टम के लिए दोषपूर्ण नहीं है।

  • क्या मौजूदा हास्केल वेब अनुप्रयोगों के उदाहरण हैं?

hpaste हैप्पीस्टैक के लिए एक सरल डेमो है। Tupil.com पूरा व्यवसाय हास्केल वेब ऐप है। ड्यूश बैंक ने अपने आंतरिक हास्केल वेब फ्रेमवर्क (हैप्पीस्टैक पर आधारित) पर पिछले साल सीयूएफपी में एक वार्ता दी।


वैसे, Tupil iPhone ऐप डेवलपमेंट (ऑब्जेक्टिव C) में भी बहुत कुछ करता है। वे सिर्फ हास्केल वेब ऐप नहीं करते हैं।
टॉम लोकहर्स्ट

7

सबसे पहले, लानत है कि "चक्कर" लिंक कभी मजेदार चीजों में से एक नहीं था!

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

यदि आप मुझे पसंद करते हैं, तो FastCgi शायद आपकी अधिकांश जरूरतों के लिए पर्याप्त है। ज्यादातर ग्राहक, मुझे लगता है, वास्तव में बड़े पैमाने पर मुद्दे नहीं हैं (और, इसके अलावा, रूबी लोगों के लिए यह काफी अच्छा है, सही है)।

अगर FastCgi आपकी गति नहीं है ... अच्छी तरह से, शायद yaws या लिफ्ट (एरलंग और स्काला, क्रमशः) एक नज़र के लायक हैं।


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