Python la daha dinamik bir dünya için
Bir önceki "Güne yeni bir dille başlamak" adlı yazımda kabaca IronPython hakkında konuşmuştuk. Ama hala yapacak çok işimiz var.
IronPython için statik değil dinamik bir demiştik.Dinamik dillerin en önemli özelliklerinden biride tip tanımına ihtiyaç duymamasıdır. Yeni bir nesne oluştur, tip belirtme hatta çalışma zamanında istediğin gibi nesneye müdahale et.
Biraz şu IronPython dan bahset bize. Neymiş, nasıl olmuş, kim niçin yapmış...
IronPython, Microsoft tarafından Python dilinin açık kaynak kodlu bir implemantasyonu olarak geliştirildi.
Hmm bir dakika. Biliyorumki .Net uygulamaları derlendikten sonra IL kodlarına çevrilir ve çalışması içinde CLR e ihtiyaç duyar. Bu durumda diyebilirmiyizki. IronPython, Pyton kodlarını CLR in anlayacağı IL kodlarına çeviriyor.
Evet, IronPython motoru Python kodlarını bir assembly e derleyip CLR üzerinde çalışmasını sağlıyor.

IronPython ın ikinci sürümü ile birlikte ekip radikal bir değişiklik yaptı. Farklı dinamik dillerin aynı çatı altında çalışmasını sağlayacak DLR (Dynamic Language Runtime) geliştirildi ve IronPython tamamen bu yapıya uyarlandı.
IronPython her ne kadar bir Python implementasyonu olsada asıl amaç .Net Framework e erişim sağlamaktı. Burdan da çıkarılacağı gibi, IronPython içinden .Net tiplerine erişmek çok kolay. İster bir ASP.Net uygulaması geliştirin, ister bir Windows Form uygulaması herşey alıştığınızdan farksız bir şekilde. Hiçbir tip dönüşümü veya benzeri işlem yapmadan .Net i Python la yazmak. :D
IronPython kendisi Python ın birebir implementasyonu olarak C# ile yazıldı. İlk versiyon Python 2.4, ikinci versiyon da ise 2.5 versiyonu uygulandı. Eğer daha önceden Python kullandı iseniz Python a ait tüm temel özellikleri IronPython da da kullana bildiğinizi göreceksinizdir. Özet olarak diyebilirizki IronPython=Python
IronPython, Microsoft için farklı anlam taşıyan bir proje. Hem güçlü bir dilin .Net çatısı altına entegrasyonu hemde tamamen açık kaynak kodlu bir uygulama(Compiler tasarımı açısından çok güzel bir örnek.). Sanırım tüm bunlar için IronPython geliştiricisi Jim Hugunin e teşekkür etmemiz lazım.
Bir sonraki yazıda Python ve .Net geliştiricileri gözünden IronPython a bir göz atacağız.