पूर्ण प्रकटीकरण: मैं स्नैप के प्रमुख डेवलपर्स में से एक हूं।
सबसे पहले बात करते हैं कि Snap क्या है। अभी स्नैप टीम हैकैज पर पांच अलग-अलग प्रोजेक्ट्स का रखरखाव करती है: स्नैप-कोर, स्नैप-सर्वर, हेइस्ट, स्नैप और xmlhtml। स्नैप-सर्वर एक वेब सर्वर है जो स्नैप-कोर द्वारा परिभाषित एपीआई को उजागर करता है। heist एक अस्थायी प्रणाली है। xmlhtml एक XML / HTML पार्सिंग और रेंडरिंग लाइब्रेरी है जिसका उपयोग हीस्ट द्वारा किया जाता है। स्नैप एक छाता परियोजना है जो उन सभी को एक साथ जोड़ देती है और शक्तिशाली स्नैपलेट एपीआई प्रदान करती है जो वेब ऐप्स को रचना और मॉड्यूलर बनाती है।
Yesod के पास हैकेज पर परियोजनाओं का एक मेजबान है। उनमें से अधिकांश (सभी?) Yesod श्रेणी में सूचीबद्ध हैं । उल्लेखनीय लोगों में से कुछ Yesod- कोर, ताना, लगातार, और हैमलेट हैं।
हास्केल वेब विकास की वास्तविकता यह है कि यह किसी विशेष या पसंद की तुलना में कम माना जाता है। सामान्य तौर पर परियोजनाएं बहुत शिथिल युग्मित और काफी विनिमेय होती हैं। आप ताना (यसोद टीम के वेब सर्वर), हेइस्ट (स्नैप टीम के टेम्पलेट सिस्टम), और एसिड-स्टेट (हैप्पस्टैक प्रोजेक्ट की दृढ़ता प्रणाली) का उपयोग करके एक वेबसाइट का निर्माण कर सकते हैं। आप स्नैप-सर्वर का उपयोग हैमलेट या लगातार के साथ भी कर सकते हैं।
उस ने कहा, दोनों परियोजनाओं में निश्चित रूप से कुछ अंतर हैं। सबसे बड़ा अंतर जो मैं स्पष्ट रूप से बता सकता हूं कि यसोड परियोजनाएं आमतौर पर संक्षिप्त डीएसएल बनाने के लिए खाका हास्केल और क्वासिकोटिंग का भारी उपयोग करती हैं, जबकि स्नैप प्रोजेक्ट्स कंपैटिबिलिटी लाइब्रेरी का निर्माण करते हैं जो कंपोजिबिलिटी का पक्ष लेते हैं। बस किसी भी अन्य मतभेदों के बारे में मैं सोच सकता हूं कि यह स्नैप के प्रति पक्षपाती होगा। दोनों परियोजनाओं के नाम वाले छत्र पैकेज स्पष्ट रूप से उपर्युक्त घटकों के लिए विशिष्ट विकल्प बनाने जा रहे हैं, और ये विकल्प परियोजना निर्भरता में परिलक्षित होंगे। लेकिन इसका मतलब यह नहीं है कि आप कुछ अलग नहीं कर सकते और इसका इस्तेमाल भी कर सकते हैं।
स्नैप में सत्र और प्रमाणीकरण होता है , कई डेटाबेस में इंटरफेस होता है, और पाचन-फंक्शनलर्स का उपयोग करते हुए अच्छा फॉर्म हैंडलिंग ( यहां और यहां ) होता है, जिसमें मनमाने ढंग से गतिशील सूचियों के लिए पूर्वनिर्धारित समर्थन शामिल होता है। ये सिर्फ प्लगेबल स्नैपलेट्स के बढ़ते पारिस्थितिकी तंत्र में से कुछ हैं । सत्र और प्रमाणीकरण स्नैपलेट को एक तरह से लिखा जाता है जो बैक-एंड अज्ञेयवादी है। इसलिए गोंद कोड की एक छोटी मात्रा के साथ आप इसे किसी भी दृढ़ता प्रणाली के बारे में सोच सकते हैं जिसका आप उपयोग कर सकते हैं। भविष्य में, स्नैप इस नीति के साथ जितनी बार संभव हो सकेगा।
अधिकांश भाग के लिए मुझे लगता है कि स्नैप बनाम यसोद बनाम हैपस्टैक की पसंद कम सुविधाओं का मुद्दा है और व्यक्तिगत स्वाद का एक अधिक है। जब भी कोई कहता है कि फ्रेमवर्क में से कुछ ऐसा नहीं है जो किसी दूसरे के पास है, तो अधिकांश समय आवश्यक पैकेज को आयात करके अन्य फ्रेमवर्क से लापता कार्यक्षमता में खींचना बहुत आसान होगा।
संपादित करें: बड़े तीन हास्केल वेब फ्रेमवर्क की अधिक विस्तृत तुलना के लिए मेरी हालिया ब्लॉग पोस्ट देखें । कुछ व्यापक सामान्यीकरणों का उपयोग करके रफ़र (लेकिन संभवतः अधिक उपयोगी) की तुलना के लिए, मेरा हास्केल वेब फ्रेमवर्क तुलना मैट्रिक्स देखें