Uygulama programlama arayüzü (API) ile büyük ölçekli şematize verileri destekleyen F#’in 3.0 versiyonu Microsoft’un yazılım geliştirme etkinliği olan Visual Studio 2012’de Visual F# araçları güncellemesi ile birlikte sunuldu. Şimdi Microsoft F# için oluşturmuş olduğu Try F# sitesini güncelledi. Inforworld sitesi, Microsoft’un F# ile neler başarmak istediği konusunda Syme ile özel bir röportaj gerçekleştirdi.
InfoWorld: Yazılım geliştiriciler C#, C++, Visual Basic veya diğer programlama dili ile yapamadıkları neleri F# ile yapabiliyorlar?
Syme: Sunulan en önemli farklılık F#’ın ilk fonksiyonel ve veri programlama dili olması. Dil, veri merkezli problemlerin çözümü ve fonksiyonel programlama yönünün çalıştırılması için dikkatli bir şekilde tasarlandı. Fonksiyonel programlamanın önemli özelliklerinden birisi, veri yapıları üzerindeki rutin çalıştırmaları gerçekleştirirken hata oranını azaltması.
F# gerçekten fonksiyonel bir dil mi?
Temel özelliklerinden birisi verilerin “değişmez” olarak ifade edilen bir şekilde temsil edilmesi. Bu, verilerin bir tasarım gibi tanımlamalarına -veya bunu fotoğraf çekmek olarak da düşünebilirsiniz- sahip olmanız anlamına geliyor. F#’da programlama, daha çok sahip olduklarınızı dönüştürme ve sonuç olarak yeni bir resim yaratma üzerine kurulu. Mesela Instagram veya Excel fonksiyonel türde sistemler. Bu sistemlerden veri alır, veri değişiminin nasıl olduğunu belirlersiniz. Bir fonksiyonel programlama dilinde genel amaçlı programlamadan paradigma çıkarabilirsiniz.
F#’ın arkasındaki itici güç neydi?
Analitik yazılım bileşenleri için yerleştirmede zaman kısaltır. Özellikle finans ve sigortacılık sektörlerinde ama aynı zamanda bilimsel veya veri merkezli veya veri yoğun programlama alanlarında bu tarz bir programlama bulursunuz. Microsoft F#’ı benimsedi ve bu programlama diline destek verdi, çünkü platformlarımız üzerinde birinci sınıf bir fonksiyonel programlama deneyimi istedik. Microsoft, F#’ın geliştirilmesinde üç alanda pay sahibi oldu. Bunlardan birisi Visual Studio ile birlikte gelen Visual F# araçları. Microsoft Research, F# dilinin tasarlanmasında yer alıyor. Ayrıca bu hafta yayınladığımız Try F# sitesine destek veriyoruz.
F# paralel programlamanın temelinde mi yer alıyor?
Evet, bu F#’ın çok iyi olduğu alanlardan bir tanesi. Programlama konusundaki fonksiyonel, bağımsız bakış açısından geliyor.
F#’ın açık kaynak ve ticari versiyonları var mı?
Mac veya Linux tabanlı bir sistem kullanıyorsanız, o zaman F#’ın açık kaynaklı versiyonunu normal bir şekilde kullanabilirsiniz. Windows tabanlı bir sistem kullanıyorsanız sanırım o zaman F#’ın Microsoft uygulaması ve Visual F# araçlarını kullanmanız daha doğru olur. Bildiğim kadarıyla açık kaynaklı versiyonunu da Windows sisteminde kullanabiliyorsunuz. Ancak bu genelde insanların tercih ettiği bir yol değil.
Visual Studio’daki F# desteğinden bahsettiniz. Visual Studio dışında F# ile yazılım geliştirme için kullanılabilecek başka araçlar yok mu?
F# Yazılım Girişimi, Microsoft’un yazılım geliştirme plaftormu olan IDE’ye benzeyen MonoDevelop için araçlar sunuyor. Ayrıca Emacs için de araçlar sunuyorlar. Başka düzenleme çevreleri ile daha az entegre sunulan araçlar da bulunuyor.
F# ile şimdiye kadar ne kadar yazılım geliştirdiniz? Bu yazılımlar içinde adı duyulmuş programlar ve kullanılan web siteleri var mı?
F# kullanan birçok insan var. Mesela StackOveflow sitesinde F# ile ilgili 4 bin civarında soru bulunuyor. Bu, dili kullanan çok sayıda kişi olduğunu gösteriyor. Dili kullanan kişiler açısından baktığımızda ise, Microsoft’un reklam platformu gibi bir platformda yapılan, programlama dili uygulaması olarak F# kullanan bir makine öğrenme sistemi gibi bir sistemden bahsediyoruz genellikle. Bu, Bing veya bunun gibi arama motorlarında sorular için yapılan arama taleplerinde cevap olarak sunulan reklamlara karar vermek için kullanılan kor bir algoritmadan geliyor. Bunlar gerçekten de önemli kor algoritmalar ve bizim F# ile birlikte sunduğumuz, sizin bazılarına sahip olmuş olabileceğiniz dilde yazılı bazı kor algoritma kodu veya kor veri analiz kodunun bulunduğu programlama türüne oldukça benziyor. Daha büyük sistemlere yerleştirilebiliyor çünkü F#’ın en önemli artılarından birisi .Net ve C# gibi sistemlere güzel bir şekilde uyarlanabilmesi. F#’ı alıp kendi daha büyük sisteminize entegre edebilirsiniz. Sistem oldukça iyi. Microsoft’un sitesinde Grange Insurance’dan ve Avrupa’da 100’den fazla kişinin niceliksel finans modellerini F#’de yazdıkları önemli bir bankadan vaka incelemeleri yer alıyor.
F#’ı bir web programı olarak kullanır mıydınız?
F#’ı sunucu taraflı web programlama için kesinlikle kullanabilirsiniz. Visual F# araçları özel olarak istemci taraflı web programlama için amaçlanmadı. Ancak dışardan şirketler tarafından sağlanılan başka F# araçları bulunuyor. Size bu konuda HTML5 web programlama için WebSharper aracını geliştiren IntelliFactory’i örnek olarak verebilirim.
Microsoft, F#’dan nasıl gelir elde ediyor?
Microsoft’un programlama dillerine yatırım yapmasının amacının programlanabilirlik konusundaki ihtiyaçlarından kaynaklandığı görülüyor. F#’a yatırım yapıyoruz, çünkü platformlarımızı daha iyi hale getirmemizde yardımcı oluyor, biz de platformlarımız üzerinden gelir elde ediyoruz.
F# konusunda başka eklemek istediğiniz önemli noktalar var mı?
Try F# konusunda beni en çok heyecanlandıran unsurlardan birisi insanların site üzerinden sadece F#’ı öğrenmeleri değil, aynı zamanda F# 3.0 diline verilerin entegre edilmesi konusunda çığır açıcı fikirleri de görebilmeleri. Bu zamanda insanlar farklı fikirleri uygulayabilecekleri, programalarında farklılık yaratabilecek parlak birşeyler kullanmak istiyorlar. Bu gibi şeyler çok geniş çevrelere yayılabiliyor. Mesela biz F# 2.0 ile asenkron programlama yaptık, şimdi C# 5.0’a kadar gelişti. Bu gibi fikirlerin son geliştirilen yüksek verimlilikte fonksiyonel dillerden geniş programlama endüstrisine genişlediğini görmek muhteşem birşey. Bir araştırmacı olarak benim için büyük bir başarı.