उत्पादन के लिए हैस्केल भाषा विस्तार सीखने की आवश्यकता


10

हास्केल कोर भाषा वास्तव में सरल है। एक OO पृष्ठभूमि से आ रहा है, मुख्य कठिनाई शुद्ध कार्यात्मक प्रतिमान के लिए अनुकूल है।

"बेसिक" हास्केल सीखते हुए, मैंने हमेशा सीएस लोगों के लिए खिलौने के रूप में या भाषा के भविष्य के संस्करणों के लिए प्रयोगों के रूप में माना है (जैसे from future import ???कि अजगर)।

हालाँकि जब मैंने वेब फ्रेमवर्क जैसे यसोड को देखना शुरू किया, तो मैंने पाया कि बहुत सारी स्रोत फ़ाइलों के लिए 3 और 4 एक्सटेंशनों के बीच की आवश्यकता होती है। कुछ काफी सरल (StringOverload) लगते हैं। अन्य वास्तव में डराने वाले हैं (जीएडीटी, टाइप फैमिलिज़, टेम्पलेट हास्केल)। उनके प्रलेखन अनुसंधान पत्रों से जुड़ते हैं, जो किसी ऐसे व्यक्ति के लिए डरावना है जो एक नया पुस्तकालय "सिर्फ" सीखने की उम्मीद कर रहा है।

क्या Haskell में उत्पादक होने के लिए GHC भाषा एक्सटेंशन सीखना आवश्यक है? यदि आप एक प्रोडक्शन एप्लिकेशन के लिए हास्केल डेवलपर को किराए पर लेते हैं, तो क्या आप इस तरह के ज्ञान के लिए कहेंगे?


इन्हें भी देखें: stackoverflow.com/a/10849782/894284

जवाबों:


7

क्या Haskell में उत्पादक होने के लिए GHC भाषा एक्सटेंशन सीखना आवश्यक है?

हाँ। और यह किसी भी भाषा / उपकरण के लिए सही है। मूल / बुनियादी ज्ञान के साथ आप ऑनलाइन प्रतियोगिता की समस्याओं को हल कर सकते हैं, छोटे विश्वविद्यालय प्रोजेक्ट हो सकते हैं, लेकिन निश्चित रूप से वास्तविक विश्व अनुप्रयोग नहीं।

यदि आप एक उत्पादन अनुप्रयोग के लिए एक हैक्सेल विकासकर्ता को नियुक्त करने के लिए थे, तो क्या आप इस तरह के ज्ञान के लिए कहेंगे?

अब यह इस बात पर निर्भर करता है कि क्या आपके साथ कोई व्यक्ति है जो इस ज्ञान को साझा कर सकता है। यदि हाँ, तो वह व्यक्ति नए कर्मचारी को रैंप दे सकता है। यदि नहीं, तो आपको पहले ज्ञान के साथ ऐसे व्यक्ति को प्राप्त करना होगा। और फिर से नई तकनीकों के लिए यह सच है।

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


मैं विरोध करने जा रहा था, लेकिन फिर मैंने देखा कि रियल वर्ल्ड हास्केल कई भाषा विस्तार सिखाता है। आपके उत्तर के लिए धन्यवाद।
साइमन बर्गोट

2
"और यह किसी भी भाषा / उपकरण के लिए सच है" - यह पूरी तरह से गलत है। कहते हैं, जावा, सी #, सी ++ जैसी भाषाओं को लें - उनमें से कोई भी भाषा एक्सटेंशन नहीं है जो आमतौर पर वास्तविक दुनिया अनुप्रयोगों कोड में पाए जाते हैं। यदि आपको हर बार भाषा एक्सटेंशन का उपयोग करना पड़ता है, तो आपको "ऑनलाइन प्रतियोगिता समस्या समाधान" की तुलना में कुछ भी तुच्छ लिखने की आवश्यकता होती है, मेरी राय में, भाषा की कल्पना में कुछ गड़बड़ है।
मैल्कम

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

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

2
@ डवेदक यह वही समस्या है जिसके बारे में मैं बात कर रहा हूं: हर कोई जीएचसी का उपयोग करता है, क्योंकि यह अभी भी सक्रिय रूप से संकलित कंपाइलर है। अन्य संकलक नहीं रख सकते हैं, इसलिए कोई भी उनका उपयोग नहीं कर सकता है, और उनमें निवेश करने का बहुत कम कारण है। पुस्तकालयों के लिए: आप समस्या के लिए पुस्तकालयों को चुनते हैं और उनके साथ ही काम करते हैं। कहो, अगर आपको XML पढ़ने की आवश्यकता है, तो आपको बस एक XML-पढ़ने वाली लाइब्रेरी की आवश्यकता है। एक्सटेंशन के साथ, हालांकि, यह स्पष्ट नहीं है कि आपको कब क्या चाहिए। हालांकि पुस्तकालयों के साथ भी एक समस्या है। कहते हैं, जावा में सिर्फ सरणियाँ और संग्रह हैं, और हास्केल में सरणी पुस्तकालयों का भार है।
मैल्कम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.