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

From Vigyanwiki
No edit summary
No edit summary
Line 177: Line 177:


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




Line 222: Line 225:
  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 245: Line 251:


== प्रदर्शन ==
== प्रदर्शन ==
सी पायथन की तुलना में आयरनपाइथन की प्रदर्शन विशेषताएँ, पाइथन का संदर्भ कार्यान्वयन, उपयोग किए गए सटीक बेंचमार्क पर निर्भर करता है। [[थ्रिस्टोन]] स्क्रिप्ट के साथ लिए गए अधिकांश बेंचमार्क पर आयरनपाइथन [[सीपीथॉन]] से खराब प्रदर्शन करता है लेकिन अन्य बेंचमार्क पर अच्छा है।<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 251: Line 257:
}}{{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

Revision as of 10:31, 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 के रूप में अपडेट किया गया, सी पायथन 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>



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

लाइसेंस

संस्करण 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]



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

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

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

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

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.