Julia programlama dili, yüksek performans sağlayan high-level (yüksek seviyeli) bir dildir. Yüksek hızı, makine öğrenmesi paketleri ve anlaşılabilir sözdizimi nedeniyle oldukça da popüler bir dildir. Programlama dillerinin popülerliğini ölçen TIOBE indeksinde Julia programlama dili 33. sırada yer alıyor. Bu durumdan da anlaşılacağı üzere Julia, oldukça hızlı gelişen bir dil niteliğine sahip diyebiliriz.
Julia programlama dili; Python, R, Ruby, Matlab ve Perl gibi dillerin iyi kısımlarıyla oluşturulmuş ve neredeyse C dili kadar hızlı çalışan bir dildir. Ayrıca Julia’da, Python ve R paketlerini kullanmak oldukça kolay bir iştir. Eş zamanlılığı, paralelliği ve dağıtılmış işlem yetenekleri C ve Fortran kütüphanelerinin tutkal kodu olmadan doğrudan çalıştırılmasını destekler. Tutkal kodu, uyumsuz olan kodun farklı bölümlerini “uyarlamak” için kullanılan bir yürütülebilir koddur.
Ayrıca yerel makine kodu üreten JIT (just-in-time, tam zamanında) derleyicisini kullanır. JIT derleyicisi çoklu gönderim yoluyla kararlılık sağlar ve bu da kodun daha verimli bir şekilde derlenmesini kolaylaştırır.
Vim, Emacs, Juno, MVS gibi IDE‘ler (geliştirme editörleri) Julia tarafından desteklenmektedir.
Neden Julia Programlama Dili Kullanmalıyız?
Bu dilin yapımcıları Julia programlama dili için:
“Açık kaynaklı, liberal lisanslı bir dil istiyoruz. C’nin hızını, Ruby’nin dinamizmiyle beraber istiyoruz. Lips gibi gerçek makrolara sahip ancak Matlab kadar da matematiksel notasyonlara yakın olsun istiyoruz. Python gibi genel programlama için kullanışlı, R kadar istatistik için kolay, Perl kadar dizi işleme için doğal, Matlab kadar lineer cebir için güçlü bir dil istiyoruz. Etkileşimli olmasını ve derlenmesini istiyoruz.” sözlerini kullanmışlardır.
Julia’nın bütün bu gereksinimleri karşıladığı söylemlerini desteklemek için benchmark (kıyaslama yapan bir bilgisayar programı) sonuçlarından bir örnek göstermek faydalı olacaktır:
Tabloda da göründüğü gibi Julia ve diğer 12 programlama dilinin performansları kıyaslanmıştır. Bu karşılaştırmalar çok düşük seviyeli görevler referans alınarak yapılmıştır.
Julia’nın performans olarak neredeyse C dili kadar hızlı çalıştığını gözlemleyebiliriz. Aynı şekilde birçok programlama dilinden daha iyi performans göstermiştir. Bunun en büyük sebebi derlenmiş (compiled) bir dil olmasından kaynaklanıyor. Böylelikle Python gibi yorumlanan (interpreted) dillerden daha hızlıdır. Julia, Dynamic Typing (hareketli tip bağlama) özelliği yüzünden Static Type (sabit dil bağlama) özelliği olan C kadar da bu açıdan hızlı performans gösteremez. Dynamic Type özelliği; değişkenlerin tiplerinin, programın çalıştırılma sırasında belirlenmesidir.
Burada dikkat etmemiz gereken diğer şey ise en yavaş performansı gösterdiği testlerden biri olan özyinelemeli Fibonacci dizisidir. Bunun sebebi şu an için özyineleme optimizasyonundan yoksun olmasıdır. Bu nedenle de testte yavaş çalıştığı gözlemlenmiştir.
Kurulumu
Julia’yı yüklemek için birçok yöntem vardır:
1-JuliaBox
Eğer sisteminize yüklemek istemiyorsanız bu durum bir problem teşkil etmez. Direkt olarak bulut ortamında da kullanabilirsiniz. JuliaBox’ı açıp Google, LinkedIn, GitHub gibi bir hesapla giriş yapabilirsiniz. Giriş yaptığınız zaman direkt olarak yeni bir notebook oluşturabilirsiniz. Oluşturduğunuz notebook, tam olarak Jupyter notebook’un aynısıdır.
2- Komut satırı
Julia’nın en son sürümünü işletim sistemi gereksinimlerine göre buradan indirebilirsiniz. Julia, terminalini yerel makinenize kuracaktır.
Eğer yükleme başarılı şekilde gerçekleşirse şöyle bir ekran sizi karşılıyor olacaktır:
3. iJulia (Jupyter)
iPython notebooklarına benzer özelliklere sahip iJulia notebooklarını kullanabilirsiniz. Bu basit adımları izleyerek iJulia notebooklarını kurabilirsiniz.
(Kişisel olarak Python kodlarını yazarken iPython notebooklarını tercih ediyorum.)
4-IDE
Juno, şu an için mevcut olan en uygun IDE’dir. Juno’yu buradan indirebilirsiniz.
Daha önce de belirttiğimiz gibi, çok basit bir sözdizimine sahiptir. Aynı Python gibi okuması ve öğrenmesi çok basittir.
“Hello World” uygulaması
Herhangi bir programlama dilini öğrenirken ilk öğrenilen şey, ekrana “Hello World” yazdırmaktır. Biz de bu geleneğe uygun bir örnek verebiliriz:
print("Hello World")
Değişken Tanımlanması
Aynı Python’da olduğu gibi “=” ile değişkeni tanımlayabiliriz.
sayi = 10 print(sayi)
string_deger = "Teknoloji.org is the best"
Basit Matematiksel İşlemler
Dikkat ederseniz, değişken tanımlarken tipini herhangi bir şekilde belirtmemiz gerekmiyor:
toplama = 2+3 print("toplama",toplama) cikarma = 3 - 2 print("cikarma",cikarma) carpma = 3 * 2 print("carpma",carpma)
toplama 5 cikarma 1 carpma 6
Koşul Durumları
x = 5 if x < y println("x y'den küçüktür. ") elseif x > y println("x y'den büyüktür.") else println("x ve y birbirine eşittir. ") end
function test(x,y) if x < y println("x y'den küçüktür. ") elseif x > y println("x y'den büyüktür.") else println("x ve y birbirine eşittir. ") end test(1,2) # x y'den küçüktür.
Eğer daha önceden Python dilini kullandıysanız bu dile geçiş yaparken zorlanmama ihtimaliniz çok fazladır. Yüksek performansı nedeniyle gittikçe popülerleşen bu dili öğrenmek için siz de bir adım atabilirsiniz.