2008-11-13 18 views
33

जब मैं ज्योथन या जर्बी का उपयोग कर सकता हूं तो मैं ग्रोवी का उपयोग क्यों करना चाहूंगा? क्या भाषा इस तथ्य के लिए कोई अंतर्निहित फायदे प्रदान करती है कि ज्योथन और जर्बी कौशल JVM के बाहर अपनी मूल भाषाओं पर लागू होते हैं?ज्योथन या जुर्बी पर ग्रोवी फायदे?

ध्यान रखें कि मैं जानबूझकर इस प्रश्न को सामान्य रखना चाहता हूं, लेकिन यदि किसी विशेष डोमेन में मौजूद कोई फायदे हैं, तो कृपया उनका वर्णन करने में संकोच न करें।

संपादित
, स्पष्ट करने के लिए अगर मैं JRuby में कुछ कोड लिखने, मैं अब, कुछ मामलों में, कि कोड JVM के बाहर स्थानांतरित कर सकते हैं, तो हो सकता है, या कम से कम मैं एक बेहतर समझ प्राप्त की है जरूरत रूबी का जबकि ग्रोवी कौशल केवल उस भाषा का उपयोग करते समय लागू होते हैं जो JVM के अंदर मौजूद है। ज्योथन और जुर्बी ने इसका लाभ उठाया है, ग्रोवी को इस नुकसान के लिए क्या करना है?

यदि ग्रोवी के पास आपके पास कोई लाभ नहीं है, और आप केवल ज्योथन या जुर्बी का उपयोग करने का सुझाव देंगे, तो मुझे बताएं।

संपादित सभी प्रश्नों के उत्तर के लिए 2
सभी को धन्यवाद, उनमें से ज्यादातर एक ही बिंदु बनाने के लिए, ग्रूवी जावा तो Jython या JRuby के साथ थोड़ा बेहतर एकीकृत करता है।

अप
का पालन करें Netbeans 6.5 मेरी आईडीई के रूप में मैं ने पाया है कि ग्रूवी बेहतर जावा परियोजनाओं के साथ तो एकीकृत करने के लिए JRuby का उपयोग करना। मुझे यकीन नहीं है कि एकीकरण की कमी जर्बी या नेटबीन की विफलता है। लेकिन इसे थोड़ा सा ग्रूवी के लिए उपयोग करने के बाद निश्चित रूप से एक पैर लग रहा है।

+3

इस लायक के लिए एक उत्तर पोस्ट नहीं है, लेकिन सबसे अधिक भाषाओं Jython/JRuby/ग्रूवी तरह डोमेन-agnostic-- हैं वे सब तुम क्या चाहते हो जाएगा और अधिक या कम से। बस उस व्यक्ति को चुनें जिसे आप सबसे अच्छे हैं :-) – SCdF

+3

या वैकल्पिक रूप से, सबसे अच्छे नाम वाला एक। – SCdF

+0

तो आप कह रहे हैं कि दूसरे दो में ग्रोवी का उपयोग करने का कोई फायदा नहीं है? –

उत्तर

36

मैंने रुबी और ग्रोवी में बहुत व्यापक विकास किया है (साथ ही साथ एक छोटे परीक्षण को लोड परीक्षण उपकरण के रूप में ग्राइंडर का उपयोग करके)।

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

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

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

यदि आपके पास रूबी या पायथन आधारभूत संरचना, या ऐसी टीम है जो उन तरह के वातावरण से परिचित है, तो मैं उन अन्य भाषाओं में से किसी एक को चुन सकता हूं।

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

1

मुझे केवल ज्योथन और ग्रोवी के साथ अनुभव हुआ है। इस समय, ज्योथन के साथ सबसे बड़ा नुकसान यह है कि उत्पादन (2.2.1) के लिए अनुशंसित नवीनतम रिलीज में एक फीचर सेट है जो "लगभग पाइथन-2.2" (Jython FAQ) से मेल खाता है। एक बीटा लागू करने वाला है जो मुझे लगता है कि पाइथन 2.5 है, जो अब पीछे एक संस्करण है। पता नहीं है कि जेआरबी के लिए भी यही कहा जा सकता है।

+0

हां ज्योथन सीपीथॉन की गति से आगे नहीं बढ़ रहा है, जो उम्मीद में भविष्य में सुधार कर सकता है क्योंकि सूर्य के पास अब पूर्णकालिक लोग काम कर रहे हैं। लेकिन फिर भी पाइथन 2.2 कौशल JVM के बाहर Jroovy के बाहर अधिक लागू होते हैं। –

+0

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

+2

जैथन ने आधिकारिक तौर पर 2.5 जारी किया है। आइए आशा करते हैं कि यह जेआरबीई जितना अच्छा होगा। –

0

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

3

मुझे लगता है कि डिक दीवार जावा पोस पॉडकास्ट पर इन तीन के बीच मतभेद (# 213, में के बारे में 34:20) का एक बहुत अच्छा सारांश ... "JRuby प्रोग्रामर खुश करने के लिए डिजाइन किया गया था दिया ... यह है एक प्रोग्रामिंग भाषा डेवलपर की पसंद; पाइथन की सादगी और शिक्षा में बहुत मजबूत जड़ें हैं; ग्रोवी का उद्देश्य जावा डेवलपर्स के लिए पसंद होने का लक्ष्य है ... यह जावा के लिए एक बहुत ही परिचित माहौल है ... एनोटेशन के लिए समर्थन के साथ "।

जेवीएम के बाहर की भाषा को स्थानांतरित करने के संदर्भ में, मुझे नहीं लगता कि जावा रनटाइम अधिकतर ओवरहेड लगाता है - यह एक साधारण इंस्टॉल है, और आपको कुछ पर्यावरण चर सेट करने की आवश्यकता है - लेकिन यह एक प्रदान करता है एक परिपक्व रनटाइम सहित लाभों की संख्या जिसे अत्यधिक अनुकूलित किया गया है, और पुस्तकालयों का एक बड़ा समूह है। जेआरबी टीम अब मूल एमआरआई की तुलना में बेहतर प्रदर्शन की रिपोर्ट कर रही है। http://blog.headius.com/2008/08/twas-brillig.html

13

मैं कहूंगा कि आपको जावा को जर्बी/ग्रोवी के साथ मिश्रित करने की आवश्यकता है, तो ग्रोवी के साथ जाएं। जैसा कि सभी ने कहा, ग्रोवी के पास जावा एकीकरण कठिन है।

लेकिन जहाँ तक भाषा कार्यान्वयन चला जाता है के रूप में, मैं ग्रूवी से अधिक रूबी भाषा पसंद करते हैं, भाषा घूमती ही चारों ओर, ग्रूवी में वहाँ कुछ हैक्स कि कार्यान्वयन में ही निहित हैं कर रहे हैं (सिर्फ एक Grails स्टैकट्रेस घड़ी बनाम एक रेल स्टैकट्रैस और आप देखेंगे कि मेरा क्या मतलब है)।

मैं अत्यधिक देखकर सलाह देते हैं नील फोर्ड के comparison of Groovy and JRuby

+1

लिंक के लिए धन्यवाद। यह दिलचस्प है, लेकिन मुझे लगता है कि स्लाइड के साथ भाषण नहीं होने के कारण मुझे एक महत्वपूर्ण घटक याद आ रहा है। –

+3

लिंक टूटा हुआ है। –

+2

पिछले सम्मेलनों की सूची: http://www.nealford.com/mypastconferences।एचटीएम आपको प्रस्तुतिकरणों के एक गीथब भंडार में ले जाता है: http://github.com/nealford/presentations और यह ग्रोवी बनाम जेआरबीई के पीडीएफ का सीधा लिंक है: http://github.com/nealford/presentations/raw/master /Comparing%20Groovy%20and%20JRuby%20(Neal%20Ford).pdf – atomicules