Microsoft “Roslyn” CTP

   Geçtiğimiz yıldan beri merakla beklenen Microsoft “Roslyn” projesi nihayet CTP sürümü ile yazılım geliştiricilere merhaba dedi. Özellikle son iki haftadır bugünü iple çektikten sonra artık gönül rahatlığıyla Microsoft “Roslyn” CTP’yi indirebileceğiniz link’i sizlerle paylaşabiliyorum; http://msdn.com/roslyn

   Heyecanla bir solukta bu bilgiyi sizlerle paylaştıktan sonra, konuya yeni olanlar için sanırım öncelikle Microsoft “Roslyn” nedir anlatmalıyım;

    Microsoft’ta ürünlere geliştirme sürecinde kod isim vermek bir gelenektir ve aslında “Roslyn”de bu geleneğin devamı olarak bir kod isimdir. C# ve Visual Basic dil derleyicilerinin kendi dillerinde baştan yazılması, derleyicinin bir hizmet olarak sunulmasını (Compiler-as-a-Service, CAAS), bir API üzerinden erişilebiliyor olmasını amaçlayan “Roslyn” projesi managed dillerin geleceği açısından önemli bir milestone’dur. Aralarından C++, F# gibi dillerin bulunduğu pek çok modern dili incelediğimizde, ortaya çıkışlarından kısa bir süre sonrasında kendi dillerinde yazılmış bir derleyiciye sahip olduklarını görebiliriz. Şimdiye kadar bu geleneğe ters hareket eden C# ve Visual Basic ise C++ ile yazılmış bir derleyici ile ilerlemekteydiler. Managed dille yazılmış  bir derleyiciye sahip olmamak beraberinde bu diller için bazı sıkıntılar da getirmekte. Bu sıkıntıların başında ise C#, Visual Basic dillerinin gelişiminin bu iki dilden tamamen ayrı C++ ile yazılmış bir derleyici ile desteklemenin oldukça zahmetli olması geliyor. Bu dillere eklenecek her bir yenilik karşısında C++ kısıtlamalarını bulmaktaydı. Bir başka önemli sıkıntı ise dile yönelik olarak geliştirilen araçlarda yaşanmakta, ortada dillerin lexical, syntactic ve semantik analizi için birbirinden bağımsız çok fazla kod bulunmakta. Microsoft içerisindeki araçlarda dahi benzer şekilde bir düzüne farklı analiz kodu olması ister istemez ortamda bir karışıklığa neden olmakta. İşe kendi içerisindeki bu karşıklığı çözmekle başlayan Microsoft çok geçmeden bu dinamiği biz yazılım geliştiricilere de sunmaya karar verdi.

   İşte tam da bu karar sonrasında Microsoft C# ve Visual Basic ekiplerini bir araya getirerek iki ana ekibe böldü. İlk ekip yakın zaman önce Async CTP ve arkasında C# 4.5 ile duyduğunuz async/await gibi dile yeni özellikler ekleyebilmek için çalışırken, ikinci ekip uzun dönemde derleyici ve araçların geleceğini şekillendirmekle ilgilenecekti. İşte bu ekiplerden ikincisinin kod adıdır “Roslyn”.

   Peki managed dil ile yazılmış bir derleyici sahibi olmanın bu kadar heyecan verici tarafı nedir? Doğrusunu söylemek gerekirse konu managed bir derleyici sahip olmaya geldiğinde, bunun sadece bir başlangiç olduğunu söylemek sanırım pek de yanlış olmayacaktır. Çalışma zamanında managed bir derleyiciye sahip olmaktan öte, bu derleyiciye API’ler vasıtasıyla ulaşabiliyor olmak bizlere tamamen farklı, belkide önceden hiç düşünemeyeceğimiz fırsatlar sunacaktır. Visual Studio içerisinde yaptığımız pek çok işin otomatize edilmesi, Check-in ya da derleme sırasında kodun analiz edilerek ekibinizin yoğurt yiğişine aykırı durumlarda hata vermesi, script desteği sunan uygulamalar yazılması, zamanla öğrenerek kendisini/diğer uygulamaları geliştiren/hızlandıran uygulamalar yazılması ya da ekip içerisindeki işlerimizi kolaylaştırmak için kendi DSL’inizi oluşturmak aklıma gelen yeni fırsatlardan sadece bir kaçı.

   Sisteminize Roslyn’i kurabilmeniz için sisteminizin SP1 yüklü bir Visual Studio 2010 ve Visual Studio 2010 SP1 SDK kurulumu gibi gereksinimleri karşılıyor olması gerekli.

Eksik Roslyn gereksinimleri kurulum sırasında hatırlatılmakta

   Önemle belirtmeliyim ki Roslyn bu CTP sürümünde Windows 8 ve Visual Studio 2011’i desteklememekte; fakat Windows 7 ve Visual Studio 2011,  .net framework 4.5 kurulu bir sistemde Visual Studio 2010 kurulu olması durumunda çalışmaktadır. Roslyn dil servisi ile geliştirilen Code Issue gibi proje türlerinin debug işlemi için dil servisinin çalıştığı özel bir hive registery düzenlenmiş ve açılan Visual Studio örneği bu hive üzerinden işlem yaptırılmakta.

    Bu bilgilerden sonra biraz da CTP ile birlikte gelenlerden bahsedelim;

  • CTP kurulumu  sonrasında ilk farkedeceğiniz şey sanırım  “C# Interactive” penceresi olacaktır. View -> Other Windows -> C# Interactive menüsü üzerinden açabileceğiniz bu etkileşimli C# penceresi “Roslyn”’in özelliklerini kullanabileceğiniz ilk pencere olacaktır."Rosly" ile C# etkileşimlerini yapabileceğiniz C# Interactive penceresi
  • Roslyn API’sini kullanabileceğiniz ve Visual Studio eklentileri yazabileceğiniz projeler oluşturmak için kullanılabilecek Visual Studio proje şablonları"Roslyn" CTP ile gelen proje şablonları
  • Roslyn dil servisi (Roslyn Language Service) tarafında desteklenen ve .csx uzantılı C# script dosyaları. Bu dosyalar için aynı zamanda Visual Studio IntelliSense ve Syntax Highlight desteği de sunulmakta.
  • Son olarak uygulamalarınızda kullanmanız için Roslyn API kütüphaneleri

   Tüm paylaştıklarım ardından ilk sürümüyle karşılaştığımız “Roslyn”’in unmanaged derleyicilerin managed dillerle baştan yazıldığı bir CTP olduğunu, henüz C# ve Visual Basic dillerinin tüm özelliklerini desteklemediğini ve ilerleyen zamanlarda API içerisinde değişiklikler olabileceğini göz önüne almalıyız. Uzun soluklu çalışmalar neticesinde CTP seviyesine kadar getirilmiş olan “Roslyn” incelendiğinde 930’un üzerindeki public sınıfı, 5800’ün üzerinde tür’ü, 52000’e yakın metodu ile .net framework’ün en kapsamlı projesi olduğu görülecektir. Mevcut unmanaged derleyicilerle kıyaslandığında “Roslyn”’in henüz %40’lara varan bir performans düşüklüğü bulunsa da release olduğunda bu farkın kapanmış olacağını rahatlıkla söyleyebilirim. Çıkış tarihi konusunda henüz bir netlik olmasa da asenkron programlamanın sunulduğu .net framework 4.5’tin, dolayısıyla da Visual Studio 11’in çıkışından daha ileri bir tarih olacağı rahatlıkla söylenebilir.

   Uzun bir giriş makalesi olmakla birlikte “Roslyn” projesinin bunu hakettiğini düşünüyorum. İlerleyen makalerimde sizlere Roslyn CTP ile neler yapabileceğinizi paylaşacağım.

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir