അയൺപൈത്തൺ

ഡോട്ട്നെറ്റ് ഫ്രെയിംവർക്ക് ആൻഡ് മോണോ ലക്ഷ്യമാക്കി പൈത്തൺ പ്രോഗ്രാമിങ് ഭാഷയുടെ ഒരു പ്രയോഗമാണ് **അയൺ പൈത്തൺ**. ജിം ഹുഗുനിൻ ഈ പ്രോജക്റ്റ് സൃഷ്ടിക്കുകയും 2006 സെപ്റ്റംബറിലാണ് പുറത്തിറങ്ങിയ പതിപ്പ് 1.0 വരെ സജീവമായി പങ്കുവെക്കുകയും ചെയ്തത്. അതിനുശേഷം, മൈക്രോസോഫ്റ്റിന്റെ 2.7 ബീറ്റ 1 പതിപ്പ് വരെ ഒരു ചെറിയ സംഘം അതിനെ പരിപാലിച്ചിരുന്നു. 2010 അവസാനത്തോടെ, മൈക്രോസോഫ്റ്റിൻറെ അയൺപൈത്തൻ (അതിൻറെ സഹോദരി പ്രൊജക്റ്റാണ് അയൺ റുബി) മൈക്രോസോഫ്റ്റ് ഉപേക്ഷിച്ചു, അതിനുശേഷം ഹുഗുനിൻ ഗൂഗിളിൽ ജോലി ചെയ്യാൻ പോയി. അയൺ പൈത്തൺ 2.0 2008 ഡിസംബർ 10 ന് പുറത്തിറങ്ങി. നിലവിൽ ഈ പ്രോജക്ട് ഗിറ്റ്ഹബ്ബിൽ ഒരു സംഘം സന്നദ്ധപ്രവർത്തകർ ചേർന്ന് പ്രവർത്തിക്കുന്നു. സ്വതന്ത്രവും ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ് വെയറുകളാണ് ഇത്. പൈത്തൺ ടൂൾസ് ഫോർ വിഷ്വൽ സ്റ്റുഡിയോ ഉപയോഗിച്ച് നടപ്പിലാക്കാൻ കഴിയും,സൗജന്യമായി  സ്വതന്ത്രവുമായ ഒരു വിപുലീകരണം, ഒറ്റപ്പെട്ട, മൈക്രോസോഫ്റ്റ് വിഷ്വൽ സ്റ്റുഡിയോ ഐഡിഇ(IDE)യുടെ വാണിജ്യ പതിപ്പുകളാണ്.

അയൺപൈത്തൺ പൂർണ്ണമായി സി ഷാർപിൽ(C#) എഴുതുന്നു, ചില കോഡ് പൈത്തണിൽ എഴുതപ്പെട്ട കോഡ് ജെനേറ്ററായിരിക്കും.

ഡൈനാമിക് ഭാഷാ റൺടൈമിൻറെ(ഡിഎൽആർ)ഉന്നത ശ്രേണിയിൽ അയൺ പൈത്തൺ നടപ്പിലാക്കുന്നു, ഡൈനാമിക് ടൈപ്പിംഗ്, ഡൈനാമിക് രീതി ഡിസ്പാച്ച് എന്നിവ ലഭ്യമാക്കുന്ന സാധാരണ ലാംഗ്വേജ് ഇൻഫ്രാസ്ട്രക്ചറിൻറെ ഉന്നത ശ്രേണിയിൽ പ്രവർത്തിക്കുന്ന ഒരു ലൈബ്രറി, മറ്റു കാര്യങ്ങളുടെ കൂടെ, ചലനാത്മക ഭാഷകൾക്കായി ഉപയോഗിക്കുന്നു. ഡിഎൽആർ .നെറ്റ് ഫ്രെയിംവർക്ക്‌ 4.0 യുടെ ഭാഗമാണ്. 2009 ൽ 2.4 വേർഷൻ മുതൽ മോണോയുടെ ഭാഗമാണ് ഡിഎൽആർ.  ഡിഎൽആർ പഴയ സിഎൽഐ (CLI) നടപ്പിലാക്കലുകളിൽ ഒരു ലൈബ്രറിയായി ഉപയോഗിക്കാം.

## സ്റ്റാറ്റസും റോഡ്മാപ്പും
* 2008, ഡിസംബർ 10 ന് പുറത്തിറക്കിയ റിലീസ് 2.0, 2009 ഒക്ടോബർ 23 ന് 2.0.3 ആയി പരിഷ്കരിച്ചു, സിപൈത്തൺ 2.5 ആണ് ലക്ഷ്യമിട്ടത്.  അയൺപൈത്തൺ 2.0.3. .നെറ്റ് ഫ്രെയിംവർക്ക്‌ 3.5 ന് അനുയോജ്യമാണ്.
* റിലീസ് 2.6, 2009 ഡിസംബർ 11 ന് പുറത്തിറങ്ങി, ഏപ്രിൽ 12, 2010 ന് അപ്ഡേറ്റ് ചെയ്തു, സിപൈത്തൺ(CPython)2.6-നെ ലക്ഷ്യമിടുന്നു.അയൺപൈത്തൺ 2.6.1 പതിപ്പുകൾ ബൈനറി അനുയോജ്യമാണ്.നെറ്റ് ഫ്രെയിംവർക്ക് 4.0. അയൺപൈത്തൺ 2.6.1-ൽ കംപൈൽ ചെയ്യുകയും, അതിൻറെ ഉറവിടത്തിൽ നിന്നും പ്രവർത്തിപ്പിക്കുന്നു. .നെറ്റ് ഫ്രെയിംവർക്ക് 3.5. 2010 ഒക്ടോബർ 21 ന് പുറത്തിറക്കിയ അയൺപൈത്തൺ 2.6.2, .നെറ്റ് ഫ്രെയിംവർക്ക് 4.0, .നെറ്റ് ഫ്രെയിംവർക്ക് 3.5 എന്നിവ രണ്ടും ബൈനറിക്ക് അനുയോജ്യമാണ്.
* റിലീസ് 2.7 2011 മാർച്ച് 12 നാണ് പുറത്തിറങ്ങിയത്, സിപൈത്തൺ 2.7 നെ ലക്ഷ്യമാക്കുന്നു.
* റിലീസ് 2.7.1 2011 ഒക്ടോബർ 21 നാണ് പുറത്തിറങ്ങിയത്, ഇത് സിപൈത്തൺ 2.7 നെ ലക്ഷ്യമാക്കുന്നു. 
* റിലീസ് 2.7.2.1 2012 മാർച്ച് 13 ന് പുറത്തിറങ്ങി. സിപ് ഫയൽ ഫോർമാറ്റ് ലൈബ്രറികൾ, എസ്ക്യൂലൈറ്റ്(SQLite), കമ്പൈൽ ചെയ്ത എക്സിക്യൂട്ടബിളുകൾ എന്നിവ പിന്തുണയ്ക്കാൻ ഇത് സഹായിക്കുന്നു.
* റിലീസ് 2.7.4 2013 സെപ്റ്റംബർ ഏഴിന് പുറത്തിറങ്ങി.
* റിലീസ് 2.7.5 ഡിസംബർ 6, 2014 ൽ റിലീസ് ചെയ്യപ്പെട്ടു, കൂടാതെ കൂടുതൽ ബഗ് പരിഹാരങ്ങൾ ഉൾക്കൊള്ളുന്നു.
* റിലീസ് 2.7.6 ഓഗസ്റ്റ് 21, 2016 ൽ ആണ് ഇറങ്ങിയത് ബഗ് പരിഹരിക്കൽ മാത്രം പരിഗണിക്കപ്പെട്ടു.
* റിലീസ് 2.7.7 ഡിസംബറിൽ 7, 2016 ൽ റിലീസ് ചെയ്തു, ഇതിൽ ബഗ് പരിഹാരങ്ങൾ മാത്രമേയുള്ളൂ.
* റിലീസ് 2.7.8 ഫെബ്രുവരി 16, 2012 ന് പുറത്തിറങ്ങി. ബഗ് പരിഹാരങ്ങളും, പുന: സംഘടിപ്പിച്ച കോഡും, അപ്ഡേറ്റ് ടെസ്റ്റ് ഇൻഫ്രാസ്ട്രക്ചറും (ലിനക്സിൽ ലിനക്സിനുള്ള നിർണ്ണായകമായ പരിശോധന ഉൾപ്പെടെ) ഉണ്ട്. ഇത് .നെറ്റ്കോർ(.NETCore) പിന്തുണയ്ക്കുന്ന ആദ്യ പ്രകാശനം കൂടിയാണ്.

## സിപൈത്തണിൽ നിന്നുള്ള വ്യത്യാസങ്ങൾ
പൈത്തൺ റഫറൻസ് നടപ്പിലാക്കിലുകളിൽ സിപൈത്തൺ, അയൺപൈത്തൺ എന്നിവയ്ക്കിടയിൽ ചില വ്യത്യാസങ്ങൾ ഉണ്ട്. അയൺപൈത്തണിൽ നിർമിച്ചിരിക്കുന്ന ചില പദ്ധതികൾ സിപൈത്തണിൽ പ്രവർത്തിക്കുവാൻ സാധിക്കില്ല.ഇതിനു പുറമേ, സിയിൽ (ഉദാ. നംപൈ) നടപ്പിലാക്കുന്ന ഭാഷയിലേക്ക് വിപുലീകരണങ്ങളെ ആശ്രയിക്കുന്ന സിപൈത്തൺ പ്രയോഗങ്ങൾ അയൺപൈത്തണുമായി പൊരുത്തപ്പെടുന്നില്ല.
## സിൽവർലൈറ്റ്
സിൽവർലൈറ്റിനെ അയൺപൈത്തൺ പിന്തുണയ്ക്കുന്നു. ജാവാസ്ക്രിപ്റ്റ് എഞ്ചിനു സമാനമായി ബ്രൗസറിലെ ഒരു സ്ക്രിപ്റ്റിംഗ് എഞ്ചിനായി ഇത് ഉപയോഗിക്കാം.ലളിതമായ ക്ലയന്റ് സൈഡ് ജാവാസ്ക്രിപ്റ്റ് സ്ക്രിപ്റ്റുകളെപ്പോലെ `<script>`ടാഗിൽ അയൺപൈത്തൺ സ്ക്രിപ്റ്റുകൾ കടന്നുപോകുന്നു. എംബഡഡ് എക്സ്എഎംഎൽ(XAML) മാർക്ക്അപ്പ് പരിഷ്ക്കരിക്കാനും സാധിക്കും.

ഇതിനു പിന്നിലുള്ള സാങ്കേതികവിദ്യയെ ഗെസ്റ്റാൽറ്റ് എന്നാണ് വിളിക്കുന്നത്.

```html4strict
//DLR initiation 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>
```

അയൺറൂബി(IronRuby)യുടെയും പ്രവർത്തനങ്ങൾ അയൺപൈത്തണിൻറെ പോലെതന്നെയാണ്.
## അനുമതിപത്രം
കോമൺ പബ്ലിക് ലൈസൻസിനു കീഴിൽ പതിപ്പ് 0.6 അയൺ പൈത്തൺ റിലീസ് ചെയ്തു.2004 ആഗസ്തിലാണ് പ്രോജക്ട് ലീഡ് റിക്രൂട്ട് ചെയ്തതിനുശേഷം, മൈക്രോസോഫ്റ്റിൻറെ ഷെയർഡ് ഉറവിട സംരംഭത്തിന്റെ ഭാഗമായി അയൺപൈത്തൺ ലഭ്യമാക്കി. ഈ ലൈസൻസ് ഒഎസ്ഐ(OSI)അംഗീകരിച്ചതല്ല, എന്നാൽ ഇത് ഓപ്പൺ സോഴ്സ് ഡെഫിനിഷനെ സാക്ഷ്യപ്പെടുത്തി എന്ന് അവകാശപ്പെടുന്നു.2.0 ആൽഫാ റിലീസ് ഉപയോഗിച്ച് ലൈസൻസ് മൈക്രോസോഫ്റ്റ് പബ്ലിക് ലൈസൻസ് ആയി മാറി,ഓപ്പൺ സോഴ്സ് എന്നതിൻറെ നിർവ്വചനം അനുസരിച്ചുള്ള ഓപ്പൺ സോഴ്സ് ഇനിഷ്യേറ്റീവ് ഉറപ്പുനൽകുന്നു. അപ്പാച്ചെ ലൈസൻസ് 2.0 പ്രകാരം ഏറ്റവും പുതിയ പതിപ്പുകൾ പുറത്തിറങ്ങുന്നു.
## സമ്പർക്കമുഖ വിപുലീകരണം
.നെറ്റ് ഭാഷയിൽ എഴുതപ്പെട്ട ആപ്ലിക്കേഷൻ ചട്ടക്കൂടിലേക്ക് വിപുലീകരിക്കുന്ന പാളിയാണ് അതിൻറെ സവിശേഷതകളിൽ പ്രധാന ഗുണങ്ങളിൽ ഒന്ന്. നിലവിലുള്ള .നെറ്റ് ആപ്ലിക്കേഷൻ ചട്ടക്കൂടിലേക്ക് ഒരു അയൺപൈത്തൺ ഇൻറർ‌പ്രെട്ടർ സംയോജിപ്പിക്കാൻ താരതമ്യേന ലളിതമാണ്. ഒരിക്കൽ, ഡൗൺസ്ട്രീം ഡവലപ്പർമാർക്ക്, അയൺപൈത്തണിൽ എഴുതപ്പെട്ട സ്ക്രിപ്റ്റുകൾ ഉപയോഗിക്കാൻ കഴിയും, അത് അതിൻറെ ചട്ടക്കൂടിലുള്ള .നെറ്റ് ഒബ്ജക്റ്റുമായി ഇടപഴകുകയും, മാത്രമല്ല അതിൻറെ ചട്ടക്കൂടിലെ സമ്പർക്കമുഖ (interface) പ്രവർത്തനക്ഷമത വിപുലപ്പെടുത്തുന്നു.

അയൺപൈത്തൺ വളരെ വിശാലമായ പ്രതിഫലനമാണ് ഉപയോഗിക്കുന്നത്. ഒരു .നെറ്റ് ഒബ്ജക്റ്റിലേക്കുള്ള റഫറൻസിൽ കടന്നുപോകുമ്പോൾ, ആ വസ്തുവിന് ലഭ്യമായ രീതികളും അത് യാന്ത്രികമായി ഇറക്കുമതി ചെയ്യും. ഒരു അയൺപൈത്തൺ സ്ക്രിപ്റ്റിനുള്ളിൽ നിന്നുള്ള .നെറ്റ് വസ്തുക്കളുമായി പ്രവർത്തിക്കുമ്പോൾ ഇത് വളരെ അവബോധജന്യമായ അനുഭവം നൽകുന്നു.
## ഉദാഹരണങ്ങൾ
താഴെക്കൊടുത്തിരിക്കുന്ന അയൺപൈത്തൺ സ്ക്രിപ്റ്റ് .നെറ്റ് ഫ്രേയിംവർക്ക് വസ്തുക്കൾ കൈകാര്യം ചെയ്യുന്നു. ഈ സ്ക്രിപ്റ്റ് ഒരു മൂന്നാം-കക്ഷി ക്ലയൻറ്-സൈഡ് ആപ്ലിക്കേഷൻ ഡവലപ്പർ നൽകുന്നതും സെർവർ-സൈഡ് ചട്ടക്കൂടിനുമായി ഒരു ഇൻറർഫേസിലൂടെ കടന്നുപോകാൻ കഴിയുന്നു. ക്ലയൻറ് ആപ്ലിക്കേഷൻ ആവശ്യമുള്ള വിശകലനങ്ങളെ പിന്തുണയ്ക്കുന്നതിന് ഇൻറർഫെയിസോ സെർവർ സൈഡ് കോഡോ പരിഷ്കരിച്ചിട്ടില്ല എന്നത് ശ്രദ്ധിക്കുക.

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

ഈ കേസിൽ, .നെറ്റ് ഫ്രെയിംവർക്ക് ഒരു ക്ലാസ് നടപ്പിലാക്കുന്നു, **ബുക്ക്സർവീസ്** (BookDService) എന്ന് വിളിക്കുന്ന ഒരു മൊഡ്യൂളിലെ **ബുക്ക്ഡിക്ഷണറി** (BookDictionary) അയൺപൈത്തൺ സ്ക്രിപ്റ്റുകൾ അയയ്ക്കാനും നടപ്പിലാക്കാനും കഴിയുന്ന ഒരു ഇൻറർഫേസ് പ്രസിദ്ധീകരിക്കുന്നു.

ആ ഇൻറർഫെയിസിലേക്ക് അയയ്ക്കുന്ന ഈ സ്ക്രിപ്റ്റ്, ചട്ടക്കൂടിനുസരിച്ചു സൂക്ഷിക്കുന്ന പുസ്തകങ്ങളുടെ മുഴുവൻ ലിസ്റ്റും ഒപ്പം ബുക്കർ പ്രൈസ് നേടിയ എഴുത്തുകാരുടെ രചനകൾ തിരഞ്ഞെടുക്കുന്നു. 

രസകരമായ വസ്തുത എന്നത് യഥാർത്ഥ വിശകലനം എഴുതുന്നതിനുള്ള ഉത്തരവാദിത്തമാണ് ക്ലൈൻറ്-ഡെവലപ്പർ വികസിപ്പിച്ചത്. സെർവർ കൈകാര്യം ചെയ്യുന്ന ഡേറ്റയുടെ ആക്സസ് നൽകുന്നത് സെർവർ സൈഡ് ഡവലപ്പറിൻറെ ആവശ്യം വളരെ കുറവാണ്. സങ്കീർണ്ണമായ ആപ്ലിക്കേഷൻ ചട്ടക്കൂടുകൾ വിന്യസിക്കുന്നതിനും പരിപാലിക്കുന്നതിനും ഈ ഡിസൈൻ പാറ്റേൺ വളരെ എളുപ്പമാക്കുന്നു.

ഒരു ലളിതമായ ഹലോ വേൾഡ് സന്ദേശം സൃഷ്ടിക്കുന്നതിന് ഇനിപ്പറയുന്ന സ്ക്രിപ്റ്റ് .നെറ്റ് ഫ്രെയിംവർക്ക് ഉപയോഗിക്കുന്നു.

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

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

## പ്രകടനം
സിപൈത്തണെ അപേക്ഷിച്ച് അയൺപൈത്തണിൻറെ പ്രകടന പ്രത്യേകത പൈത്തണിൻറെ കൃത്യമായ ബെഞ്ച്മാർക്കനുസരിച്ചാണ് റഫറൻസ് നിർവ്വഹണം ഉപയോഗിച്ചിരിക്കുന്നത്. പൈത്തൺ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് എടുത്ത മിക്ക ബെഞ്ച്മാർക്കുകളിലും സിപൈത്തണിനെക്കാൾ മോശമായ രീതിയിൽ അയൺ പൈത്തൺ പ്രവർത്തിക്കുന്നു, എന്നാൽ പൈസ്റ്റോൺ(PyStone)സ്ക്രിപ്റ്റിനൊപ്പം പ്രവർത്തിക്കുന്ന മറ്റ് ബെഞ്ച്മാർക്കുകൾ മികച്ചതാണ്. ഗ്ലോബൽ ഇൻറർപ്രട്ടർ ലോക്ക് ഇല്ലാത്തതു കാരണം ത്രെഡുകളോ അല്ലെങ്കിൽ ഒന്നിലധികം കോറുകളോ ഉപയോഗിക്കുന്ന പൈത്തൺ പ്രോഗ്രാമുകളിൽ ജെഐടി (JIT) ഉള്ളതിനാൽ അയൺപൈത്തൺ മെച്ചപ്പെട്ടേക്കാം.
## ഇതും കാണുക

* ബൂ(Boo) പ്രോഗ്രാമിംഗ് ഭാഷ സി#,റൂബി എന്നിവയിൽ നിന്നും കടമെടുത്ത പൈത്തൺ-ഇൻസ്പൈൻഡ് സിൻറാക്സും സവിശേഷതകളും ഉള്ളതും, .നെറ്റ് ഫ്രെയിംവർക്ക്, മോണോ എന്നീ ഭാഷകളിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതുമാണ്.
* കോബ്ര(പ്രോഗ്രാമിംഗ് ലാങ്വേജ്)
* അയൺലിപ്സ്
* അയൺറൂബി
* അയൺസ്കീം
* ജൈത്തൺ - ജാവ അയഥാർത്ഥ യന്ത്രത്തി(Virtual Machine)നുള്ള പൈത്തൺ നടപ്പിലാക്കുന്നു.
* സൈത്തൺ(Cython)
* പൈപൈ(PyPy) - പൈത്തൺ പ്രോഗ്രാമിങ് ഭാഷയ്ക്കുള്ള ഒരു സ്വയം ഹോസ്റ്റിംഗ് ഇൻറർപ്രെട്ടർ
* ടാവോ(Tao)ചട്ടക്കൂട്
* അൺലാഡൻ സ്വാളോ(Unladen Swallow) - ഒരു എൽഎൽവിഎം(LLVM) അടിസ്ഥാനമാക്കിയുള്ള ഇൻ-ടൈം കമ്പൈലർ ഉപയോഗിച്ചുള്ള മെച്ചപ്പെട്ട പ്രവർത്തനം ലഭ്യമാക്കാൻ ലക്ഷ്യമിട്ട സിപൈത്തണിൻറെ ഒരു (ഇപ്പോൾ പ്രവർത്തനരഹിതമായ) ബ്രാഞ്ച്.

## അവലംബം

വർഗ്ഗം:പൈത്തൺ (പ്രോഗ്രാമിങ്ങ് ഭാഷ)