2010-08-22 16 views
5

वेब अनुप्रयोगों के लिए मैं रूबी पर रूबी का उपयोग करता हूं। और अब यह देखने का समय है कि क्या मैं रूबी के साथ डेस्कटॉप एप्लीकेशन कोड कर सकता हूं।MacRuby + IronRuby या JRuby?

तो मुझे आश्चर्य है कि मुझे कौन सा चयन करना चाहिए।

जिस तरह से मैं इसे देखता हूं वह मैक्रूबी + आयरन रूबी बनाम जेआरबी है।

पूर्व में मैक और विंडोज दोनों के लिए डेस्कटॉप एप्लिकेशन होने देता है जबकि बाद में दोनों में होना चाहिए, लेकिन केवल एक टूल सीखना है।

  • उत्तरार्द्ध से पहले का उपयोग करने के लिए मजबूत तर्क हैं?

  • क्या जेआरबी डेस्कटॉप अनुप्रयोग मैक्रूबी + आयरनरुबी डेस्कटॉप अनुप्रयोगों के रूप में देशी (या पर्याप्त-मूल-मूल) के रूप में होगा?

  • प्रत्येक समाधान के लिए पेशेवर और विपक्ष क्या हैं?

मैं बहुत नया डेस्कटॉप विकास भी करता हूं। अपने विचारों और अनुभव साझा करें!

उत्तर

3

मैकरुबी देशी ऐप्पल ऑब्जेक्टिव सी स्टैक का उपयोग करता है।
पेशेवर: इसकी कक्षा लाइब्रेरी मूल रूप से उद्देश्य सी जीयूआई कक्षाओं के लिए एक रैपर है। आप तेजी से देशी आवेदन मिलता है।
विपक्ष: केवल मैक्स पर चलता है। वे या तो आईपैड या आईफोन के लिए पोर्टेबल नहीं हैं (रूबी समाधान में से कोई भी नहीं हैं)।

IronRuby देशी विंडोज .NET ढांचे का उपयोग करता है।
पेशेवर: समृद्ध देशी अनुप्रयोग बनाने के लिए देशी WinForms का उपयोग करें। इसकी पुस्तकालयों के पूर्ण .NET पारिस्थितिक तंत्र तक पहुंच है।
विपक्ष: केवल विंडोज़ पर चलता है।

JRuby जावा एब्स्ट्रक्शन लेयर (JVM) का उपयोग करता है।
पेशेवर: एकाधिक जीयूआई पुस्तकालय उपलब्ध हैं। एसडीटी और स्विंग सबसे आम हैं। एसडब्ल्यूटी देशी विगेट्स का उपयोग करता है और तेज़ और अधिक देशी जैसा है। स्विंग पूरी तरह से जावा (नकली विजेट) है और अधिक पोर्टेबल है। एसडब्ल्यूटी और स्विंग को और अधिक रूबी दोस्ताना बनाने के लिए आगे की पुस्तकालय हैं। उदाहरण के लिए स्विंग के लिए Profligacy देखें।
विपक्ष: परत से ऊपर एक परत के ऊपर एक परत। स्विंग और एसडब्ल्यूटी बहुत परिपक्व हैं लेकिन उनके ऊपर रूबी परतें कम हैं।

वहाँ भी एक और विकल्प
रूबी क्यूटी पुस्तकालय के साथ है।
क्यूटी क्रॉस प्लेटफ़ॉर्म है, मूल विजेट का उपयोग करता है और C++ में लिखा गया है। यह काफी तेज़ है लेकिन पुस्तकालय जटिल और बड़ा है।

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

+2

मदद कर सकता है यह सच नहीं है कि IronRuby केवल विंडोज़ पर चलता है। यह हर जगह चलता है जहां एक आईएसओ-अनुपालन सीएलआई कार्यान्वयन उपलब्ध है, जो व्यावहारिक रूप से हर जगह है। बिल्ली, आईफोन के लिए एक सीएलआई कार्यान्वयन भी है! असल में, अगर मुझे सही याद है, तो इसके लिए एक विंडोज इंस्टालर * पहले * IronRuby * के लिए एक डेबियन पैकेज था। इसके अलावा, आईएआरवी आईफोन पर चलता है। ओह, और आप एक महत्वपूर्ण अंतर भूल गए: YARV, एमआरआई, रूबिनीस, आयरन रूबी और जेआरबी को जारी किया गया है, उत्पादन तैयार और मानक-अनुरूप, मैकरुबी उन चीजों में से कोई नहीं है AFAICT। –

+3

@ जोर्ग डब्ल्यू मिट्टाग: मैंने अपने उत्तर में गूढ़ समाधानों को स्पष्ट करने की कोशिश की क्योंकि वे अतिरिक्त परतों और प्रतिबंधों को पेश करते हैं। उदाहरण के लिए, विंडोज के बाहर IronRuby को सीएलआई कोड की व्याख्या करने के लिए मोनो की तरह कुछ चाहिए। आईफोन पर, समकक्ष मोनो टच वास्तव में देशी कोड में संकलित होता है, सीएलआई नहीं, और आप इसके साथ .NET GUI का उपयोग नहीं कर सकते हैं। आईफोन पर वाईएआरवी के लिए, मुझे इसका संदर्भ नहीं मिला। ऐप्पल आईफोन/आईपैड पर सिल्वरलाइट, फ्लैश, जेवीएम जैसे इंटरमीडिएट परतों की अनुमति नहीं देने के बारे में काफी सख्त रहा है। – Alkaline

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