IronPython
IronPython, Python programlama dilinin .NET Framework ve Mono'yu hedefleyen bir gerçeklemesidir. Proje Jim Hugunin tarafından başlatılmış, Hugunin 5 Eylül 2006'da yayınlanan 1.0 sürümüne kadar aktif olarak katkıda bulunmuştur.[3] IronPython 2.0 10 Aralık 2008'de piyasaya sürüldü.[4] 1.0 sürümünden sonra, 2.7 Beta 1 sürümüne kadar Microsoft'ta küçük bir ekip tarafından geliştirildi. Hugunin'in Google'da çalışmaya başlamasının ardından Microsoft, IronPython'u (ve kardeş projesi IronRuby'yi) geliştirmeyi 2010 yılının sonlarında sonlandırdı.[5] Proje şu anda GitHub'da bir grup gönüllü tarafından yürütülmektedir . Ücretsiz ve açık kaynaklı bir yazılımdır ve Microsoft Visual Studio IDE için ücretsiz ve açık kaynaklı bir uzantı olan Visual Studio için Python Tools (PTVS) ile uygulanabilir.[6][7]
Orijinal yazar(lar) | Jim Hugunin, Microsoft |
---|---|
Geliştirici(ler) | Dino Viehland, .NET Foundation |
İlk yayınlanma | 5 Eylül 2006[1] | )
Güncel sürüm | 2.7.9 / 9 Ekim 2018[2] | )
Programlama dili | C# |
Platform | .NET Framework, .NET Core, Mono |
Tür | Python gerçeklemesi |
Resmî sitesi | ironpython |
Kod deposu |
IronPython tamamen C # ile yazılmıştır, ancak kodunun bir kısmı Python'da yazılmış bir kod üreticisi tarafından otomatik olarak üretilir.
IronPython, diğer diller dışında dinamik diller için dinamik yazım ve dinamik yöntem gönderimi sağlayan Ortak Dil Altyapısı (Common Language Inrastructure) üzerinde çalışan bir kitaplık olan Dinamik Dil Çalışma Zamanı'nın (DLR) üzerine uygulanır.[8] DLR, .NET Framework 4.0'ın ve ayrıca 2009'un 2.4 sürümünden beri Mono'nun bir parçasıdır.[9] DLR ayrıca eski CLI uygulamalarında bir kütüphane olarak da kullanılabilir.
Durum ve yol haritası
değiştir- 10 Aralık 2008'de yayınlanan ve 23 Ekim 2009'da 2.0.3 olarak güncellenen 2.0 sürümü, CPython 2.5'i hedeflemektedir.[10] IronPython 2.0.3 sadece .NET Framework 3.5'e dek uyumludur.
- 11 Aralık 2009'da yayınlanan ve 12 Nisan 2010'da güncellenen 2.6 sürümü, CPython 2.6'yı hedeflemektedir.[11] IronPython 2.6.1 sadece .NET Framework 4.0 sürümleri ile uyumludur. IronPython 2.6.1, .NET Framework 3.5 çalıştırılacak kaynaklardan derlenmelidir. 21 Ekim 2010'da yayınlanan Iron Python 2.6.2, .NET Framework 4.0 ve. NET Framework 3.5'in her ikisiyle de ikili olarak uyumludur.
- 2.7 sürümü 12 Mart 2011'de piyasaya sürüldü ve CPython 2.7'yi hedefliyor.[12]
- 2.7.1 sürümü 21 Ekim 2011'de piyasaya sürüldü ve CPython 2.7'yi hedefliyor.[13]
- 2.7.2.1 sürümü 13 Mart 2012'de piyasaya sürüldü. ZIP dosya biçimi kitaplıkları, SQLite ve derlenmiş yürütülebilir dosyalar için destek sağlar.[14]
- 2.7.4 sürümü 7 Eylül 2013'te yayınlandı.[15]
- 2.7.5 sürümü 6 Aralık 2014'te piyasaya sürüldü ve çoğunlukla hata düzeltmelerinden oluşuyor.[16]
- 2.7.6 sürümü 21 Ağustos 2016'da piyasaya sürüldü ve yalnızca hata düzeltmelerinden oluşuyor.[17]
- 2.7.7 sürümü 7 Aralık 2016'da piyasaya sürüldü ve yalnızca hata düzeltmelerinden oluşuyor.[18]
- Sürüm 2.7.8 16 Şubat 2018'de piyasaya sürüldü ve hata düzeltmeleri, yeniden düzenlenen kod ve güncellenmiş bir test altyapısından (Mono altında Linux üzerinde önemli testler dahil) oluşur. Aynı zamanda .NET Core desteklenen ilk sürümdür.[19]
- Sürüm 2.7.9, 9 Ekim 2018'de yayınlandı ve hata düzeltmeleri, yeniden düzenlenmiş koddan oluşuyor. IPY3'ten önceki son sürüm olması amaçlanmıştır.[2]
CPython ile Farklar
değiştirPython'un standart başvuru uygulaması olan CPython ve IronPython arasında bazı farklılıklar vardır.[20] IronPython üzerine inşa edilen bazı projelerin CPython altında çalışmadığı bilinmektedir.[21] Tersine, C uygulanan dile uzantıları bağlıdır CPython uygulamaları da C'de yer alan uzantılar .NET ile uyumlu olmadğı sürece IronPython ile uyumlu değildir.[22] Örneğin, NumPy 2011 yılında Microsoft tarafından paketlenmiş ve ona bağlı kod ve kitaplıkların .NET Framework içinde doğrudan çalıştırılmasına izin vermiştir.[23]
Silverlight
değiştirIronPython, Microsoft tarafından kullanımdan kaldırılmıştır ve Ekim 2021'de desteğini sona erdirecek Internet Explorer 11 hariç, çoğu web tarayıcısında artık desteklenmeyen Silverlight'ta desteklenmektedir.[24] Tarayıcıda JavaScript motoru gibi bir komut dosyası motoru olarak kullanılabilir.[25] IronPython komut dosyaları, <script>
etiketlerinde basit istemci tarafı JavaScript komut dosyaları gibi geçirilir. Daha sonra gömülü XAML işaretlemesini değiştirmek de mümkündür.
Lisans
değiştir0.6 sürümüne kadar IronPython, Ortak Kamu Lisansı koşulları altında piyasaya sürüldü.[26] Ağustos 2004'te proje liderinin işe alınmasının ardından IronPython, Microsoft'un Paylaşılan Kaynak girişiminin bir parçası olarak kullanıma sunuldu. Bu lisans OSI onaylı değildir, ancak yazarlar açık kaynak tanımını karşıladığını iddia etmektedir.[27] 2.0 alfa sürümünde, lisans OSI'nin onayladığı Microsoft Public License[28] olarak değiştirildi. En son sürümler Apache License 2.0 koşulları altında yayınlanmıştır.
Arayüz genişletilebilirliği
değiştirIronPython'un en önemli avantajlarından biri, .NET dili ile yazılmış uygulamalar için bir genişletilebilirlik katmanı işlevi görmesidir. Bir IronPython yorumlayıcıyı .NET çerçevesinde var olan bir uygulamaya entegre etmek nispeten basittir. Yerleştirildikten sonra, alt geliştiriciler .NET, nesnenin çerçevesindeki kod tabanını değiştirmek zorunda kalmadan, IronPython'da etkileşimde bulunan komut dosyalarını kullanabilirler ve çerçevenin arabirimindeki işlevselliği genişletebilirler.[29]
Performans
değiştirIronPython'un Python'un referans uygulaması CPython'a kıyasla performans özellikleri, kullanılan tam ölçütlere bağlıdır. IronPython, PyStone betiği ile çekilen çoğu kriterde CPython'dan daha kötü performans gösterirken diğer kriterlerde daha iyi performans gösterir.[30] IronPython, JIT ve Küresel Tercüman Kilidi (Global Intrepreter Lock) olmadığı için çoklu işlem veya çoklu çekirdek gerektiren uygulamalarda CPython'dan daha iyi performans gösterebilir.[31][32]
Ayrıca bakınız
değiştir- Boo - .NET Framework ve Mono ile Python'dan ilham alan sözdizimi ve C # ve Ruby'den ödünç alınan özellikleri olan bir dil
- Cobra
- IronScheme
- Jython - Java Sanal Makinesi için Python uygulaması
- Cython
- pypy - Python programlama dili için kendi kendini barındıran bir tercüman
- Tao Framework
- Unladen Swallow - LLVM tabanlı tam zamanında derleyici kullanarak üstün performans sağlamayı amaçlayan CPython'un (artık geçersiz) bir dalı
Kaynakça
değiştir- ^ "Arşivlenmiş kopya". 26 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2020.
- ^ a b "2.7.9". github.com. 22 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Ekim 2018.
- ^ "Jim Hugunin's blog: IronPython 1.0 released today!". 5 Eylül 2006. 10 Mart 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Aralık 2006.
- ^ "Release dates for ironpython". 10 Aralık 2008. 29 Ocak 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Ocak 2009.
- ^ Clarke, Gavin (22 Ekim 2010). "Microsoft cuts loose Iron languages". The Register. 21 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2012.
- ^ "IronPython.net". IronPython.net. 4 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2013.
- ^ "Python Tools for Visual Studio- Home". Python Tools for Visual Studio. 26 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Temmuz 2013.
- ^ "Dynamic Language Runtime Overview". Microsoft. 31 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Nisan 2014.
- ^ "Arşivlenmiş kopya". 16 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2020.
- ^ "2.0.3". ironpython.codeplex.com. 26 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Ekim 2010.
- ^ "2.6". ironpython.codeplex.com. 13 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Ekim 2010.
- ^ "2.7". ironpython.codeplex.com. 2 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Mart 2011.
- ^ "2.7.1". ironpython.codeplex.com. 26 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Aralık 2011.
- ^ "2.7.2.1". ironpython.codeplex.com. 26 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Mart 2012.
- ^ "2.7.4". ironpython.codeplex.com. 16 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Aralık 2014.
- ^ "2.7.5". ironpython.codeplex.com. 26 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Aralık 2014.
- ^ "2.7.6". github.com. 15 Kasım 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ağustos 2016.
- ^ "2.7.7". github.com. 15 Kasım 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ocak 2018.
- ^ "2.7.8". github.com. 22 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ocak 2018.
- ^ "Differences between IronPython 1.0 and CPython 2.4.3". Microsoft. 18 Aralık 2007. 1 Ağustos 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Şubat 2008.
- ^ Foord, Michael. "New Project: Implementing .NET Libraries in Pure Python". 28 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Şubat 2008.
- ^ Eby, Phillip. "Children of a Lesser Python". 21 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Temmuz 2008.
- ^ "NumPy and SciPy for .NET". 11 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2019.
- ^ "Silverlight 5 System Requirements". www.microsoft.com. 18 Haziran 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Kasım 2019.
- ^ "Write browser applications in Python". IronPython.net. 17 Mart 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2020.
- ^ "Original IronPython homepage". 28 Temmuz 2004. 23 Şubat 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mayıs 2007.
- ^ "Shared Source License for IronPython". 28 Nisan 2006. 2 Kasım 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mayıs 2007.
- ^ "Microsoft permissive license". 28 Nisan 2007. 17 Kasım 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mayıs 2007.
- ^ "Using .NET objects from IronPython in Resolver One". 13 Şubat 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2008.
- ^ "IronPython Performance Report". 19 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ekim 2009.
- ^ "IronPython at python.org". python.org. 4 Haziran 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Nisan 2011.
IronPython has no GIL and multi-threaded code can use multi core processors.
- ^ "Arşivlenmiş kopya". 31 Ekim 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2020.