आयरनपायथन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 20: Line 20:
| लाइसेंस = अपाचे लाइसेंस 2.0
| लाइसेंस = अपाचे लाइसेंस 2.0
}}
}}
आयरनपाइथन .NET फ्रेमवर्क और मोनो (सॉफ्टवेयर) को लक्षित करने वाले पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन है। [[जिम ह्यूगुनिन]] ने परियोजना बनाई और संस्करण 1.0 तक सक्रिय रूप से योगदान दिया, जो 5 सितंबर, 2006 को जारी किया गया था।<ref>{{cite web
आयरनपाइथन .नेट रूपरेखा और मोनो (सॉफ्टवेयर) को लक्षित करने वाले पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन है। [[जिम ह्यूगुनिन]] ने परियोजना बनाई और संस्करण 1.0 तक सक्रिय रूप से योगदान दिया, जो 5 सितंबर, 2006 को जारी किया गया था।<ref>{{cite web
  | url = http://blogs.msdn.com/hugunin/archive/2006/09/05/741605.aspx
  | url = http://blogs.msdn.com/hugunin/archive/2006/09/05/741605.aspx
  | title = Jim Hugunin's blog: IronPython 1.0 released today!
  | title = Jim Hugunin's blog: IronPython 1.0 released today!
Line 40: Line 40:
}}</ref> परियोजना वर्तमान में गिटहब में स्वयंसेवकों के एक समूह द्वारा रखी गई है। यह फ्री और ओपन-सोर्स सॉफ्टवेयर है, और [[विजुअल स्टूडियो]] के लिए पायथन टूल्स के साथ प्रयुक्त किया जा सकता है, जो माइक्रोसॉफ्ट के विजुअल स्टूडियो आईडीई के लिए एक फ्री और ओपन-सोर्स एक्सटेंशन है।<ref>{{cite web|title=IronPython.net|url=http://www.ironpython.net|access-date=2013-07-03}}</ref><ref>{{cite web|title=Python Tools for Visual Studio- Home|url=http://pytools.codeplex.com/|work=Python Tools for Visual Studio|access-date=2013-07-03|archive-date=2018-01-26|archive-url=https://web.archive.org/web/20180126035502/http://pytools.codeplex.com/|url-status=dead}}</ref>
}}</ref> परियोजना वर्तमान में गिटहब में स्वयंसेवकों के एक समूह द्वारा रखी गई है। यह फ्री और ओपन-सोर्स सॉफ्टवेयर है, और [[विजुअल स्टूडियो]] के लिए पायथन टूल्स के साथ प्रयुक्त किया जा सकता है, जो माइक्रोसॉफ्ट के विजुअल स्टूडियो आईडीई के लिए एक फ्री और ओपन-सोर्स एक्सटेंशन है।<ref>{{cite web|title=IronPython.net|url=http://www.ironpython.net|access-date=2013-07-03}}</ref><ref>{{cite web|title=Python Tools for Visual Studio- Home|url=http://pytools.codeplex.com/|work=Python Tools for Visual Studio|access-date=2013-07-03|archive-date=2018-01-26|archive-url=https://web.archive.org/web/20180126035502/http://pytools.codeplex.com/|url-status=dead}}</ref>


आयरनपाइथन पूरी तरह से सी शार्प (प्रोग्रामिंग लैंग्वेज)|C# में लिखा गया है, चुकी इसका कुछ कोड पाइथन में लिखे गए [[स्रोत कोड पीढ़ी]] द्वारा स्वचालित रूप से उत्पन्न होता है।
आयरनपाइथन पूरी तरह से सी शार्प (प्रोग्रामिंग लैंग्वेज)'''|C#''' में लिखा गया है, चुकी इसका कुछ कोड पाइथन में लिखे गए [[स्रोत कोड पीढ़ी]] द्वारा स्वचालित रूप से उत्पन्न होता है।


आयरनपाइथन को [[गतिशील भाषा रनटाइम]] (डीएलआर) के शीर्ष पर प्रयुक्त किया गया है, जो सामान्य भाषा इन्फ्रास्ट्रक्चर के शीर्ष पर चलने वाली एक लाइब्रेरी है जो डायनेमिक टाइपिंग और डायनामिक मेथड डिस्पैच प्रदान करती है, अन्य बातों के अतिरिक्त, डायनेमिक भाषाओं के लिए।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/dd233052.aspx|title=Dynamic Language Runtime Overview|publisher=[[Microsoft]]|access-date=2014-04-01}}</ref> डीएलआर .NET फ्रेमवर्क 4.0 का भाग है और 2009 से संस्करण 2.4 के बाद से मोनो का भी भाग है।<ref>{{Cite web|url=https://github.com/mono/mono/commit/340222ffe8b958cd22d9eb0388488f326845b363|title = 2009-07-02 Marek Safar · mono/Mono@340222f|website = [[GitHub]]}}</ref> डीएलआर का उपयोग पुराने सीएलआई कार्यान्वयनों पर पुस्तकालय के रूप में भी किया जा सकता है।
आयरनपाइथन को [[गतिशील भाषा रनटाइम]] (डीएलआर) के शीर्ष पर प्रयुक्त किया गया है, जो सामान्य भाषा इन्फ्रास्ट्रक्चर के शीर्ष पर चलने वाली एक लाइब्रेरी है जो डायनेमिक टाइपिंग और डायनामिक मेथड डिस्पैच प्रदान करती है, अन्य बातों के अतिरिक्त, डायनेमिक भाषाओं के लिए।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/dd233052.aspx|title=Dynamic Language Runtime Overview|publisher=[[Microsoft]]|access-date=2014-04-01}}</ref> डीएलआर .नेट रूपरेखा 4.0 का भाग है और 2009 से संस्करण 2.4 के बाद से मोनो का भी भाग है।<ref>{{Cite web|url=https://github.com/mono/mono/commit/340222ffe8b958cd22d9eb0388488f326845b363|title = 2009-07-02 Marek Safar · mono/Mono@340222f|website = [[GitHub]]}}</ref> डीएलआर का उपयोग पुराने सीएलआई कार्यान्वयनों पर पुस्तकालय के रूप में भी किया जा सकता है।


== स्थिति और रोडमैप ==
== स्थिति और रोडमैप ==
Line 53: Line 53:
| archive-url=https://web.archive.org/web/20171226082603/http://ironpython.codeplex.com/releases/view/30416
| archive-url=https://web.archive.org/web/20171226082603/http://ironpython.codeplex.com/releases/view/30416
| url-status=dead
| url-status=dead
}}</ref> आयरनपायथन 2.0.3 केवल .NET फ्रेमवर्क 3.5 तक संगत है।
}}</ref> आयरनपायथन 2.0.3 केवल .नेट रूपरेखा 3.5 तक संगत है।
* रिलीज़ 2.6, 11 दिसंबर, 2009 को रिलीज़ हुई और 12 अप्रैल, 2010 को अपडेट की गई, CPython 2.6 को लक्षित करती है।<ref>{{cite web
* रिलीज़ 2.6, 11 दिसंबर, 2009 को रिलीज़ हुई और 12 अप्रैल, 2010 को अपडेट की गई, CPython 2.6 को लक्षित करती है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/36280
| url=http://ironpython.codeplex.com/releases/view/36280
Line 62: Line 62:
| archive-url=https://web.archive.org/web/20180113101734/http://ironpython.codeplex.com/releases/view/36280
| archive-url=https://web.archive.org/web/20180113101734/http://ironpython.codeplex.com/releases/view/36280
| url-status=dead
| url-status=dead
}}</ref> आयरनपायथन 2.6.1 संस्करण केवल .NET फ्रेमवर्क 4.0 के साथ बाइनरी संगत है। आयरनपाइथन 2.6.1 को .NET फ्रेमवर्क 3.5 पर चलने के लिए स्रोतों से संकलित किया जाना चाहिए। आयरनपाइथन 2.6.2, 21 अक्टूबर, 2010 को जारी किया गया, .NET फ्रेमवर्क 4.0 और .NET फ्रेमवर्क 3.5 दोनों के साथ बाइनरी संगत है।
}}</ref> आयरनपायथन 2.6.1 संस्करण केवल .नेट रूपरेखा 4.0 के साथ बाइनरी संगत है। आयरनपाइथन 2.6.1 को .नेट रूपरेखा 3.5 पर चलने के लिए स्रोतों से संकलित किया जाना चाहिए। आयरनपाइथन 2.6.2, 21 अक्टूबर, 2010 को जारी किया गया, .नेट रूपरेखा 4.0 और .नेट रूपरेखा 3.5 दोनों के साथ बाइनरी संगत है।
* रिलीज 2.7 12 मार्च, 2011 को जारी किया गया था और यह सीपीथॉन 2.7 को लक्षित करता है।<ref>{{cite web
* रिलीज 2.7 12 मार्च, 2011 को जारी किया गया था और यह सीपीथॉन 2.7 को लक्षित करता है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/54498
| url=http://ironpython.codeplex.com/releases/view/54498
Line 118: Line 118:
| publisher=github.com
| publisher=github.com
| access-date=2018-01-05}}</ref>
| access-date=2018-01-05}}</ref>
* रिलीज 2.7.8 16 फरवरी, 2018 को जारी किया गया था और इसमें बग फिक्स, पुनर्गठित कोड और एक अद्यतन परीक्षण आधारभूत संरचना शामिल है (मोनो (सॉफ्टवेयर) के तहत लिनक्स पर महत्वपूर्ण परीक्षण सहित)। यह .NET कोर को सपोर्ट करने वाली पहली रिलीज़ भी है।<ref name=latestbut1Release>{{cite web
* रिलीज 2.7.8 16 फरवरी, 2018 को जारी किया गया था और इसमें बग फिक्स, पुनर्गठित कोड और एक अद्यतन परीक्षण आधारभूत संरचना शामिल है (मोनो (सॉफ्टवेयर) के तहत लिनक्स पर महत्वपूर्ण परीक्षण सहित)। यह .नेट कोर को सपोर्ट करने वाली पहली रिलीज़ भी है।<ref name=latestbut1Release>{{cite web
| url=https://github.com/IronLanguages/ironpython2/tree/ipy-2.7.8
| url=https://github.com/IronLanguages/ironpython2/tree/ipy-2.7.8
| title=2.7.8
| title=2.7.8
Line 128: Line 128:
| publisher=github.com
| publisher=github.com
| access-date=2018-10-09}}</ref>
| access-date=2018-10-09}}</ref>
* रिलीज़ 2.7.10 को 27 अप्रैल, 2020 को रिलीज़ किया गया था और इसमें .NET Core 3.1 सपोर्ट जोड़ा गया है।<ref>{{Cite web|title=IronLanguages/ironpython2|url=https://github.com/IronLanguages/ironpython2|access-date=2020-06-26|website=GitHub|language=en}}</ref>
* रिलीज़ 2.7.10 को 27 अप्रैल, 2020 को रिलीज़ किया गया था और इसमें .नेट Core 3.1 सपोर्ट जोड़ा गया है।<ref>{{Cite web|title=IronLanguages/ironpython2|url=https://github.com/IronLanguages/ironpython2|access-date=2020-06-26|website=GitHub|language=en}}</ref>
* रिलीज़ 2.7.11 को 17 नवंबर, 2020 को रिलीज़ किया गया था और .NET 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
* रिलीज़ 2.7.11 को 17 नवंबर, 2020 को रिलीज़ किया गया था और .नेट 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
* रिलीज़ 2.7.12 को 21 जनवरी, 2022 को रिलीज़ किया गया था और यह .NET 6 की समस्याओं को हल करती है और .NET कोर 2.1 के लिए समर्थन हटाती है<ref>{{Cite web |title=Releases · IronLanguages/ironpython2 |url=https://github.com/IronLanguages/ironpython2/releases |access-date=2022-08-08 |website=GitHub |language=en}}</ref>
* रिलीज़ 2.7.12 को 21 जनवरी, 2022 को रिलीज़ किया गया था और यह .नेट 6 की समस्याओं को हल करती है और .नेट कोर 2.1 के लिए समर्थन हटाती है<ref>{{Cite web |title=Releases · IronLanguages/ironpython2 |url=https://github.com/IronLanguages/ironpython2/releases |access-date=2022-08-08 |website=GitHub |language=en}}</ref>




Line 156: Line 156:
| last=Eby |first=Phillip
| last=Eby |first=Phillip
| date=15 October 2005
| date=15 October 2005
| access-date=2008-07-09}}</ref> जब तक कि उन्हें .NET इंटरॉप में प्रयुक्त नहीं किया जाता। उदाहरण के लिए, [[NumPy]] को माइक्रोसॉफ्ट द्वारा 2011 में लपेटा गया था, जिससे उस पर निर्भर कोड और लाइब्रेरी को सीधे .NET फ्रेमवर्क से चलाया जा सके।<ref>{{cite web | url=https://www.infoq.com/news/2011/07/NumPy-NET | title=NumPy and SciPy for .NET | access-date=2019-04-05}}</ref>
| access-date=2008-07-09}}</ref> जब तक कि उन्हें .नेट इंटरॉप में प्रयुक्त नहीं किया जाता। उदाहरण के लिए, [[NumPy]] को माइक्रोसॉफ्ट द्वारा 2011 में लपेटा गया था, जिससे उस पर निर्भर कोड और लाइब्रेरी को सीधे .नेट रूपरेखा से चलाया जा सके।<ref>{{cite web | url=https://www.infoq.com/news/2011/07/NumPy-NET | title=NumPy and SciPy for .NET | access-date=2019-04-05}}</ref>




Line 203: Line 203:


== इंटरफ़ेस एक्स्टेंसिबिलिटी ==
== इंटरफ़ेस एक्स्टेंसिबिलिटी ==
आयरनपाइथन के प्रमुख लाभों में से एक .NET भाषा में लिखे गए एप्लिकेशन फ्रेमवर्क के लिए एक एक्स्टेंसिबिलिटी परत के रूप में इसका कार्य है। आयरनपाइथन दुभाषिया को मौजूदा .NET एप्लिकेशन फ्रेमवर्क में एकीकृत करना अपेक्षाकृत सरल है। एक बार स्थापित हो जाने के बाद, डाउनस्ट्रीम डेवलपर आयरनपाइथन में लिखी गई स्क्रिप्ट का उपयोग कर सकते हैं जो फ्रेमवर्क में .NET ऑब्जेक्ट्स के साथ इंटरैक्ट करती हैं, जिससे फ्रेमवर्क के किसी भी कोड बेस को बदले बिना फ्रेमवर्क के इंटरफेस में कार्यक्षमता का विस्तार होता है।<ref name=dot-net-example>{{cite web
आयरनपाइथन के प्रमुख लाभों में से एक .नेट भाषा में लिखे गए एप्लिकेशन रूपरेखा के लिए एक एक्स्टेंसिबिलिटी परत के रूप में इसका कार्य है। आयरनपाइथन दुभाषिया को मौजूदा .नेट एप्लिकेशन रूपरेखा में एकीकृत करना अपेक्षाकृत सरल है। एक बार स्थापित हो जाने के बाद, डाउनस्ट्रीम डेवलपर आयरनपाइथन में लिखी गई स्क्रिप्ट का उपयोग कर सकते हैं जो रूपरेखा में .नेट ऑब्जेक्ट्स के साथ इंटरैक्ट करती हैं, जिससे रूपरेखा के किसी भी कोड बेस को बदले बिना रूपरेखा के इंटरफेस में कार्यक्षमता का विस्तार होता है।<ref name=dot-net-example>{{cite web
  | url = http://www.resolversystems.com/documentation/index.php/Dot_Net_Objects_in_the_Grid
  | url = http://www.resolversystems.com/documentation/index.php/Dot_Net_Objects_in_the_Grid
  | title = Using .NET objects from IronPython in Resolver One
  | title = Using .NET objects from IronPython in Resolver One
Line 212: Line 212:
  }}</ref>
  }}</ref>


आयरनपायथन [[प्रतिबिंब (कंप्यूटर विज्ञान)]] का व्यापक उपयोग करता है। जब किसी .NET ऑब्जेक्ट के संदर्भ में पास किया जाता है, तो यह स्वचालित रूप से उस ऑब्जेक्ट के लिए उपलब्ध प्रकारों और विधियों को आयात करेगा। यह एक आयरनपाइथन स्क्रिप्ट के भीतर .NET ऑब्जेक्ट्स के साथ काम करते समय अत्यधिक सहज अनुभव का परिणाम देता है।
आयरनपायथन [[प्रतिबिंब (कंप्यूटर विज्ञान)]] का व्यापक उपयोग करता है। जब किसी .नेट ऑब्जेक्ट के संदर्भ में पास किया जाता है, तो यह स्वचालित रूप से उस ऑब्जेक्ट के लिए उपलब्ध प्रकारों और विधियों को आयात करेगा। यह एक आयरनपाइथन स्क्रिप्ट के भीतर .नेट ऑब्जेक्ट्स के साथ काम करते समय अत्यधिक सहज अनुभव का परिणाम देता है।


== उदाहरण ==
== उदाहरण ==
निम्नलिखित आयरनपाइथन स्क्रिप्ट .NET फ्रेमवर्क ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड फ्रेमवर्क में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।
निम्नलिखित आयरनपाइथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।


<वाक्यविन्यास लैंग = अजगर>
<वाक्यविन्यास लैंग = अजगर>
Line 223: Line 223:
                                     यदि Book.Author.MajorAwards में बुकर पुरस्कार]
                                     यदि Book.Author.MajorAwards में बुकर पुरस्कार]
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
इस स्थिति में, मान लें कि .NET फ्रेमवर्क BookService नामक मॉड्यूल में एक वर्ग, BookDictionary को प्रयुक्त करता है, और एक इंटरफ़ेस प्रकाशित करता है जिसमें आयरनपाइथन स्क्रिप्ट को भेजा और निष्पादित किया जा सकता है।
इस स्थिति में, मान लें कि .नेट रूपरेखा BookService नामक मॉड्यूल में एक वर्ग, BookDictionary को प्रयुक्त करता है, और एक इंटरफ़ेस प्रकाशित करता है जिसमें आयरनपाइथन स्क्रिप्ट को भेजा और निष्पादित किया जा सकता है।


यह स्क्रिप्ट, जब उस इंटरफ़ेस पर भेजी जाती है, तो फ्रेमवर्क द्वारा अनुरक्षित पुस्तकों की पूरी सूची पर पुनरावृति करेगी, और बुकर पुरस्कार विजेता लेखकों द्वारा लिखी गई पुस्तकों को चुनेगी।
यह स्क्रिप्ट, जब उस इंटरफ़ेस पर भेजी जाती है, तो रूपरेखा द्वारा अनुरक्षित पुस्तकों की पूरी सूची पर पुनरावृति करेगी, और बुकर पुरस्कार विजेता लेखकों द्वारा लिखी गई पुस्तकों को चुनेगी।


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


निम्न स्क्रिप्ट एक सरल हैलो वर्ल्ड संदेश बनाने के लिए .NET फ्रेमवर्क का उपयोग करती है।
निम्न स्क्रिप्ट एक सरल हैलो वर्ल्ड संदेश बनाने के लिए .नेट रूपरेखा का उपयोग करती है।


<वाक्यविन्यास लैंग = अजगर>
<वाक्यविन्यास लैंग = अजगर>
Line 261: Line 261:
== यह भी देखें ==
== यह भी देखें ==
{{Portal|Free and open-source software|Computer programming}}
{{Portal|Free and open-source software|Computer programming}}
* [[बू (प्रोग्रामिंग भाषा)]] - .NET फ्रेमवर्क के लिए एक भाषा और पायथन-प्रेरित सिंटैक्स के साथ मोनो और सी शार्प (प्रोग्रामिंग भाषा) | सी # और [[रूबी (प्रोग्रामिंग भाषा)]] से उधार ली गई सुविधाएँ
* [[बू (प्रोग्रामिंग भाषा)]] - .नेट रूपरेखा के लिए एक भाषा और पायथन-प्रेरित सिंटैक्स के साथ मोनो और सी शार्प (प्रोग्रामिंग भाषा) | सी # और [[रूबी (प्रोग्रामिंग भाषा)]] से उधार ली गई सुविधाएँ
* [[कोबरा (प्रोग्रामिंग भाषा)]]
* [[कोबरा (प्रोग्रामिंग भाषा)]]
*लोहा योजना
*लोहा योजना
Line 267: Line 267:
* [[साइथन]]
* [[साइथन]]
* [[PyPy]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[PyPy]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[ताओ फ्रेमवर्क]]
* [[ताओ फ्रेमवर्क|ताओ रूपरेखा]]
* [[Unladen Swallow]] – CPython की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM]]-आधारित जस्ट-इन-टाइम संकलन|जस्ट-इन-टाइम कंपाइलर का उपयोग करके बेहतर प्रदर्शन प्रदान करना है
* [[Unladen Swallow]] – CPython की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM]]-आधारित जस्ट-इन-टाइम संकलन|जस्ट-इन-टाइम कंपाइलर का उपयोग करके बेहतर प्रदर्शन प्रदान करना है
{{Clear}}
{{Clear}}

Revision as of 09:32, 27 February 2023

IronPython
Original author(s)Jim Hugunin, Microsoft
Developer(s)Dino Viehland,
.NET Foundation
Initial releaseSeptember 5, 2006; 17 years ago (2006-09-05)[1]
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)

आयरनपाइथन .नेट रूपरेखा और मोनो (सॉफ्टवेयर) को लक्षित करने वाले पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन है। जिम ह्यूगुनिन ने परियोजना बनाई और संस्करण 1.0 तक सक्रिय रूप से योगदान दिया, जो 5 सितंबर, 2006 को जारी किया गया था।[2] आयरनपायथन 2.0 को 10 दिसंबर, 2008 को जारी किया गया था।[3] संस्करण 1.0 के बाद इसे 2.7 बीटा 1 रिलीज़ होने तक माइक्रोसॉफ्ट की एक छोटी टीम द्वारा बनाए रखा गया था। माइक्रोसॉफ्ट ने 2010 के अंत में आयरनपाइथन (और उसकी बहन परियोजना आयरनरूबी) को छोड़ दिया, जिसके बाद ह्यूगुनिन ने गूगल में काम करना छोड़ दिया।[4] परियोजना वर्तमान में गिटहब में स्वयंसेवकों के एक समूह द्वारा रखी गई है। यह फ्री और ओपन-सोर्स सॉफ्टवेयर है, और विजुअल स्टूडियो के लिए पायथन टूल्स के साथ प्रयुक्त किया जा सकता है, जो माइक्रोसॉफ्ट के विजुअल स्टूडियो आईडीई के लिए एक फ्री और ओपन-सोर्स एक्सटेंशन है।[5][6]

आयरनपाइथन पूरी तरह से सी शार्प (प्रोग्रामिंग लैंग्वेज)|C# में लिखा गया है, चुकी इसका कुछ कोड पाइथन में लिखे गए स्रोत कोड पीढ़ी द्वारा स्वचालित रूप से उत्पन्न होता है।

आयरनपाइथन को गतिशील भाषा रनटाइम (डीएलआर) के शीर्ष पर प्रयुक्त किया गया है, जो सामान्य भाषा इन्फ्रास्ट्रक्चर के शीर्ष पर चलने वाली एक लाइब्रेरी है जो डायनेमिक टाइपिंग और डायनामिक मेथड डिस्पैच प्रदान करती है, अन्य बातों के अतिरिक्त, डायनेमिक भाषाओं के लिए।[7] डीएलआर .नेट रूपरेखा 4.0 का भाग है और 2009 से संस्करण 2.4 के बाद से मोनो का भी भाग है।[8] डीएलआर का उपयोग पुराने सीएलआई कार्यान्वयनों पर पुस्तकालय के रूप में भी किया जा सकता है।

स्थिति और रोडमैप

  • रिलीज़ 2.0, 10 दिसंबर, 2008 को जारी किया गया, और 23 अक्टूबर, 2009 को 2.0.3 के रूप में अपडेट किया गया, CPython 2.5 को लक्षित करता है।[9] आयरनपायथन 2.0.3 केवल .नेट रूपरेखा 3.5 तक संगत है।
  • रिलीज़ 2.6, 11 दिसंबर, 2009 को रिलीज़ हुई और 12 अप्रैल, 2010 को अपडेट की गई, CPython 2.6 को लक्षित करती है।[10] आयरनपायथन 2.6.1 संस्करण केवल .नेट रूपरेखा 4.0 के साथ बाइनरी संगत है। आयरनपाइथन 2.6.1 को .नेट रूपरेखा 3.5 पर चलने के लिए स्रोतों से संकलित किया जाना चाहिए। आयरनपाइथन 2.6.2, 21 अक्टूबर, 2010 को जारी किया गया, .नेट रूपरेखा 4.0 और .नेट रूपरेखा 3.5 दोनों के साथ बाइनरी संगत है।
  • रिलीज 2.7 12 मार्च, 2011 को जारी किया गया था और यह सीपीथॉन 2.7 को लक्षित करता है।[11]
  • रिलीज 2.7.1 21 अक्टूबर, 2011 को जारी किया गया था और यह CPython 2.7 को लक्षित करता है।[12]
  • रिलीज 2.7.2.1 13 मार्च 2012 को जारी किया गया था। यह ज़िप फ़ाइल स्वरूप लाइब्रेरी, SQLite, और संकलित निष्पादनयोग्य के लिए समर्थन को सक्षम बनाता है।[13]
  • रिलीज़ 2.7.4 को 7 सितंबर, 2013 को रिलीज़ किया गया था।[14]
  • रिलीज़ 2.7.5 को 6 दिसंबर 2014 को रिलीज़ किया गया था और इसमें ज़्यादातर बग फिक्स शामिल हैं।[15]
  • रिलीज़ 2.7.6 को 21 अगस्त 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स शामिल हैं।[16]
  • रिलीज़ 2.7.7 को 7 दिसंबर, 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स शामिल हैं।[17]
  • रिलीज 2.7.8 16 फरवरी, 2018 को जारी किया गया था और इसमें बग फिक्स, पुनर्गठित कोड और एक अद्यतन परीक्षण आधारभूत संरचना शामिल है (मोनो (सॉफ्टवेयर) के तहत लिनक्स पर महत्वपूर्ण परीक्षण सहित)। यह .नेट कोर को सपोर्ट करने वाली पहली रिलीज़ भी है।[18]
  • रिलीज़ 2.7.9 को 9 अक्टूबर, 2018 को रिलीज़ किया गया था और इसमें बग फिक्स, पुनर्गठित कोड शामिल हैं। यह आयरनपीथन 3 से पहले अंतिम रिलीज होने का इरादा है।[19]
  • रिलीज़ 2.7.10 को 27 अप्रैल, 2020 को रिलीज़ किया गया था और इसमें .नेट Core 3.1 सपोर्ट जोड़ा गया है।[20]
  • रिलीज़ 2.7.11 को 17 नवंबर, 2020 को रिलीज़ किया गया था और .नेट 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
  • रिलीज़ 2.7.12 को 21 जनवरी, 2022 को रिलीज़ किया गया था और यह .नेट 6 की समस्याओं को हल करती है और .नेट कोर 2.1 के लिए समर्थन हटाती है[21]


=== CPython === के साथ अंतर

पायथन संदर्भ कार्यान्वयन CPython और आयरनपाइथन के बीच कुछ अंतर हैं।[22] आयरनपाइथन के शीर्ष पर बनी कुछ परियोजनाओं को CPython के तहत काम नहीं करने के लिए जाना जाता है।[23] इसके विपरीत, CPython एप्लिकेशन जो C में प्रयुक्त की गई भाषा के एक्सटेंशन पर निर्भर करते हैं, वे आयरनपाइथन के साथ संगत नहीं हैं

,[24] जब तक कि उन्हें .नेट इंटरॉप में प्रयुक्त नहीं किया जाता। उदाहरण के लिए, NumPy को माइक्रोसॉफ्ट द्वारा 2011 में लपेटा गया था, जिससे उस पर निर्भर कोड और लाइब्रेरी को सीधे .नेट रूपरेखा से चलाया जा सके।[25]


सिल्वरलाइट

आयरनपायथन सिल्वरलाइट पर समर्थित है (जिसे माइक्रोसॉफ्ट द्वारा बहिष्कृत किया गया है और पहले से ही अधिकांश वेब ब्राउज़रों में समर्थन खो चुका है[26]). इसे जावास्क्रिप्ट इंजन की तरह ही ब्राउजर में स्क्रिप्टिंग इंजन के रूप में इस्तेमाल किया जा सकता है।[27] आयरनपायथन स्क्रिप्ट्स को साधारण क्लाइंट-साइड जावास्क्रिप्ट स्क्रिप्ट्स की तरह पास किया जाता है <script>-टैग। तब एम्बेडेड XAML मार्कअप को संशोधित करना भी संभव है।

इसके पीछे की तकनीक को गेस्टाल्ट कहा जाता है।[citation needed]

<वाक्यविन्यास लैंग = html4सख्त>

// डीएलआर आरंभीकरण स्क्रिप्ट।

<स्क्रिप्ट src= http://gestalt.ironpython.net/dlr-latest.js type= text/javascript ></script>

// क्लाइंट-साइड स्क्रिप्ट आयरनपीथन और सिल्वरलाइट को पास की गई।

<स्क्रिप्ट प्रकार = पाठ / अजगर>

   विंडो। अलर्ट (पायथन से हैलो)

</स्क्रिप्ट>

</वाक्यविन्यास हाइलाइट>

आयरनरूबी के लिए भी यही काम करता है।

लाइसेंस

संस्करण 0.6 तक, आयरनपीथन को आम सार्वजनिक लाइसेंस की शर्तों के तहत जारी किया गया था।[28] अगस्त 2004 में प्रोजेक्ट लीड की भर्ती के बाद, आयरनपीथन को माइक्रोसॉफ्ट की साझा स्रोत पहल के हिस्से के रूप में उपलब्ध कराया गया था। यह लाइसेंस ओपन सोर्स पहल-अनुमोदित नहीं है, लेकिन लेखकों का दावा है कि यह ओपन-सोर्स की परिभाषा को पूरा करता है।[29] 2.0 अल्फ़ा रिलीज़ के साथ, लाइसेंस को माइक्रोसॉफ्ट सार्वजनिक लाइसेंस में बदल दिया गया था,[30] जिसे ओएसआई ने मंजूरी दे दी है। नवीनतम संस्करण Apache लाइसेंस 2.0 की शर्तों के तहत जारी किए गए हैं।

इंटरफ़ेस एक्स्टेंसिबिलिटी

आयरनपाइथन के प्रमुख लाभों में से एक .नेट भाषा में लिखे गए एप्लिकेशन रूपरेखा के लिए एक एक्स्टेंसिबिलिटी परत के रूप में इसका कार्य है। आयरनपाइथन दुभाषिया को मौजूदा .नेट एप्लिकेशन रूपरेखा में एकीकृत करना अपेक्षाकृत सरल है। एक बार स्थापित हो जाने के बाद, डाउनस्ट्रीम डेवलपर आयरनपाइथन में लिखी गई स्क्रिप्ट का उपयोग कर सकते हैं जो रूपरेखा में .नेट ऑब्जेक्ट्स के साथ इंटरैक्ट करती हैं, जिससे रूपरेखा के किसी भी कोड बेस को बदले बिना रूपरेखा के इंटरफेस में कार्यक्षमता का विस्तार होता है।[31]

आयरनपायथन प्रतिबिंब (कंप्यूटर विज्ञान) का व्यापक उपयोग करता है। जब किसी .नेट ऑब्जेक्ट के संदर्भ में पास किया जाता है, तो यह स्वचालित रूप से उस ऑब्जेक्ट के लिए उपलब्ध प्रकारों और विधियों को आयात करेगा। यह एक आयरनपाइथन स्क्रिप्ट के भीतर .नेट ऑब्जेक्ट्स के साथ काम करते समय अत्यधिक सहज अनुभव का परिणाम देता है।

उदाहरण

निम्नलिखित आयरनपाइथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।

<वाक्यविन्यास लैंग = अजगर> BookService आयात BookDictionary से

BooksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks()

                                   यदि Book.Author.MajorAwards में बुकर पुरस्कार]

</वाक्यविन्यास हाइलाइट> इस स्थिति में, मान लें कि .नेट रूपरेखा BookService नामक मॉड्यूल में एक वर्ग, BookDictionary को प्रयुक्त करता है, और एक इंटरफ़ेस प्रकाशित करता है जिसमें आयरनपाइथन स्क्रिप्ट को भेजा और निष्पादित किया जा सकता है।

यह स्क्रिप्ट, जब उस इंटरफ़ेस पर भेजी जाती है, तो रूपरेखा द्वारा अनुरक्षित पुस्तकों की पूरी सूची पर पुनरावृति करेगी, और बुकर पुरस्कार विजेता लेखकों द्वारा लिखी गई पुस्तकों को चुनेगी।

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

निम्न स्क्रिप्ट एक सरल हैलो वर्ल्ड संदेश बनाने के लिए .नेट रूपरेखा का उपयोग करती है।

<वाक्यविन्यास लैंग = अजगर>

आयात सीएलआर

clr.AddReference (System.Windows.Forms)

System.Windows.Forms से MessageBox आयात करें

संदेशबॉक्स.शो (हैलो वर्ल्ड)

</वाक्यविन्यास हाइलाइट>

प्रदर्शन

CPython की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, Python का संदर्भ कार्यान्वयन, उपयोग किए गए सटीक बेंचमार्क पर निर्भर करता है। थ्रिस्टोन स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपाइथन सीपीथॉन से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर बेहतर है।[32]

आयरनपाइथन Python प्रोग्राम्स में बेहतर प्रदर्शन कर सकता है जो थ्रेड्स या मल्टीपल कोर का उपयोग करते हैं, क्योंकि इसमें समय-समय पर संकलन कंपाइलर है, और इसलिए भी कि इसमें ग्लोबल इंटरप्रेटर लॉक नहीं है।[33][34]


यह भी देखें


संदर्भ

  1. "CodePlex Archive". Archived from the original on 2017-12-26. Retrieved 2014-05-30.
  2. "Jim Hugunin's blog: IronPython 1.0 released today!". 2006-09-05. Retrieved 2006-12-14.
  3. "Release dates for ironpython". 2008-12-10. Retrieved 2009-01-25.
  4. Clarke, Gavin (2010-10-22). "Microsoft cuts loose Iron languages". The Register. Retrieved 2012-04-05.
  5. "IronPython.net". Retrieved 2013-07-03.
  6. "Python Tools for Visual Studio- Home". Python Tools for Visual Studio. Archived from the original on 2018-01-26. Retrieved 2013-07-03.
  7. "Dynamic Language Runtime Overview". Microsoft. Retrieved 2014-04-01.
  8. "2009-07-02 Marek Safar · mono/Mono@340222f". GitHub.
  9. "2.0.3". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2010-10-16.
  10. "2.6". ironpython.codeplex.com. Archived from the original on 2018-01-13. Retrieved 2010-10-16.
  11. "2.7". ironpython.codeplex.com. Archived from the original on 2018-01-02. Retrieved 2011-03-12.
  12. "2.7.1". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2011-12-30.
  13. "2.7.2.1". ironpython.codeplex.com. Archived from the original on 2017-12-26. Retrieved 2012-03-24.
  14. "2.7.4". ironpython.codeplex.com. Archived from the original on 2018-01-16. Retrieved 2014-12-07.
  15. "2.7.5". ironpython.codeplex.com. Archived from the original on 2018-01-26. Retrieved 2014-12-07.
  16. "2.7.6". github.com. Retrieved 2016-08-21.
  17. "2.7.7". github.com. Retrieved 2018-01-05.
  18. "2.7.8". github.com. Retrieved 2018-01-05.
  19. "2.7.9". github.com. Retrieved 2018-10-09.
  20. "IronLanguages/ironpython2". GitHub (in English). Retrieved 2020-06-26.
  21. "Releases · IronLanguages/ironpython2". GitHub (in English). Retrieved 2022-08-08.
  22. "Differences between IronPython 1.0 and CPython 2.4.3". Microsoft. 2007-12-18. Retrieved 2008-02-09.
  23. Foord, Michael. "New Project: Implementing .NET Libraries in Pure Python". Archived from the original on 2008-08-30. Retrieved 2008-02-09.
  24. Eby, Phillip (15 October 2005). "Children of a Lesser Python". Retrieved 2008-07-09.
  25. "NumPy and SciPy for .NET". Retrieved 2019-04-05.
  26. "Silverlight 5 System Requirements". www.microsoft.com. Retrieved 2019-11-16.
  27. "Write browser applications in Python". IronPython.net. Archived from the original on 2013-03-17.
  28. "Original IronPython homepage". 2004-07-28. Archived from the original on February 23, 2010. Retrieved 2007-05-13.
  29. "Shared Source License for IronPython". 2006-04-28. Retrieved 2007-05-13.
  30. "Microsoft permissive license". 2007-04-28. Retrieved 2007-05-13.
  31. "Using .NET objects from IronPython in Resolver One". Archived from the original on 2009-01-14. Retrieved 2008-11-18.
  32. "IronPython Performance Report". Retrieved 2009-10-05.[permanent dead link]
  33. "IronPython at python.org". python.org. Retrieved 2011-04-04. IronPython has no GIL and multi-threaded code can use multi core processors.
  34. "Python's Hardest Problem, Revisited". Archived from the original on 2015-10-31. Retrieved 2015-07-15.


बाहरी संबंध

  • No URL found. Please specify a URL here or add one to Wikidata.