2009-10-01 16 views
5

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

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

उत्तर

4

यह "वेब सेवा" से आपका क्या मतलब है इस पर निर्भर करता है।

यदि आपका मतलब एक सामान्य वेब एप्लिकेशन/वेब साइट है, तो आपको डेटाबेस, एचटीएमएल पीढ़ी, आसान HTTP हैंडलिंग, सत्र और फॉर्म हैंडलिंग के लिए एक आसान इंटरफ़ेस की आवश्यकता होगी। इसके लिए आपको वास्तव में एक सभ्य वेब ढांचे की आवश्यकता है।

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

यदि आपका मतलब कुछ कम "वेबबी" है एक सेवा जो नक्शा डेटा लौटाती है, और उन सुविधाओं में से अधिकांश की आवश्यकता नहीं है, आप Hack या यहां तक ​​कि Network.CGI जैसे कुछ बुनियादी HTTP इंटरफ़ेस प्रदान करने के लिए, जिस पर आप अपनी सेवा का निर्माण करेंगे, CGI/FastCGI। यदि आपको गतिशील वेबसाइट की भी आवश्यकता है, तो आप केवल थोड़ी देर के लिए Django जैसे कुछ उपयोग कर सकते हैं।

आप हास्केल स्टैंडअलोन निष्पादन योग्य भी लिख सकते हैं जिन्हें Django कोड से बुलाया जाता है। लेकिन प्रत्यक्ष पायथन < -> हास्केल इंटरऑप संभव/व्यावहारिक होने की संभावना नहीं है।

+2

"पायथन <-> हास्केल इंटरऑप संभव/व्यावहारिक होने की संभावना नहीं है।" - यह निश्चित रूप से संभव है और व्यावहारिक है कि पास्कॉन को हास्केल से कॉल करें - और यदि आपको लाइब्रेरी की आवश्यकता हो तो उपयोगी। Ppgments के लिए hpaste2 बाध्यकारी देखें। –

+0

आपको यह आश्चर्यजनक लगेगा, लेकिन हर वेब एप्लिकेशन "एक फॉर्म भरें (और सत्यापन त्रुटि मैसेज दिखाएं) और परिणाम को SQL डेटाबेस में डाल दें"। – jrockway

+0

@ डॉन: मुझे लगता है कि मूल पोस्टर पाइथन से हास्केल को कॉल करने के बारे में बात कर रहा था। लेकिन मुझे किसी भी पायथन <-> हास्केल इंटरऑप से अवगत नहीं था, मैं सही खड़ा हूं :-) @ rrockway: सहमत - यही कारण है कि मैंने एक "सामान्य" वेब ऐप/साइट कहा। – spookylukey

1

पाइथन सीखें, आपको पता चलेगा कि इसमें कई कार्यात्मक विशेषताएं हैं। इसे चुनना और बहुत ही सुखद है।

Django के साथ अच्छा चयन।

+1

पायथन की गैर-कार्यात्मक विशेषताएं क्या हैं? निश्चित रूप से antigravity (http://xkcd.com/353) के अलावा। –

+1

@ डोमिनिक: ऑब्जेक्ट्स को म्यूट करने की क्षमता। चर को पुनर्निर्मित करने की क्षमता। लैम्ब्डा कार्यों के लिए सीमित समर्थन (यह एक बड़ा है)। रचनाओं को आंशिक रूप से लागू करने और आंशिक रूप से लागू करने के लिए समर्थन की कमी। – Chuck

3

यदि आप सिर्फ एक वेब सेवा बना रहे हैं तो आप वेब सेवा कॉल को संभालने के लिए हास्केल में सीजीआई या फास्टसीजी प्रोग्राम लिख सकते हैं।

+0

क्या यह एक तरीका है जो डीजेंगो या वैकल्पिक विकल्प के साथ काम करेगी? मुझे डीजेंगो के बाहर सीजीआई की कुछ समझ है, लेकिन वास्तव में अभी तक स्पष्ट नहीं है कि कैसे django/CGI एक साथ काम करते हैं। – jberryman

+0

@ जेबरीमैन: मुझे नहीं पता कि Django CGI के साथ कैसे काम करता है, लेकिन यदि आप सिर्फ एक वेब सेवा लिख ​​रहे हैं तो मुझे यकीन नहीं है कि Django नौकरी के लिए सही उपकरण है। जैसा कि स्पुकिलुकी कहते हैं, यदि आपका मतलब मानक वेब एप्लिकेशन है तो यह उस चीज़ से अलग है जो मैं बात कर रहा हूं। यदि आप केवल उन यूआरएल प्रदान करना चाहते हैं जो डेटा लौटाते हैं तो मुझे लगता है कि आपको Django का बिल्कुल उपयोग नहीं करना चाहिए। – Amok

1

एफ # के लिए जाएं और एनडीजेंगो देखें - जो एफ # में लिखा गया एक Django पोर्ट है। पूर्ण प्रकटीकरण: एनडीजेंगो मेरा प्रोजेक्ट है www.ndjango.com

+0

यह एक दिलचस्प प्रस्ताव है, लेकिन बहुत से लोग एमएस भाषाओं पर इतना गर्म नहीं हैं। – Chuck

0

यदि आप हास्केल को डेटाबेस से सीधे बात करना चाहते हैं तो आपको Django डेटाबेस माइग्रेशन स्क्रिप्ट को संशोधित करना होगा ताकि हस्सेल के पर्सिस्टेंट जैसी लाइब्रेरी का उपयोग करके हास्केल मॉडल कोड को भी हटा दिया जा सके।

संबंधित मुद्दे

 संबंधित मुद्दे