2011-04-30 22 views
11

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

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

+7

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

+4

आप देख सकते हैं [देबाशीष घोष के साथ साक्षात्कार] (http://www.infoq.com/interviews/ghosh-dsls)। यह आपके लिए सहायक हो सकता है। आप अपनी पुस्तक [डीएसएल इन एक्शन] में रुचि भी ले सकते हैं (http://www.manning.com/ghosh/)। – tenshi

+0

@ आसान धन्यवाद, यह काफी उपयोगी था – Nutel

उत्तर

5

मुझे स्कैला में डीएसएल के साथ अनुभव नहीं है, लेकिन मैं कह सकता हूं कि मेटा ऑब्जेक्ट प्रोटोकॉल के माध्यम से ग्रोवी की गतिशील प्रकृति इसे डीएसएल के लिए उपयुक्त बनाती है। ग्रोवी में डीएसएल की जांच करते समय मुझे उपयोगी होने के लिए this series मिला। आप शायद Martin Fowler's page पर एक नज़र डालना चाहते हैं, जिसमें विषय पर उनकी पुस्तक का एक लिंक शामिल है।

3

Groovy DSL goodness के बहुत सारे 1.8 में जोड़े गए थे।

ग्रोवी शुरू करने के लिए एक अच्छी जगह है।

ग्रैडल पर एक नज़र डालें। ग्रोवी और बिल्ड भाषा में लिखे गए एक बिल्ड टूल को एक डीएसएल है।

5

मैं स्कैला में परीक्षण के लिए डीएसएल पर काम कर रहा हूं। मुझे लगता है कि आप स्कैला (प्रकार रूपांतरण आदि) में अधिक व्याख्या कोड लिखना समाप्त कर देंगे, लेकिन एक बार आपके पास ऐसा कोई कारण नहीं है कि आपका डीएसएल कम या ज्यादा वर्बोज़ होना चाहिए। भुगतान यह है कि (आईडीई पकड़ने के बाद) आपके पास स्कैला डीएसएल में लिखने में मदद के लिए कोड पूरा हो जाएगा।

स्कैला पैटर्न मिलान भी व्याख्या कोड लिखने में एक बड़ी जीत है।

+1

वास्तव में, इस उत्तर के 18 महीने बाद एक यादृच्छिक डाउनवोट? डब्ल्यूटीएफ इस जगह पर चल रहा है? –

+0

और दूसरा। तो एक अच्छी जगह होती थी –

+0

आपने 'बाहरी '(' पार्सर संयोजक') पर 'आंतरिक' डीएसएल क्यों चुना? [जिज्ञासा से पूछना, असहमति नहीं] –

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