2010-02-05 13 views
6

मुझे इस बात की उत्सुकता है कि लोग जावा से .NET तक Lucene और Hibernate जैसे ओपन सोर्स प्रोजेक्ट कैसे पोर्ट करते हैं? क्या माइक्रोसॉफ्ट द्वारा जारी Java Language Conversion Assistant 2.0 का उपयोग करना एक साधारण बात है?आप ओपन सोर्स प्रोजेक्ट को कैसे पोर्ट करते हैं?

+1

यह समुदाय विकी में नहीं होना चाहिए? –

उत्तर

11

दुर्भाग्यवश, आमतौर पर बड़ी परियोजनाओं के लिए बहुत अधिक प्रयास शामिल होते हैं। एक भाषा में क्या कुशल है दूसरे में नहीं हो सकता है, और अधिक महत्वपूर्ण बात यह है कि एक भाषा में मौजूद है, दूसरे में नहीं हो सकता है। उदाहरण के लिए NHibernate ने वर्षों बंदरगाह पर ले लिया, और वे अभी भी कर रहे हैं (यद्यपि पूरे समय सुविधाओं को जोड़ने जैसे लिंक)।

आमतौर पर यह एक बात है कि कक्षाओं को एक-एक करके बैठना और संभवतः अनुकूलित करना, जहां आवश्यक हो, संरचनाओं को बदलना। जेनिक्स, उपनाम और मुक्केबाजी जैसी चीजें बंदरगाह में सभी बदलती हैं। फिर, इसे पूरा करने के बाद, अक्सर बहुत सारे ऑप्टिमाइज़ेशन किए जाने के बावजूद छोड़ दिया जाता है (बेशक यह वैकल्पिक है ...), शायद यह घटनाएं हो सकती है, शायद यह स्टेटिक्स और एक्सटेंशन विधियां हो सकती है, आपकी नई भाषा/प्लेटफ़ॉर्म ऑफ़र कुछ भी हो सकती है कि पुराना नहीं था।

इस तरह से सोचें, क्यों क्या आप इसे .NET पर पोर्ट कर रहे हैं? मैं यह कहने के लिए डर दूंगा कि आप दो परिस्थितियों में से एक हैं, एक काम के कारण नेट (नेट, क्षमा करें!) या जैसे नेट। क्योंकि यह आपको कुछ लाभ प्रदान करता है। दूसरी श्रेणी में इसका मतलब है कि आपने जावा पर चुना है, इसलिए पोर्टिंग में आप जो भी फीचर्स चुनते हैं उसका लाभ लेना चाहते हैं। पहले स्थान पर जाएं।

+0

@Nick आपके उत्तर के लिए धन्यवाद। खुशी से मैं जावा से .NET (या इसके विपरीत) से कुछ भी पोर्ट नहीं कर रहा हूं लेकिन यह हमेशा उत्सुक रहा है कि यह कैसे किया गया था। आपके उत्तर से क्या स्पष्ट है कि यह एक बड़ी अवधि के निवेश के साथ एक लंबी प्रक्रिया है और जो लोग एक भाषा से दूसरी भाषा में पोर्ट करते हैं, वे जो भी प्राप्त करते हैं उससे कहीं ज्यादा मान्यता प्राप्त करते हैं। – Kane

+0

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

4

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

मैं नोडा टाइम के विकास के बाद अनुशंसा करता हूं, जो जॉन स्कीट के जावा से पोर्ट को जोडा समय पोर्ट करने का प्रयास है। नेट। जॉन वास्तव में निम्नलिखित ब्लॉग पर अनुभव का दस्तावेजीकरण है:

http://noda-time.blogspot.com/

मैं ब्लॉग, इस परियोजना के लिए Google समूह पृष्ठ, और गूगल कोड परियोजना निम्नलिखित की सिफारिश करेंगे। Google समूह और कोड पेज लिंक ब्लॉग पर किसी एक पोस्ट पर पाए जा सकते हैं।

+0

+1। आप अपने शब्दों को सुसमाचार सत्य के रूप में ले सकते हैं। :) –

+0

सबसे अच्छे उदाहरणों में से एक, जॉन ढांचे के बारे में अधिक से अधिक जानता है और आप देख सकते हैं कि गंतव्य की सुविधाओं का लाभ उठाकर उचित पोर्ट कैसा दिखता है। +1 वालीड –

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