एक कार्यात्मक प्रोग्रामिंग भाषा चुनना [बंद]


48

मैंने हाल ही में कार्यात्मक प्रोग्रामिंग भाषाओं के बारे में बहुत सारे सूत्र पढ़े हैं (लगभग पिछले वर्ष, वास्तव में)। मैं वास्तव में एक चुनना चाहूंगा और इसे अच्छी तरह से सीखूंगा।

अंतिम [पाठ्यक्रम] सेमेस्टर, मुझे योजना के लिए पेश किया गया है। मैं इसे प्यार करता था। सिंटैक्स की चरम सादगी, समलैंगिकता सिद्धांत, मैक्रोज़ ( स्वच्छ और गैर-स्वच्छ), प्रक्रियाओं की एन-एरिटी आदि को पसंद किया।

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

कुछ अन्य कार्यात्मक भाषाओं के बारे में कुछ विचार जिन्हें मैंने अभी तक माना है:

  • क्लोजर: यह बहुत अच्छा लगता है क्योंकि यह जावा दुनिया तक पहुंच सकता है, यह स्केलेबिलिटी और कंसिस्टेंसी की ओर उन्मुख है, लेकिन अभी एक किनारे पर जावा दुनिया नहीं है? मैं पहले से ही जावा को अच्छी तरह से जानता हूं, लेकिन क्या जेवीएम के आधार पर और भी अधिक ऊर्जा जोड़ना बुद्धिमानी होगी?
  • हास्केल: एक बहुत ही प्रशंसित भाषा लगती है, लेकिन मैंने जो पढ़ा है, वह एक अकादमिक भाषा से भी अधिक है।
  • लिस्प: यह हमेशा से रहा है। ऐसा लगता है कि मुझे स्कीम से सबसे ज्यादा पसंद है। इसका एक बड़ा समुदाय है। मैं जो [सोचता हूं] जानता हूं, वह संभवत: उद्योग (?) में सबसे अधिक उपयोग की जाने वाली कार्यात्मक प्रोग्रामिंग भाषा है।
  • F #: वास्तव में इस पर विचार नहीं किया। मैं एमएस सामान का बहुत बड़ा प्रशंसक नहीं हूं। मेरे पास उनके सॉफ्टवेयर्स के लिए भुगतान करने के लिए पैसे नहीं हैं (मैं उन्हें विश्वविद्यालय गठबंधन से मुक्त कर सकता था, लेकिन मैं समुदाय-संचालित समाधानों के साथ जाने के लिए इच्छुक हूं)। हालांकि ... मुझे लगता है कि यह सबसे अच्छा कैरियर-उन्मुख विकल्प होगा।

आज रात, मैं लिस्प की ओर झुक रहा हूं। एक सप्ताह पहले, यह हास्केल था। इससे पहले वह क्लजुरे था। पिछले एक साल में, मैं मज़े के लिए कुछ स्कीम कर रहा था, न कि आपको जो कारण पता था, उसे आगे बढ़ा रहा हूँ। अब मैं गंभीर (एक सीखने के बारे में, इसके साथ वास्तविक परियोजनाओं को करने के बारे में, शायद अंततः पेशेवर इसके साथ काम करना चाहूंगा)। मेरी समस्या यह है कि मुझे किसी एक को चुनने में सक्षम होने से पहले उन्हें गहराई से सीखना होगा।


5
आप जो भी चुनते हैं, उसमें बहुत सी कोड का उपयोग करते हैं।

8
स्काला के बारे में एक विचार नहीं दिया ?
योकोम्बिनेटर

@ykombinator: मैंने इसके बारे में सुना है, लेकिन मैंने आगे नहीं खोजा है। मुझे नहीं पता कि यह मेरे द्वारा सूचीबद्ध लोगों पर पेश करने के लिए कुछ भी होगा, या शायद यह उनमें से प्रत्येक से दिलचस्प विकल्पों का संयोजन लाएगा ... मुझे नहीं पता। मेरे लिए यह काफी कम प्रोफ़ाइल भाषा की तरह लगता है, हालांकि यह लोकप्रियता में बढ़ रहा है।
जोनिस

1
मुझे नहीं पता कि आपने कहां सुना है कि जावा दुनिया "किनारे पर" है - यह वर्तमान में एक बड़े पुनर्जागरण के माध्यम से चल रहा है, बड़े पैमाने पर धन्यवाद) OpenJDK मानक कार्यान्वयन बी बन रहा है) स्काला और क्लीजुर और सी की तरह नई जेवीएम भाषाएँ: तथ्य यह है कि बड़े डेटा / क्लाउड प्रोजेक्ट्स जेवीएम को लक्ष्य प्लेटफॉर्म और डी) एंड्रॉइड के रूप में बढ़ा रहे हैं। 2012 की शुरुआत में, यह ..... पर जाने के लिए शायद सबसे रोमांचक मंच था .....
मायके

1
@ मिकेरा: सहमत। यह ओरेकल द्वारा सन माइक्रोसिस्टम्स के अधिग्रहण के बाद एक साल से अधिक पुराना है, और जावा के भविष्य को नियंत्रित करने वाले अधिक नियंत्रण निगम द्वारा समझौता किए जाने के बारे में चिंता करने और अटकलें लगा रहा था ... जेवीएम इस समय सौभाग्य से सुरक्षित लगता है!
जोआनिस

जवाबों:


35

चूँकि आप एक व्यावहारिक  भाषा चाहते हैं:

वैकल्पिक शब्द

ध्यान दें कि हास्केल और लिस्प का उपयोग उद्योग में दूसरों की तुलना में अधिक किया जाता है, हालांकि क्लोजर और एफ # में कुछ हालिया रुचि रही है।

लेकिन जब हम योजना को मिश्रण में जोड़ते हैं तो क्या होता है:

वैकल्पिक शब्द

हम्म, अब एक अकादमिक भाषा की तरह इतना नहीं दिखता है, यह करता है?

दरअसल, उपरोक्त ग्राफ शायद झूठ है; शब्द "स्कीम" प्रोग्रामिंग भाषाओं के अलावा अन्य संदर्भों में मदद चाहने वाले विज्ञापनों में दिखाई दे सकता है। :)

तो यहाँ एक और ग्राफ है जो शायद (थोड़ा) अधिक प्रतिनिधि है:

वैकल्पिक शब्द

यदि आप स्कीम की वास्तव में किक-असॉल्ट बोली का पता लगाना चाहते हैं, तो रैकेट पर एक नज़र डालें


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

@म। जोआनिस: नमक के एक दाने के साथ पिछले दो रेखांकन लें; सीढ़ी का नजारा और आखिरी ग्राफ की अस्थिरता से पता चलता है कि ग्राफ में बहुत सारे डेटा पॉइंट नहीं हैं, हालांकि यह इंगित करता है कि किसी को लगता है कि भाषाएं भुगतान करने के लायक हैं।
रॉबर्ट हार्वे

@ रोबर्ट हार्वे, दूसरे से तीसरे ग्राफ में क्या बदला?
सिस्टमोविच

@Geoffrey: कैप्शन देखें; मैंने खोज शब्दों में "डेवलपर" शब्द जोड़ा है।
रॉबर्ट हार्वे

ध्यान दें कि हास्केल और लिस्प भी समलैंगिक हैं और वास्तव में डेटा बाकी दुनिया के लिए सामान्य नहीं है। ITJobsWatch 79 स्कैला नौकरियों, 55 एफ #, 47 हास्केल, 30 लिस्प और 7 क्लोजर नौकरियों को सूचीबद्ध करती है।
जॉन हैरोप

17

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

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


मुझे लगता है कि आप पहले शुद्ध कार्यात्मक भाषा चुनने के बारे में सही हैं। मुझे पवित्रता के आधार पर कार्यात्मक भाषाओं के आदेश को देखने में बहुत दिलचस्पी होगी।
जोनिस

@म। जोआनिस: आपके प्रश्न में सूचीबद्ध भाषाओं में, मैं कहूंगा कि हास्केल सबसे शुद्ध है, इसके बाद क्लोजर, एफ # और लिस्प है।
लैरी कोलमैन

15

वास्तव में, यदि आप योजना में एक यथोचित जटिल प्रणाली को लागू करने में सक्षम थे, तो आप उन कंपनियों में काफी वांछनीय होंगे, जहाँ आप शायद काम करना चाहते हैं। इससे पहले अपने करियर में मैं कुछ ऐसे छात्रों के साथ भाग गया, जिन्होंने योजना में उचित मात्रा में काम किया था, और केवल एक बार यह नुकसान हुआ था जब वे अपने काम की व्याख्या करने में असमर्थ थे या वास्तव में बुनियादी डेटा को लागू करने के लिए इसे अच्छी तरह से समझ नहीं पाए थे उचित समय के भीतर संरचनाएं और एल्गोरिदम। मैं हमेशा उम्मीदवारों को उनकी पसंदीदा भाषा में ऐसे सवालों का जवाब देता हूं; मैंने कुछ ऐसे लोगों में भाग लिया, जिन्होंने सोचा था कि वे स्कीम में सबसे अच्छे थे, जो उन चीजों के साथ काफी संघर्ष करने में कामयाब रहे जो आसान होनी चाहिए, जैसे कि एक लिंक की गई सूची में एक तत्व जोड़ना, जिसने मुझे रहस्यमय बना दिया।

लेकिन अगर आप एक औसत वेब ऐप भी लिखने के लिए पर्याप्त रूप से "प्राप्त" करने में सक्षम थे, तो यह सबसे अच्छी सॉफ्टवेयर कंपनियों में बहुत अच्छा विक्रय बिंदु होगा।

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

कॉलेज व्यावहारिकता के बारे में नहीं है। यह पता लगाने और सीखने के लिए एक सुरक्षित वातावरण बनाने के बारे में है। यह वास्तव में उपयोगी है, भले ही आप अपने कैरियर के बाकी हिस्सों के लिए साधारण सॉफ्टवेयर लिखना समाप्त कर दें।

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

मैंने स्कीम, एफ #, इमैक लिस्प और कॉमन लिस्प में कुछ लिखा है और पिछले कुछ वर्षों में कम से कम कभी-कभार हास्केल पढ़ा है। मैं नहीं कह सकता कि मैं उनमें से किसी में एक विशेषज्ञ हूं, लेकिन उन भाषाओं में प्रत्येक भ्रमण ने मुझे उन सभी अन्य भाषाओं में लाभान्वित किया है जो मैं पेशेवर (सी #, जावा, रूबी, और कभी-कभी बू, पर्ल और पायथन) में काम करता हूं। जिज्ञासा आपको किसी और चीज की तुलना में एक अधिक स्थायी, कैरियर को पूरा करने का निर्माण करेगी।


2
"जिज्ञासा आपको और अधिक स्थायी बनाने, किसी भी चीज की तुलना में कैरियर को पूरा करने में मदद करेगी।" यह कथन बहुत ही प्रेरणादायक है। आप सही हे। मैं भी जल्दबाजी कर रहा हूं। मुझे हमेशा ऐसा लगता है कि यह सब सीखने में बहुत अधिक समय लेने वाला है ... अगर मैं 12 साल पहले जा सकता था, जब मैंने शुरू किया था, तो मुझे पता होगा कि मैं अपना सारा समय वीबी और सी ++ पर बर्बाद नहीं करूंगा। मुझे लगता है कि इन वर्षों में बहुत बुरी तरह से बर्बाद हो गए थे। मैं काफी उत्सुक नहीं था। मैं सामान कोड करना चाहता था। मैं जानता था कि भाषाओं का उपयोग करना पर्याप्त था। मैंने उस समय सोचा था कि मैं एक उचित राशि जान रहा था, लेकिन इतनी बुरी तरह से ऐसा बिल्कुल नहीं था।
जोनिस

10

मैं थोड़ी देर के लिए हास्केल में था, लेकिन मुझे जो निष्कर्ष मिला, वह थोड़ा बहुत अकादमिक था। कुछ भी व्यावहारिक करना बहुत कठिन था। एक शुद्ध कार्यात्मक भाषा में, IO जैसी चीजें केवल मॉडल में बिल्कुल फिट नहीं होती हैं, इसलिए आपको मोनाड्स से निपटना होगा। मैंने निर्धारित किया कि मुझे बस मुश्किल से सक्षम होने के लिए बहुत अधिक समय देना होगा, इसलिए मैं आगे बढ़ा।

मैंने कॉलेज में स्कीम की। तुच्छ लग सकता है, लेकिन सभी पराने वास्तव में विचलित / परेशान हैं। पायथन जैसी भाषाओं का उपयोग करने के बाद उस पर वापस जाना मुश्किल है।

हाल ही में मैं एफ # तलाश रहा हूं। यह कार्यात्मक है, लेकिन जब आप चाहते हैं तो यह अनिवार्य और वस्तु-उन्मुख भी हो सकता है। यह किसी भी .NET पुस्तकालयों का उपयोग करने में सक्षम होने के साथ-साथ आपके शुद्ध कार्यात्मक भागों को GUI, IO और नेटवर्किंग जैसी अधिक व्यावहारिक चीजों के साथ आसानी से मिलाना संभव बनाता है। आप F # का स्टैंडअलोन संस्करण प्राप्त कर सकते हैं।

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=effc5bc4-c3df-4172-ad1c-bc62935861c5&displaylang=en


तथ्य यह है कि एफ # और क्लोजर विशुद्ध रूप से कार्यात्मक नहीं हैं, उनके पक्ष में एक महत्वपूर्ण भूमिका निभाते हैं। हो सकता है कि F # किसी दिन .Net परिवार में मेरा प्रवेश बिंदु हो ...
Joanis

1
@MJoanis, आपने F # के खिलाफ एक बिंदु के रूप में लागत को बताया, लेकिन जैसा कि एरिक बताता है, आप इसे पूरी तरह से मुफ्त पा सकते हैं।
बेंजोल

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

1
@म। जोआनिस: नहीं, एफ # भी खुला स्रोत है और आप अन्य प्लेटफार्मों पर मोनो में चलाने की कोशिश कर सकते हैं।
जॉन हैरोप

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

9

मैंने व्यावहारिक, सामान्य प्रयोजन कार्यात्मक प्रोग्रामिंग भाषा के दृष्टिकोण से सभी प्रमुख कार्यात्मक भाषाओं का मूल्यांकन एक वर्ष या दो साल पहले किया।

मैंने क्लोजर को चुना , जो बाद में एक उत्कृष्ट विकल्प साबित हुआ।

मोटे तौर पर प्रमुख कारण थे:

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

  • मैक्रो-मेटाप्रोग्रामिंग - लिस्प का यह पहलू हमेशा मेरे लिए अपील करता है, खासकर जब से मैंने काफी कोड पीढ़ी का अनुमान लगाया था। मैंने पॉल ग्राहम के लघु निबंध " बीटिंग द एडवर्स " में किए गए तर्कों की बहुत सराहना की है । विभिन्न लिस्प्स सभी ने यहां जोरदार प्रदर्शन किया।

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

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

  • भाषा डिजाइन - क्लोजर आईएमओ एक बहुत अच्छी तरह से सोचा जाने वाला भाषा डिजाइन है। उदाहरण वेक्टर [] और मानचित्र {} नियमित लिस्प कोष्ठक के अलावा शाब्दिक हैं, अपरिवर्तनीय लगातार डेटा संरचनाओं का उपयोग करते हैं, अनुक्रम अमूर्त के माध्यम से भाषा में आलस्य का समर्थन करते हैं, और विभिन्न समस्याओं को हल करने के लिए विभिन्न प्रकार के रूढ़िवादी सुविधाओं के साथ प्रोग्रामर प्रदान करते हैं। । अमूर्त की कला देखें और सरल बनाया आसान

  • समुदाय - हमेशा व्यक्तिपरक, लेकिन मुझे जो पसंद आया वह मैंने क्लोजर समुदाय में देखा। दृष्टिकोण बहुत सहायक, रचनात्मक और व्यावहारिक था। जोर से "जोरदार चीजें प्राप्त करें" जोर दिया गया है, संभवतः इस तथ्य को दर्शाती है कि क्लोजर के बहुत सारे लोग (रिच हिके खुद सहित) जटिल उद्यम प्रणालियों के निर्माण की पृष्ठभूमि से आते हैं। तथ्य यह है कि क्लजुरे समुदाय के जावा समुदाय में मजबूत संबंध हैं और साथ ही मुझे यह समझाने में महत्वपूर्ण था कि क्लूजुर एक "आला" में फंसने का जोखिम नहीं उठाएगा।

अगर मुझे क्लोजर के कुछ छोटे डाउनसाइड्स का नाम देना होता, तो ये होते:

  • डायनामिक टाइपिंग - अक्सर यह उत्पादकता के मामले में एक फायदा है, लेकिन मुझे लगता है कि मैं इसे मजबूत प्रकार की जाँच और अनुमान के लिए व्यापार करूँगा। अधिकतर यह एक अच्छा स्वचालित परीक्षण सूट होने से कम हो जाता है, लेकिन यदि आप संकलक द्वारा वैधानिक रूप से मान्य अपने प्रकार को पसंद करते हैं तो हास्केल या स्काला आपके कप चाय के अधिक हो सकते हैं।

  • अत्याधुनिक - क्लोजर बहुत तेजी से विकसित हो रहा है और बहुत सारे नवाचार चल रहे हैं - इसका नकारात्मक पक्ष यह है कि बहुत सारे प्रयोग हैं, कुछ पुस्तकालय और उपकरण अभी भी अपरिपक्व हैं, और क्लोजर प्रमुख उत्पादों के बीच कभी-कभी टूटने वाले परिवर्तन होते हैं जो आप नजर रखने की जरूरत है।

कुल मिलाकर, मुझे नहीं लगता कि अगर आप एक उत्कृष्ट और व्यावहारिक आधुनिक कार्यात्मक भाषा चाहते हैं, तो आप क्लोजर के साथ गलत हो सकते हैं!


1
धन्यवाद! महान पद! मैं बस इन दिनों, एक कंपनी के आंतरिक प्रोजेक्ट के लिए इसका उपयोग करने पर विचार कर रहा था, जो कि पेड़ों और पुनरावृत्ति पर आधारित होगा। इसके अलावा हमारे यहाँ जावा कोड काफी है कि हम क्लूजुर के साथ फिर से उपयोग कर सकते हैं।
जोनिस

6

ऐसा लगता है कि आपने अपना होमवर्क कर लिया है, इसलिए आप शायद यह पहले से ही जानते हैं, लेकिन स्कीम लिस्प की एक बोली है जैसे कॉमन लिस्प है। यदि आप स्कीम के बारे में बहुत सारी चीजें पसंद करते हैं, लेकिन इसकी शैक्षणिक प्रकृति पसंद नहीं करते हैं, तो कॉमन लिस्प की कोशिश करें। TIOBE इंडेक्स के अनुसार , यह 26 वें स्थान पर 13 वीं सबसे लोकप्रिय भाषा बनाम स्कीम है।

आपके द्वारा हाल ही में देखे गए नौकरी विवरणों में आपके द्वारा उल्लिखित भाषाओं में से कुछ, हालांकि वह मेरा छोटा सा नमूना सेट हो सकता है। मैं व्यक्तिगत रूप से हास्केल सीख रहा हूँ, भले ही मुझे उस भाषा का सीधे अपने काम में उपयोग करने की उम्मीद न हो। कार्यात्मक प्रोग्रामिंग की अवधारणाएं मेरे लिए भाषा के प्रत्यक्ष विपणन की तुलना में भविष्य के कार्यक्रम के डिजाइन के लिए अधिक मूल्यवान हैं।


TIOBE लिंक के लिए धन्यवाद, एक दिलचस्प संदर्भ है। मुझे लगता है कि आप कार्यात्मक प्रोग्रामिंग की अवधि में इसकी शुद्धता के लिए हास्केल चुन रहे हैं?
जोनिस

1
@ M.Joanis: बहुत ज्यादा, हालांकि मैं बाद में लिस्प को भी लेने की सोच रहा हूं। प्रोग्रामर
Zeke

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