क्लोजर किसके लिए उपयोगी है? [बन्द है]


100

क्या असली दुनिया अनुप्रयोगों के लिए लोग Clojure का उपयोग कर रहे हैं?

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

मैं किसी भी तरह से एक ग्रूवी विशेषज्ञ या प्रशंसक नहीं हूं, लेकिन यह मुझे चौंकाता है कि इसमें एक बेहतर सपोर्ट फ्रेमवर्क, टूल्स और भाषा के बहुत सारे निर्माण (क्लोजर, फंक्शनल प्रोग्रामिंग) हैं। स्काला के लिए भी यही कहा जा सकता है।

क्या ऐसा हो सकता है कि इसका भविष्य ऐसी भाषा के रूप में हो जो अन्य प्रणालियों में सन्निहित है?


23
मुझे सैंडविच बनाने के अलावा सब कुछ।
गेहूं

12
@ विचार: क्या आपने कोशिश की है (sandwich me BLT)?
फ्रस्ट्रेटेडविथफॉर्म्सडिजेनर

3
आप "बड़े सिस्टम" के लिए भी क्लोजर का उपयोग क्यों नहीं करेंगे? ISTM कि, जावा की तुलना में कम क्रियाशील होने के कारण, आपके सिस्टम को क्लीजुर में इतना बड़ा होने की आवश्यकता नहीं होगी। :-)
केन

2
जवाबों को देखते हुए - मुझे लगता है कि लोग कुछ अच्छे सामान के लिए इसका इस्तेमाल कर रहे हैं। मुझे आश्चर्य है कि दीर्घकालिक विकास के सामान के लिए कितने उद्यम इसे चुनेंगे?
Fortyrunner

1
मुझे पता है कि यह एक लंबा समय रहा है, लेकिन यह एक कार्यात्मक भाषा में प्रोग्राम करने के लिए तेज दिमाग लेता है। तेज दिमाग महंगे होते हैं, इसलिए मैं एक व्यापारिक दृष्टिकोण से क्लोजर लिमिटेड की क्षमता के बारे में नहीं जानता - तब तक नहीं जब तक कि यह आज (पांच साल बाद) की तुलना में कहीं अधिक व्यापक न हो जाए।
सीन एलेड

जवाबों:


93

मैंने इसके लिए क्लोजर का उपयोग किया है:

  1. स्क्रैपिंग वेब पेज
  2. शैल लिपि
  3. वेबसाइटों का निर्माण
  4. OpenGL के साथ खेल रहा है
  5. Async वेबसर्वर लिखना
  6. HTML अस्थायी
  7. समानांतर कार्य चलाना (समानांतर में कई URL और प्रक्रिया प्राप्त करना)
  8. वास्तविक समय ऑडियो के साथ खेल रहा है
  9. सिमुलेशन

यह व्यावहारिक / मजेदार सामान है।

लेकिन क्लोजर में सैद्धांतिक रूप से बहुत गहराई है। विचार जो तेजी से और अधिक प्रासंगिक हो जाएंगे क्योंकि मुख्यधारा वास्तव में कार्यात्मक प्रोग्रामिंग की क्षमता को समझती है।

एक निजी राय, लेकिन क्लोजर फ़्लैट आउट उन सभी भाषाओं का सही ढंग से सॉफ़्टवेयर के आयोजन के लिए बेहतर भाषा निर्माण प्रदान करता है (बिना काम के प्रोग्रामर के अनुचित अनुभव के) जो मैंने इस प्रकार अब तक अकादमिक और व्यावसायिक रूप से उपयोग किए हैं - सी, सी ++, ऑब्जेक्टिव-सी, जावा जावास्क्रिप्ट, पायथन, रूबी

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


क्या आप डेविड नोल हैं? वह लड़का जिसने "क्लोजुरस्क्रिप्ट: लिस्प्स रिवेंज" पर बात की। कमाल की बात थी!
अमोघ तलपलीकर

1
//, आपका क्या मतलब है, "सॉफ्टवेयर को सही ढंग से व्यवस्थित करने के लिए बेहतर भाषा निर्माण प्रदान करता है"? उदा। Dev.clojure.org/display/community/Library+Coding+Standards ?
नाथन बासानी

2
आधुनिक हार्डवेयर स्टार्टअप समय पर @maSnun 1 सेकंड या उससे कम है। यह शेल स्क्रिप्ट के लिए ठीक है।
dnolen

1
@ जवाब देने के लिए समय निकालने के लिए धन्यवाद। मैं एक नया क्लोजर उत्साही हूं और यह 20 सेकंड की तरह लगता है जब मैं जेर फाइल को चलाने की कोशिश करता हूं जो मैं लेइन उबरर के साथ बनाता हूं। मैं ओएस एक्स, कोर आई 5 और 16 जीबी रैम के साथ मैकबुक पर हूं। क्या आप किसी विशेष अनुकूलन का उपयोग करते हैं?
14

5
@maSnun uberjars शेल स्क्रिप्ट के लिए नहीं हैं, वे आवेदन परिनियोजन के लिए हैं। अनुप्रयोगों का अनुकूलन एक जेवीएम सामान्य प्रश्न है, जो क्लोजर के लिए विशिष्ट नहीं है। आप क्लोज़र के साथ हैश बैंग स्क्रिप्ट को आसानी से किसी अन्य स्क्रिप्टिंग भाषा के रूप में लिख सकते हैं और यही मैं सुझाऊंगा।
dnolen


18

डेटा की बड़ी मात्रा को संसाधित करने के लिए क्लोजर का बड़े पैमाने पर उपयोग किया जा रहा है यह डेटा माइनिंग / कमर्शियल-एआई (यानी: रूना) और बड़े पैमाने पर भविष्यवाणियों (उर्फ वेदरबिल) के अनुकूल है। क्लॉजुर की संगोष्ठी कहानी वास्तव में इन डेटा भारी डोमेन में मदद करती है जहां समानांतर प्रसंस्करण केवल एकमात्र उत्तर है।


13

खैर, इसका जवाब देना एक मुश्किल सवाल है। आप क्या करना चाहते हैं? वहाँ एक पूरी बहुत कुछ नहीं है कि Clojure वास्तव में के लिए अनुकूल नहीं है। मेरा मतलब है, यह JVM स्टार्टअप समय (जब तक आप केक या कुछ इसी तरह का उपयोग नहीं कर रहे हैं ) की वजह से कमांड-लाइन स्क्रिप्ट में से एक के लिए बहुत अच्छा नहीं है , लेकिन यह किसी भी JVM भाषा के लिए कहा जा सकता है।

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

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

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

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


फिर भी मैंने खुद को सीएलआई क्लोजर स्क्रिप्ट्स लिखने के लिए पाया, सिर्फ इसलिए कि मुझे लिखने के लिए भाषा सुखद लगी और मेरे मामले में स्टार्टअप का समय बुरा नहीं लगा।
nha

7

आप कहीं भी आप Groovy या जावा का उपयोग करेंगे Clojure का उपयोग कर सकते हैं। आप ऐसा क्यों करना चाहते हो ? कुछ लोगों को लिस्प पसंद है। वे ग्रूवी पर क्लोजर का चयन करेंगे। कुछ लोग लिस्प को नापसंद करते हैं। वे ग्रूवी का चयन करेंगे।


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