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

From Vigyanwiki
No edit summary
No edit summary
Line 19: Line 19:
| लाइसेंस = अपाचे लाइसेंस 2.0
| लाइसेंस = अपाचे लाइसेंस 2.0
}}
}}
आयरनपाइथन .नेट रूपरेखा और मोनो (सॉफ्टवेयर) को लक्षित करने वाले पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन है। [[जिम ह्यूगुनिन]] ने परियोजना बनाई और संस्करण 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 29: Line 29:
  | date = 2008-12-10
  | date = 2008-12-10
  | access-date = 2009-01-25
  | access-date = 2009-01-25
}}</ref> संस्करण 1.0 के बाद इसे 2.7 बीटा 1 रिलीज़ होने तक [[Microsoft|माइक्रोसॉफ्ट]] की एक छोटी टीम द्वारा बनाए रखा गया था। माइक्रोसॉफ्ट ने 2010 के अंत में आयरनपाइथन (और उसकी बहन परियोजना [[IronRuby|आयरनरूबी]]) को छोड़ दिया, जिसके बाद ह्यूगुनिन ने गूगल में काम करना छोड़ दिया।<ref>{{cite web
}}</ref> संस्करण 1.0 के बाद इसे 2.7 बीटा 1 रिलीज़ होने तक [[Microsoft|माइक्रोसॉफ्ट]] की एक छोटी टीम द्वारा बनाए रखा गया था। माइक्रोसॉफ्ट ने 2010 के अंत में आयरनपायथन (और उसकी बहन परियोजना [[IronRuby|आयरनरूबी]]) को छोड़ दिया, जिसके बाद ह्यूगुनिन ने गूगल में काम करना छोड़ दिया।<ref>{{cite web
| url=https://www.theregister.co.uk/2010/10/22/microsoft_kills_dynamic_languages_projects/
| url=https://www.theregister.co.uk/2010/10/22/microsoft_kills_dynamic_languages_projects/
| title=Microsoft cuts loose Iron languages
| title=Microsoft cuts loose Iron languages
Line 37: Line 37:
| publisher=[[The Register]]
| publisher=[[The Register]]
| access-date=2012-04-05
| access-date=2012-04-05
}}</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> डीएलआर .नेट रूपरेखा 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 61: Line 61:
| 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 संस्करण केवल .नेट रूपरेखा 4.0 के साथ बाइनरी संगत है। आयरनपाइथन 2.6.1 को .नेट रूपरेखा 3.5 पर चलने के लिए स्रोतों से संकलित किया जाना चाहिए। आयरनपाइथन 2.6.2, 21 अक्टूबर, 2010 को प्रचलित किया गया, .नेट रूपरेखा 4.0 और .नेट रूपरेखा 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 80: Line 80:
| url-status=dead
| url-status=dead
}}</ref>
}}</ref>
* रिलीज 2.7.2.1 13 मार्च 2012 को प्रचलित किया गया था। यह [[ज़िप फ़ाइल स्वरूप]] लाइब्रेरी, [[SQLite|एसक्यू लाइट]], और संकलित निष्पादनयोग्य के लिए समर्थन को सक्षम बनाता है।<ref>{{cite web
* रिलीज 2.7.2.1 13 मार्च 2012 को प्रचलित किया गया था। यह [[ज़िप फ़ाइल स्वरूप]] पुस्तकालय, [[SQLite|एसक्यू लाइट]], और संकलित निष्पादनयोग्य के लिए समर्थन को सक्षम बनाता है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/74478
| url=http://ironpython.codeplex.com/releases/view/74478
| title=2.7.2.1
| title=2.7.2.1
Line 98: Line 98:
| url-status=dead
| url-status=dead
}}</ref>
}}</ref>
* रिलीज़ 2.7.5 को 6 दिसंबर 2014 को रिलीज़ किया गया था और इसमें ज़्यादातर बग फिक्स सम्मिलित हैं।<ref>{{cite web
* रिलीज़ 2.7.5 को 6 दिसंबर 2014 को रिलीज़ किया गया था और इसमें अधिकतर बग फिक्स सम्मिलित हैं।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/169382
| url=http://ironpython.codeplex.com/releases/view/169382
| title=2.7.5
| title=2.7.5
Line 117: Line 117:
| publisher=github.com
| publisher=github.com
| access-date=2018-01-05}}</ref>
| access-date=2018-01-05}}</ref>
* रिलीज 2.7.8 16 फरवरी, 2018 को प्रचलित किया गया था और इसमें बग फिक्स, पुनर्गठित कोड और एक अद्यतन परीक्षण आधारभूत संरचना सम्मिलित है (मोनो (सॉफ्टवेयर) के अनुसार लिनक्स पर महत्वपूर्ण परीक्षण सहित)। यह .नेट कोर को सपोर्ट करने वाली पहली रिलीज़ भी है।<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
| publisher=github.com
| publisher=github.com
| access-date=2018-01-05}}</ref>
| access-date=2018-01-05}}</ref>
* रिलीज़ 2.7.9 को 9 अक्टूबर, 2018 को रिलीज़ किया गया था और इसमें बग फिक्स, पुनर्गठित कोड सम्मिलित हैं। यह आयरनपीथन 3 से पहले अंतिम रिलीज होने का आशय है।<ref name=latestRelease>{{cite web
* रिलीज़ 2.7.9 को 9 अक्टूबर, 2018 को रिलीज़ किया गया था और इसमें बग फिक्स, पुनर्गठित कोड सम्मिलित हैं। यह आयरनपायथन 3 से पहले अंतिम रिलीज होने का आशय है।<ref name=latestRelease>{{cite web
| url=https://github.com/IronLanguages/ironpython2/tree/ipy-2.7.9
| url=https://github.com/IronLanguages/ironpython2/tree/ipy-2.7.9
| title=2.7.9
| title=2.7.9
| publisher=github.com
| publisher=github.com
| access-date=2018-10-09}}</ref>
| access-date=2018-10-09}}</ref>
* रिलीज़ 2.7.10 को 27 अप्रैल, 2020 को रिलीज़ किया गया था और इसमें .नेट कोर 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 को रिलीज़ किया गया था और इसमें .नेट कोर 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 को रिलीज़ किया गया था और .नेट 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
* रिलीज़ 2.7.11 को 17 नवंबर, 2020 को रिलीज़ किया गया था और .नेट 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
* रिलीज़ 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>
* रिलीज़ 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 134: Line 134:


=== सी पायथन के साथ अंतर ===
=== सी पायथन के साथ अंतर ===
पायथन संदर्भ कार्यान्वयन सी पायथन और आयरनपाइथन के बीच कुछ अंतर हैं।<ref name="compcpython">{{cite web
पायथन संदर्भ कार्यान्वयन सी पायथन और आयरनपायथन के बीच कुछ अंतर हैं।<ref name="compcpython">{{cite web
| url=http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Differences&referringTitle=Home
| url=http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Differences&referringTitle=Home
| title=Differences between IronPython 1.0 and CPython 2.4.3
| title=Differences between IronPython 1.0 and CPython 2.4.3
|publisher=[[Microsoft]]
|publisher=[[Microsoft]]
| date=2007-12-18
| date=2007-12-18
| access-date=2008-02-09}}</ref> आयरनपाइथन के शीर्ष पर बनी कुछ परियोजनाओं को सी पायथन के अंतर्गत काम नहीं करने के लिए जाना जाता है।<ref>{{cite web
| access-date=2008-02-09}}</ref> आयरनपायथन के शीर्ष पर बनी कुछ परियोजनाओं को सी पायथन के अंतर्गत काम नहीं करने के लिए जाना जाता है।<ref>{{cite web
| url=http://lists.ironpython.com/pipermail/users-ironpython.com/2008-January/006297.html
| url=http://lists.ironpython.com/pipermail/users-ironpython.com/2008-January/006297.html
| title=New Project: Implementing .NET Libraries in Pure Python
| title=New Project: Implementing .NET Libraries in Pure Python
Line 148: Line 148:
| archive-date=2008-08-30
| archive-date=2008-08-30
| url-status=dead
| url-status=dead
}}</ref> इसके विपरीत, सी पायथन एप्लिकेशन जो C में प्रयुक्त की गई भाषा के एक्सटेंशन पर निर्भर करते हैं, वे आयरनपाइथन के साथ संगत नहीं हैं ।
}}</ref> इसके विपरीत, सी पायथन अनुप्रयोग जो C में प्रयुक्त की गई भाषा के विस्तार पर निर्भर करते हैं, वे आयरनपायथन के साथ संगत नहीं हैं ।


<ref>{{cite web
<ref>{{cite web
Line 155: Line 155:
| last=Eby |first=Phillip
| last=Eby |first=Phillip
| date=15 October 2005
| date=15 October 2005
| 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>
| 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>






== [[सिल्वरलाइट]] ==
== [[सिल्वरलाइट]] ==
आयरनपायथन सिल्वरलाइट पर समर्थित है (जिसे माइक्रोसॉफ्ट द्वारा बहिष्कृत किया गया है और पहले से ही अधिकांश वेब ब्राउज़रों में समर्थन खो चुका है<ref>{{Cite web|url=https://www.microsoft.com/getsilverlight/locale/en-us/html/installation-win-SL5.html|title=Silverlight 5 System Requirements|website=www.microsoft.com|access-date=2019-11-16}}</ref>). इसे [[जावास्क्रिप्ट]] इंजन की तरह ही ब्राउजर में स्क्रिप्टिंग इंजन के रूप में प्रयोग किया जा सकता है।<ref>{{cite web|url=http://ironpython.net/browser/|title=Write browser applications in Python |work=IronPython.net |archive-url=https://web.archive.org/web/20130317012431/http://ironpython.net/browser/ |archive-date=2013-03-17}}</ref> आयरनपायथन स्क्रिप्ट्स को साधारण क्लाइंट-साइड जावास्क्रिप्ट स्क्रिप्ट्स की तरह पास किया जाता है <code><script></code>-टैग। तब एम्बेडेड [[XAML|एक्स एएमएल]] मार्कअप को संशोधित करना भी संभव है।
आयरनपायथन सिल्वरलाइट पर समर्थित है (जिसे माइक्रोसॉफ्ट द्वारा बहिष्कृत किया गया है और पहले से ही अधिकांश वेब ब्राउज़रों में समर्थन खो चुका है<ref>{{Cite web|url=https://www.microsoft.com/getsilverlight/locale/en-us/html/installation-win-SL5.html|title=Silverlight 5 System Requirements|website=www.microsoft.com|access-date=2019-11-16}}</ref>)इसे [[जावास्क्रिप्ट]] इंजन की तरह ही ब्राउजर में स्क्रिप्टिंग इंजन के रूप में प्रयोग किया जा सकता है।<ref>{{cite web|url=http://ironpython.net/browser/|title=Write browser applications in Python |work=IronPython.net |archive-url=https://web.archive.org/web/20130317012431/http://ironpython.net/browser/ |archive-date=2013-03-17}}</ref> आयरनपायथन <code><script></code>-टैग को साधारण क्लाइंट-साइड जावास्क्रिप्ट स्क्रिप्ट्स की तरह पास किया जाता है। तब एम्बेडेड [[XAML|एक्स एएमएल]] मार्कअप को संशोधित करना भी संभव है।
 
इसके पीछे की तकनीक को गेस्टाल्ट कहा जाता है।


इसके पीछे की तकनीक को गेस्टाल्ट कहा जाता है।<syntaxhighlight>
// DLR initialization script.
// DLR initialization script.
<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>


<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>
// Client-side script passed to IronPython and Silverlight.
<script type="text/python">
    window.Alert("Hello from Python")
</script>
</syntaxhighlight>'''// DLR initialization script.'''


'''<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>'''


'''<br />'''


'''<br />'''


'''// Client-side script passed to IronPython and Silverlight.'''


// Client-side script passed to IronPython and Silverlight.
'''<script type="text/python">'''


<script type="text/python">
'''window.Alert("Hello from Python") </script>'''


window.Alert("Hello from Python") </script>




Line 185: Line 192:


== लाइसेंस ==
== लाइसेंस ==
संस्करण 0.6 तक, आयरनपीथन को आम सार्वजनिक लाइसेंस की शर्तों के अनुसार प्रचलित किया गया था।<ref name=license-orig>{{cite web
संस्करण 0.6 तक, आयरनपायथन को सामान्य सार्वजनिक लाइसेंस की नियमों के अनुसार प्रचलित किया गया था।<ref name=license-orig>{{cite web
  |url=http://www.ironpython.com/old.html  
  |url=http://www.ironpython.com/old.html  
  |title=Original IronPython homepage  
  |title=Original IronPython homepage  
Line 193: Line 200:
  |archive-url=https://web.archive.org/web/20100223101738/http://www.ironpython.com/old.html  
  |archive-url=https://web.archive.org/web/20100223101738/http://www.ironpython.com/old.html  
  |archive-date=February 23, 2010  
  |archive-date=February 23, 2010  
}}</ref> अगस्त 2004 में प्रोजेक्ट लीड की भर्ती के बाद, आयरनपीथन को माइक्रोसॉफ्ट की [[साझा स्रोत]] पहल के भाग के रूप में उपलब्ध कराया गया था। यह लाइसेंस [[ओपन सोर्स पहल]]-अनुमोदित नहीं है, लेकिन लेखकों का दावा है कि यह ओपन-सोर्स की परिभाषा को पूरा करता है।<ref name=license>{{cite web
}}</ref> अगस्त 2004 में प्रोजेक्ट लीड की भर्ती के बाद, आयरनपायथन को माइक्रोसॉफ्ट की [[साझा स्रोत]] पहल के भाग के रूप में उपलब्ध कराया गया था। यह लाइसेंस [[ओपन सोर्स पहल]]-अनुमोदित नहीं है, लेकिन लेखकों का प्रमाण है कि यह ओपन-सोर्स की परिभाषा को पूरा करता है।<ref name=license>{{cite web
  | url = http://www.codeplex.com/IronPython/Project/License.aspx?LicenseHistoryId=129
  | url = http://www.codeplex.com/IronPython/Project/License.aspx?LicenseHistoryId=129
  | title = Shared Source License for IronPython
  | title = Shared Source License for IronPython
Line 203: Line 210:
  | date = 2007-04-28
  | date = 2007-04-28
  | access-date = 2007-05-13
  | access-date = 2007-05-13
}}</ref> जिसे ओएसआई ने मंजूरी दे दी है। नवीनतम संस्करण अपाचे लाइसेंस 2.0 की शर्तों के अनुसार प्रचलित किए गए हैं।
}}</ref> जिसे ओएसआई ने स्वीकृति दे दी है। नवीनतम संस्करण अपाचे लाइसेंस 2.0 की नियमों के अनुसार प्रचलित किए गए हैं।


== इंटरफ़ेस एक्स्टेंसिबिलिटी ==
== इंटरफ़ेस एक्स्टेंसिबिलिटी ==
आयरनपाइथन के प्रमुख लाभों में से एक .नेट भाषा में लिखे गए एप्लिकेशन रूपरेखा के लिए एक एक्स्टेंसिबिलिटी परत के रूप में इसका कार्य है। आयरनपाइथन दुभाषिया को उपस्थित .नेट एप्लिकेशन रूपरेखा में एकीकृत करना अपेक्षाकृत सरल है। एक बार स्थापित हो जाने के बाद, डाउनस्ट्रीम डेवलपर आयरनपाइथन में लिखी गई स्क्रिप्ट का उपयोग कर सकते हैं जो रूपरेखा में .नेट ऑब्जेक्ट्स के साथ इंटरैक्ट करती हैं, जिससे रूपरेखा के किसी भी कोड बेस को बदले बिना रूपरेखा के इंटरफेस में कार्यक्षमता का विस्तार होता है।<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 215: Line 222:
  }}</ref>
  }}</ref>


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


== उदाहरण ==
== उदाहरण ==
निम्नलिखित आयरनपाइथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।
निम्नलिखित आयरनपायथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड अनुप्रयोग डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट अनुप्रयोग द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।<syntaxhighlight>
 
from BookService import BookDictionary
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks()
                                    if "Booker Prize" in book.Author.MajorAwards]
</syntaxhighlight>
                                
                                


  from BookService import BookDictionary
  '''from BookService import BookDictionary
  booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks()  
  booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks()  
                                     if "Booker Prize" in book.Author.MajorAwards]
                                     if "Booker Prize" in book.Author.MajorAwards]'''




Line 230: Line 241:




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


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


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


निम्न स्क्रिप्ट एक सरल हैलो वर्ल्ड संदेश बनाने के लिए .नेट रूपरेखा का उपयोग करती है।<syntaxhighlight>
import clr
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Windows.Forms")


from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")
Performance
</syntaxhighlight>'''import clr'''


'''clr.AddReference("System.Windows.Forms")'''


'''<br />'''


'''<br />'''


from System.Windows.Forms import MessageBox
'''from System.Windows.Forms import MessageBox'''


MessageBox.Show("Hello World")
'''MessageBox.Show("Hello World")'''


== प्रदर्शन ==
== प्रदर्शन ==
सी पायथन की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, पाइथन का संदर्भ कार्यान्वयन, उपयोग किए गए सटीक बेंचमार्क पर निर्भर करता है। [[थ्रिस्टोन]] स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपाइथन [[सीपीथॉन|सीपाइथन]] से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर अच्छा है।<ref>{{cite web
सी पायथन की तुलना में आयरनपायथन की प्रदर्शन विशेषताएँ, पाइथन का संदर्भ कार्यान्वयन, उपयोग किए गए स्पष्ट बेंचमार्क पर निर्भर करता है। [[थ्रिस्टोन]] स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपायथन [[सीपीथॉन|सीपाइथन]] से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर अच्छा है।<ref>{{cite web
| url=http://ironpython.codeplex.com/Wiki/View.aspx?title=IP26RC1VsCPy26Perf&referringTitle=Home
| url=http://ironpython.codeplex.com/Wiki/View.aspx?title=IP26RC1VsCPy26Perf&referringTitle=Home
| title=IronPython Performance Report
| title=IronPython Performance Report
Line 257: Line 273:
}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>


आयरनपाइथन पाइथन प्रोग्राम्स में अच्छा प्रदर्शन कर सकता है जो थ्रेड्स या मल्टीपल कोर का उपयोग करते हैं, क्योंकि इसमें [[समय-समय पर संकलन]] कंपाइलर है, और इसलिए भी कि इसमें [[ग्लोबल इंटरप्रेटर लॉक]] नहीं है।<ref>{{cite web
आयरनपायथन पाइथन प्रोग्राम्स में अच्छा प्रदर्शन कर सकता है जो थ्रेड्स या मल्टीपल कोर का उपयोग करते हैं, क्योंकि इसमें [[समय-समय पर संकलन]] कंपाइलर है, और इसलिए भी कि इसमें [[ग्लोबल इंटरप्रेटर लॉक]] नहीं है।<ref>{{cite web
| url=https://wiki.python.org/moin/IronPython
| url=https://wiki.python.org/moin/IronPython
| title=IronPython at python.org
| title=IronPython at python.org
Line 268: Line 284:
== यह भी देखें ==
== यह भी देखें ==
{{Portal|Free and open-source software|Computer programming}}
{{Portal|Free and open-source software|Computer programming}}
* [[बू (प्रोग्रामिंग भाषा)]] - .नेट रूपरेखा के लिए एक भाषा और पायथन-प्रेरित सिंटैक्स के साथ मोनो और सी शार्प (प्रोग्रामिंग भाषा) | सी # और [[रूबी (प्रोग्रामिंग भाषा)]] से उधार ली गई सुविधाएँ
* [[बू (प्रोग्रामिंग भाषा)]] - .नेट रूपरेखा के लिए एक भाषा और पायथन-प्रेरित वाक्य-विन्यास के साथ मोनो और सी शार्प (प्रोग्रामिंग भाषा), सी # और [[रूबी (प्रोग्रामिंग भाषा)]] से उधार ली गई सुविधाएँ
* [[कोबरा (प्रोग्रामिंग भाषा)]]
* [[कोबरा (प्रोग्रामिंग भाषा)]]
*लोहा योजना
*आयरन योजना
* ज्योथन - [[जावा वर्चुअल मशीन]] के लिए पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन
* ज्योथन - [[जावा वर्चुअल मशीन]] के लिए पायथन (प्रोग्रामिंग भाषा) का कार्यान्वयन
* [[साइथन]]
* [[साइथन]]
* [[PyPy]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[PyPy|प्य्प्य]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[ताओ फ्रेमवर्क|ताओ रूपरेखा]]
* [[ताओ फ्रेमवर्क|ताओ रूपरेखा]]
* [[Unladen Swallow]] – सी पायथन की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM]]-आधारित जस्ट-इन-टाइम संकलन|जस्ट-इन-टाइम कंपाइलर का उपयोग करके बेहतर प्रदर्शन प्रदान करना है
* [[Unladen Swallow|अनलादेन निगलना]] – सी पायथन की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM|एलएलवीएम]]-आधारित जस्ट-इन-टाइम कंपाइलर का उपयोग करके उत्तम प्रदर्शन प्रदान करना है
{{Clear}}





Revision as of 12:49, 28 February 2023

IronPython
Original author(s)Jim Hugunin, Microsoft
Developer(s)Dino Viehland,
.NET Foundation
Initial releaseSeptember 5, 2006; 19 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 के रूप में अपडेट किया गया, सी पायथन 2.5 को लक्षित करता है।[9] आयरनपायथन 2.0.3 केवल .नेट रूपरेखा 3.5 तक संगत है।
  • रिलीज़ 2.6, 11 दिसंबर, 2009 को रिलीज़ हुई और 12 अप्रैल, 2010 को अपडेट की गई, सी पायथन 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 को प्रचलित किया गया था और यह सी पायथन 2.7 को लक्षित करता है।[12]
  • रिलीज 2.7.2.1 13 मार्च 2012 को प्रचलित किया गया था। यह ज़िप फ़ाइल स्वरूप पुस्तकालय, एसक्यू लाइट, और संकलित निष्पादनयोग्य के लिए समर्थन को सक्षम बनाता है।[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 को रिलीज़ किया गया था और इसमें .नेट कोर 3.1 समर्थन में जोड़ा गया है।[20]
  • रिलीज़ 2.7.11 को 17 नवंबर, 2020 को रिलीज़ किया गया था और .नेट 5 पर चलते समय आने वाली समस्याओं का समाधान करता है।
  • रिलीज़ 2.7.12 को 21 जनवरी, 2022 को रिलीज़ किया गया था और यह .नेट 6 की समस्याओं को हल करती है और .नेट कोर 2.1 के लिए समर्थन हटाती है[21]


सी पायथन के साथ अंतर

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

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


सिल्वरलाइट

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

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

// DLR initialization script.
<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>

// Client-side script passed to IronPython and Silverlight.
<script type="text/python">
    window.Alert("Hello from Python")
</script>

// DLR initialization script.

<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>



// Client-side script passed to IronPython and Silverlight.

<script type="text/python">

window.Alert("Hello from Python") </script>




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

लाइसेंस

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

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

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

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

उदाहरण

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

from BookService import BookDictionary
 
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks() 
                                    if "Booker Prize" in book.Author.MajorAwards]


from BookService import BookDictionary
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks() 
                                    if "Booker Prize" in book.Author.MajorAwards]



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

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

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

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

import clr
clr.AddReference("System.Windows.Forms")

from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")
Performance

import clr

clr.AddReference("System.Windows.Forms")



from System.Windows.Forms import MessageBox

MessageBox.Show("Hello World")

प्रदर्शन

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

आयरनपायथन पाइथन प्रोग्राम्स में अच्छा प्रदर्शन कर सकता है जो थ्रेड्स या मल्टीपल कोर का उपयोग करते हैं, क्योंकि इसमें समय-समय पर संकलन कंपाइलर है, और इसलिए भी कि इसमें ग्लोबल इंटरप्रेटर लॉक नहीं है।[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.