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

From Vigyanwiki
No edit summary
No edit summary
Line 45: Line 45:


== स्थिति और रोडमैप ==
== स्थिति और रोडमैप ==
* रिलीज़ 2.0, 10 दिसंबर, 2008 को जारी किया गया, और 23 अक्टूबर, 2009 को 2.0.3 के रूप में अपडेट किया गया, CPython 2.5 को लक्षित करता है।<ref>{{cite web
* रिलीज़ 2.0, 10 दिसंबर, 2008 को जारी किया गया, और 23 अक्टूबर, 2009 को 2.0.3 के रूप में अपडेट किया गया, सी पायथन 2.5 को लक्षित करता है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/30416
| url=http://ironpython.codeplex.com/releases/view/30416
| title=2.0.3
| title=2.0.3
Line 54: Line 54:
| url-status=dead
| url-status=dead
}}</ref> आयरनपायथन 2.0.3 केवल .नेट रूपरेखा 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 को अपडेट की गई, सी पायथन 2.6 को लक्षित करती है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/36280
| url=http://ironpython.codeplex.com/releases/view/36280
| title=2.6
| title=2.6
Line 72: Line 72:
| url-status=dead
| url-status=dead
}}</ref>
}}</ref>
* रिलीज 2.7.1 21 अक्टूबर, 2011 को जारी किया गया था और यह CPython 2.7 को लक्षित करता है।<ref>{{cite web
* रिलीज 2.7.1 21 अक्टूबर, 2011 को जारी किया गया था और यह सी पायथन 2.7 को लक्षित करता है।<ref>{{cite web
| url=http://ironpython.codeplex.com/releases/view/62475
| url=http://ironpython.codeplex.com/releases/view/62475
| title=2.7.1
| title=2.7.1
Line 81: Line 81:
| 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 99: Line 99:
| 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 108: Line 108:
| url-status=dead
| url-status=dead
}}</ref>
}}</ref>
* रिलीज़ 2.7.6 को 21 अगस्त 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स शामिल हैं।<ref>{{cite web
* रिलीज़ 2.7.6 को 21 अगस्त 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स सम्मिलित हैं।<ref>{{cite web
| url=https://github.com/IronLanguages/main/releases/tag/ipy-2.7.6.3
| url=https://github.com/IronLanguages/main/releases/tag/ipy-2.7.6.3
| title=2.7.6
| title=2.7.6
| publisher=github.com
| publisher=github.com
| access-date=2016-08-21}}</ref>
| access-date=2016-08-21}}</ref>
* रिलीज़ 2.7.7 को 7 दिसंबर, 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स शामिल हैं।<ref>{{cite web
* रिलीज़ 2.7.7 को 7 दिसंबर, 2016 को रिलीज़ किया गया था और इसमें केवल बग फिक्स सम्मिलित हैं।<ref>{{cite web
| url=https://github.com/IronLanguages/main/releases/tag/ipy-2.7.7
| url=https://github.com/IronLanguages/main/releases/tag/ipy-2.7.7
| title=2.7.7
| title=2.7.7
| 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 को रिलीज़ किया गया था और इसमें .नेट 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 को रिलीज़ किया गया था और इसमें .नेट कोर 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>




=== CPython === के साथ अंतर
 
=== === सी पायथन === के साथ अंतर ===
{{expand section|date=July 2012}}
{{expand section|date=July 2012}}
पायथन संदर्भ कार्यान्वयन CPython और आयरनपाइथन के बीच कुछ अंतर हैं।<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> आयरनपाइथन के शीर्ष पर बनी कुछ परियोजनाओं को CPython के तहत काम नहीं करने के लिए जाना जाता है।<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 149: Line 150:
| archive-date=2008-08-30
| archive-date=2008-08-30
| url-status=dead
| url-status=dead
}}</ref> इसके विपरीत, CPython एप्लिकेशन जो C में प्रयुक्त की गई भाषा के एक्सटेंशन पर निर्भर करते हैं, वे आयरनपाइथन के साथ संगत नहीं हैं
}}</ref> इसके विपरीत, सी पायथन एप्लिकेशन जो C में प्रयुक्त की गई भाषा के एक्सटेंशन पर निर्भर करते हैं, वे आयरनपाइथन के साथ संगत नहीं हैं


,<ref>{{cite web
,<ref>{{cite web
Line 156: Line 157:
| 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|एक्स एएमएल]] मार्कअप को संशोधित करना भी संभव है।


इसके पीछे की तकनीक को गेस्टाल्ट कहा जाता है।{{Citation needed|date=August 2009}}
इसके पीछे की तकनीक को गेस्टाल्ट कहा जाता है।{{Citation needed|date=August 2009}}


<वाक्यविन्यास लैंग = html4सख्त>
// 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>


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


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


<स्क्रिप्ट प्रकार = पाठ / अजगर>
'''<स्क्रिप्ट प्रकार = पाठ / अजगर>'''
    विंडो। अलर्ट (पायथन से हैलो)
</स्क्रिप्ट>
'''</स्क्रिप्ट>'''


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


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


== लाइसेंस ==
== लाइसेंस ==
संस्करण 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 190: Line 198:
  |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 200: Line 208:
  | date = 2007-04-28
  | date = 2007-04-28
  | access-date = 2007-05-13
  | access-date = 2007-05-13
}}</ref> जिसे ओएसआई ने मंजूरी दे दी है। नवीनतम संस्करण Apache लाइसेंस 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 217: Line 225:
निम्नलिखित आयरनपाइथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।
निम्नलिखित आयरनपाइथन स्क्रिप्ट .नेट रूपरेखा ऑब्जेक्ट्स में हेरफेर करती है। यह स्क्रिप्ट एक तृतीय-पक्ष क्लाइंट-साइड एप्लिकेशन डेवलपर द्वारा आपूर्ति की जा सकती है और एक इंटरफ़ेस के माध्यम से सर्वर-साइड रूपरेखा में पास की जा सकती है। ध्यान दें कि क्लाइंट एप्लिकेशन द्वारा आवश्यक विश्लेषणों का समर्थन करने के लिए न तो इंटरफ़ेस और न ही सर्वर-साइड कोड को संशोधित किया गया है।


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


Line 244: Line 257:


== प्रदर्शन ==
== प्रदर्शन ==
CPython की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, Python का संदर्भ कार्यान्वयन, उपयोग किए गए सटीक बेंचमार्क पर निर्भर करता है। [[थ्रिस्टोन]] स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपाइथन [[सीपीथॉन]] से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर बेहतर है।<ref>{{cite web
सी पायथन की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, Python का संदर्भ कार्यान्वयन, उपयोग किए गए सटीक बेंचमार्क पर निर्भर करता है। [[थ्रिस्टोन]] स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपाइथन [[सीपीथॉन]] से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर बेहतर है।<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 268: Line 281:
* [[PyPy]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[PyPy]] - पायथन प्रोग्रामिंग भाषा के लिए एक स्व-होस्टिंग दुभाषिया
* [[ताओ फ्रेमवर्क|ताओ रूपरेखा]]
* [[ताओ फ्रेमवर्क|ताओ रूपरेखा]]
* [[Unladen Swallow]] – CPython की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM]]-आधारित जस्ट-इन-टाइम संकलन|जस्ट-इन-टाइम कंपाइलर का उपयोग करके बेहतर प्रदर्शन प्रदान करना है
* [[Unladen Swallow]] – सी पायथन की एक (अब निष्क्रिय) शाखा जिसका उद्देश्य [[LLVM]]-आधारित जस्ट-इन-टाइम संकलन|जस्ट-इन-टाइम कंपाइलर का उपयोग करके बेहतर प्रदर्शन प्रदान करना है
{{Clear}}
{{Clear}}



Revision as of 10:19, 27 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>-टैग। तब एम्बेडेड एक्स एएमएल मार्कअप को संशोधित करना भी संभव है।

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

// 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>

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

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

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

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

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

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

लाइसेंस

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

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

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

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

उदाहरण

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

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

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

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

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

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

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

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

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

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

आयात सीएलआर

clr.AddReference (System.Windows.Forms)

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

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

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

प्रदर्शन

सी पायथन की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, 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.