scala - स्कैला बनाम ग्रोवी बनाम क्लोजर




groovy clojure (4)

स्काला

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

इनमें से अधिकांश Pizza भाषा के साथ मार्टिन ओडर्स्की के पूर्व कार्य पर आधारित था। ओओ / एफपी एकीकरण केवल बंद होने से बहुत दूर है और इस भाषा को बाद में कार्यात्मक के रूप में वर्णित किया गया है।

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

ग्रूवी

ग्रोवी स्पष्ट रूप से जावा की दो सबसे बड़ी आलोचनाओं से निपटता है

  • गतिशील रूप से टाइप किया जा रहा है, जो बहुत सारे बॉयलरप्लेट को हटा देता है और
  • भाषा को बंद करना।

यह संभवत: जावा के निकटतम रूप से निकटतम है, क्लोजर और स्कैला प्रदान करने वाली कुछ समृद्ध कार्यात्मक संरचनाओं की पेशकश नहीं करता है, लेकिन फिर भी एक निश्चित विकासवादी सुधार प्रदान करता है - खासकर स्क्रिप्ट-सिले कार्यक्रम लिखने के लिए।

ग्रोवी के पास तीन भाषाओं का सबसे मजबूत वाणिज्यिक समर्थन है, ज्यादातर स्प्रिंगसोर्स के माध्यम से।

Clojure

क्लोजर LISP परिवार में एक कार्यात्मक भाषा है, यह भी गतिशील रूप से टाइप किया गया है।

एसटीएम समर्थन जैसी विशेषताएं इसे सर्वश्रेष्ठ आउट ऑफ़ द बॉक्स बॉक्स समेकन समर्थन प्रदान करती हैं, जबकि स्कैला को तीसरी पार्टी लाइब्रेरी की आवश्यकता होती है जैसे कि अक्का को डुप्लिकेट करना।

संवैधानिक रूप से, यह सामान्य जावा कोड से तीन भाषाओं का सबसे दूर भी है।

मुझे यह भी खुलासा करना है कि मैं स्कैला से सबसे ज्यादा परिचित हूं :)

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


उन्हें अलग-अलग किया जा सकता है कि वे कहां से आ रहे हैं या वे कौन से डेवलपर मुख्य रूप से लक्षित कर रहे हैं।

Groovy जावा के स्क्रिप्टिंग संस्करण की तरह थोड़ा सा है। बड़े आर्किटेक्चर द्वारा समर्थित चुस्त अनुप्रयोगों का निर्माण करते समय लंबे समय तक जावा प्रोग्रामर घर पर महसूस करते हैं। Grails पर ग्रोवी है, जैसा कि नाम रेल ढांचे के समान सुझाव देता है। उन लोगों के लिए जो हर समय जावा की वर्बोजिटी से परेशान नहीं होना चाहते हैं।

Scala एक ऑब्जेक्ट उन्मुख और कार्यात्मक प्रोग्रामिंग भाषा है और रूबी या पायथन प्रोग्रामर इस के करीब महसूस कर सकते हैं। यह इन प्रोग्रामिंग भाषाओं में पाया गया बहुत से अच्छे अच्छे विचारों को नियोजित करता है।

Clojure लिस्प प्रोग्रामिंग भाषा की एक बोली है, इसलिए लिस्प, स्कीम या हास्केल डेवलपर्स इस भाषा के साथ विकास करते समय घर पर महसूस कर सकते हैं।


मेरे पास क्लोजर के साथ खेलने का समय कभी नहीं था। लेकिन स्कैला बनाम ग्रोवी के लिए, यह जेम्स स्ट्रैचन - ग्रोवी निर्माता से शब्द है

"यद्यपि जावैक के दीर्घकालिक प्रतिस्थापन के लिए मेरी नोक हालांकि स्कैला है। मैं इससे बहुत प्रभावित हूं! मैं ईमानदारी से कह सकता हूं कि अगर किसी ने 2003 में मार्टिन ओडर्स्की, लेक्स स्पून और बिल वेनर्स द्वारा स्कैला पुस्तक में प्रोग्रामिंग दिखायी थी। शायद कभी ग्रोवी नहीं बनाया है। "

आप here पूरी कहानी पढ़ सकते हैं


मैं व्यावहारिक प्रोग्रामर पुस्तक "ग्रोवी व्यंजनों: जावा के पहियों को ग्रीनिंग" पढ़ रहा हूं, कॉपीराइट 2008 स्कॉट डेविस द्वारा और उसी वर्ष अप्रैल में मुद्रित।

यह थोड़ी देर पुरानी है लेकिन पुस्तक यह स्पष्ट करती है कि ग्रोवी सचमुच जावा का विस्तार है। मैं जावा कोड लिख सकता हूं जो जावा की तरह काम करता है और फ़ाइल * .groovy का नाम बदलता है और यह ठीक काम करता है। पुस्तक के मुताबिक, अगर मैं अपेक्षित पुस्तकालयों को शामिल करता हूं तो रिवर्स सत्य है। अब तक, प्रयोग इसे सहन करना प्रतीत होता है।





language-comparisons