2009-10-30 18 views
5

मैं पाइथन सीखना चाहता हूं लेकिन मैं पूरे दिन काम कर रहा हूं .Net एक सी # डेवलपर के रूप में, इसलिए मैंने आयरनपीथन और एकीकृत आयरनपीथन स्टूडियो को डाउनलोड और स्थापित करने का निर्णय लिया। मूल पायथन से कितना अलग या समान है? एक नेट डेवलपर के रूप में मैं पारंपरिक पाइथन लिपि को किसी भी समस्या के बिना नेट वातावरण में चलाने की उम्मीद कर सकता हूं या यह वही पुराना माइग्रेशन यूटोपिया है? मैं किसके बारे में उम्मीद कर सकता हूं?आयरनपीथन मूल पायथन तुलना करने के लिए। मैं पहले से क्या उम्मीद कर सकता हूं?

अग्रिम धन्यवाद।

संपादित करें: डीआईसी। 200 9 - आयरनपीथन को हाल ही में 2.6 में अपग्रेड कर दिया गया है। यदि संभव हो तो कृपया अपने उत्तरों को अपग्रेड करें।

उत्तर

3

आपकी स्थिति में आयरनपीथन का अध्ययन करना पूरी तरह से उचित है (विशेष रूप से this book आपको ऐसा करने में मदद करने में एक महान काम करता है!)। आपके पास अनिवार्य रूप से पाइथन 2.5 कार्यक्षमता तक पहुंच होगी (सुनिश्चित नहीं है कि जब आयरनपीथन पाइथन के 2.6 संस्करण में अपग्रेड करेगा, लेकिन 2.5 पहले से ही काफी उपयोग योग्य है), प्लस सभी नेट पुस्तकालयों और असेंबली जिन्हें आप जानते हैं और प्यार करते हैं, और विजुअल स्टूडियो ऐड-इन्स जैसे टूल।

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

एक अच्छी तरह से कोडित पायथन स्क्रिप्ट प्रश्न में कार्यान्वयन विवरण पर भरोसा नहीं करती है (यह कभी नहीं मानती कि जीसी तुरंत होता है, कभी नहीं मानता कि एक ऑपरेशन कुछ के अलावा थ्रेडिंग के तहत परमाणु है, जैसे कि क्यूई। क्यूयू के तरीकों, जो कि हैं स्पष्ट रूप से दस्तावेज होने के लिए), लेकिन निश्चित रूप से जंगली में बहुत सारी स्क्रिप्ट हैं जो मैला हैं। उदाहरण के लिए:

data = open('x.txt').read() 

इस फाइल वस्तु जब तक यह कचरा एकत्र की खुला छोड़ देता है; संदर्भ-गणना पर्यावरण में संग्रह तुरंत होता है (इसलिए फ़ाइल एएसएपी बंद हो जाती है), एक मार्क-एंड-स्वीप पर्यावरण में जो मामला नहीं है (इसलिए ऐसी संरचनाओं का उपयोग करने वाली प्रक्रिया अक्सर गलती से कुछ फाइलें रखती है, शायद कई फाइलें, सिस्टम संसाधनों को बर्बाद कर रहे हैं, सिस्टम संसाधनों को बर्बाद करने की तुलना में लंबे समय तक खुले तौर पर खुले हैं सी)।

तो, उचित अजगर कोडिंग के बजाय है:

# needed in 2.5, unneeded but innocuous in 2.6 
from __future__ import with_statement 

with open('x.txt') as f: data = f.read() 

जो हर कार्यान्वयन में फ़ाइल की गारंटी तत्काल बंद करता है (with बयान बहुत बहुत आसान है कि जिस तरह से ;-) है।

यह आपके पाइथन के सीखने को प्रभावित नहीं करता है, न ही यह ठीक से कोडित पायथन कोड का पुन: उपयोग करता है, लेकिन यदि आप ढलान-कोडित पायथन कोड का पुन: उपयोग करना चाहते हैं (विशेष रूप से लंबे समय से चलने वाले सर्वर, सेवा में, डेमॉन प्रक्रिया, & सी) आप भविष्य में कुछ कसने की जरूरत है। तो, बीटीडब्ल्यू, जो लोग नए और बेहतर सीपीथन संस्करणों का उपयोग करना चाहते हैं, जैसे अनलाडेन निगल & सी, एक बार उन संस्करणों में बेहतर कचरा संग्रहण तंत्र लागू होता है, जीआईएल से छुटकारा पाता है, और अन्य संवर्द्धन; उम्मीद है कि यह पहले से ही पाइथन समुदाय की "संस्कृति" को और अधिक सही, कम मैला कोडिंग की दिशा में बदल रहा है, लेकिन निश्चित रूप से पुरानी मैला कोड की रेखाओं के आस-पास है, इसलिए कुछ देखभाल की आवश्यकता है ;-)।

+0

डिक। 200 9: आयरनपीथन ने हाल ही में 2.6 तक अपग्रेड कर दिया है – backslash17

1

अधिकांश पायथन स्क्रिप्ट आयरनपीथन में पूरी तरह से अच्छी तरह से काम करती हैं।

नवीनतम रिलीज में list of packages and modules not included in IronPython है।

जब तक आपकी स्क्रिप्ट इन पर भरोसा नहीं करती है, तो यह संभवतः बिना किसी बदलाव के काम करेगी। हालांकि, आयरनपीथन की "शक्ति" वास्तव में पाइथन मानक पुस्तकालय के बजाय .NET फ्रेमवर्क कक्षाओं का उपयोग करने के लिए आपकी स्क्रिप्ट को माइग्रेट करके खेलती है।

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

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