Julia Programlama Dilini Tanıyoruz
Bu yazıda son yıllarda programlama dünyasına hızlı giriş yapan ve gelecek vaadeden Julia programlama dilini tanıtıp temel özelliklerinden, avantajlarından ve sağladığı kolaylıklarına değineceğiz.
Julia yüksek seviyeli, yüksek performanslı ve kullanıcısına verebileceği en iyi performansı bilgisayarı yormadan vermeye çalışan bir dil olarak tasarlanmıştır. Hızı ve kullanışlı bir dil olması onu ileride dilin kullanımının yaygınlaşacağını işaret ediyor. MIT tarafından geliştirilen bu dil büyük hesaplamalar ile uğraşan kişiler için biçilmiş kaftan olarak görülüyor. Sürekli güncellenen ve gün geçtikçe yararlı kütüphaneler eklenen Julia içinde çoğu şeyi barındırıyor. Geneli C ve Fortran tabanlı olan bu dil lineer cebir, hızlı fourier dönüşümü gibi bir çok işlem için özel kütüphaneler barındırıyor. Yaptığı ve yapacağı işlemleri yüksek doğruluk oranı ve hızı sayesinde kullanıcıları bu yöne çekmeyi iyi başarıyor.
Bu tabloda diğer dillerle hız karşılaştırmasını görüyoruz. Peki bu hız bize ne kazandırıyor? Kriptografi algoritmalarından örnekler verebiliriz aslında. Bu tarz karışık algoritmalarda şifrelenen veri büyüdükçe sistemin işlemi yapması da uzar. İşte Julia bu tarz işlemleri çoğu dilden epey hızlı bir şekilde yapıyor ve bilgisayar performansını en az seviyede etkiliyor. Nasıl bu kadar hızlı olabiliyor?
Julia’yı hız konusunda bir hayli ileri geçiren etken JIT(just-in-time) derleme şeklini kullanmasıdır. Yine Julia içerisinden C, Fortran ve Python kodlarını kolayca çağırabiliyoruz. Bu özellik sayesinde Julia’da yapılamayan işleri bu dillerde yazılmış kütüphaneler aracılığıyla çözebiliyorsunuz. Yine Julia paralel hesaplama, makine öğrenmesi (machine learning), derin öğrenme (deep learning) gibi konularda yardımcı birçok paket bulunuyor. Bunlara örnek olarak “MLBase.jl, MachineLearning.jl, Knet.jl” kütüphanelerini verebiliriz. Hesaplamalar için önemli bir özellik olan multicore CPU ve GPU desteği sayesinde bilgisayarımızı sadece o hesaplamaya odaklayıp, alacağımız sonucun hızını haliyle arttırabiliyoruz. Dizilerde işlemler yaparken büyük kolaylıklar sağlıyor. Örnek olarak iki dizinin değerlerini birbirleriyle çarpmak istiyorsak “A*B” işlemi yetiyor.
Söz dizimi olarak önceden tanıdığımız dillere benzemesi Julia’yı öğrenmesi ve kullanması kolay bir dil yapıyor. Son olarak Julia’nın açık kaynak olduğunu ve hızlı şekilde büyüdüğünü belirtmek gerekiyor.
Yazının sonuna geldik. Julia hakkında Youtube kanalımda bulunan ve şu an 3 dersten oluşan çalma listesine göz atabilirsiniz. https://www.youtube.com/watch?v=H93y_u3sZmY&list=PL7PA_KbUkjFidt-ygdqUs_jUc_5zct-ro
1 Comment
Yavuz Kömeçoğlu
11 Eylül 2017 at 10:55Deniz Yuret Hocanın Julia ve Knet i derin öğrenme de nasıl kullanabiliriz sunumlarını aşağıdaki linkte bulabilirsiniz.
http://www.denizyuret.com/2016/09/julia-ve-knet-ile-derin-ogrenmeye-giris.html