Julia: Derinlemesine Bir Bakış & Başlangıç – Bölüm 1

Herkese selamlar ve sağlıklı günler. 🙂

Sadeliğiyle ve kapasitesiyle ön plana çıkan Python programlama dili veya MATLAB ile çalışmayı seviyor musunuz? Peki o zaman, Python’a yakın söz diziminde ve performans olarak C programlama dili seviyesinde olan Julia’yı keşfetmeye ne dersiniz?

O halde Julia programlama dili serimize hoş geldiniz!

Bu içerik ile birlikte son zamanların gözde ve yeni nesil programlama dillerinden olan Julia programlama dili üzerine bir seriye başlıyoruz. Julia programlama diline yönelik Türkçe kaynak eksikliğini belirli bir seviyede kapatmak için oluşturulan bu seri ile Julia programlama dilini yakından tanıyıp, söz dizim özelliklerini ve yapılarını keşfedeceğiz. Daha da ötesine geçip, uygulama alanlarından; tercih sebeplerinden bahsedeceğiz.

Sıkı tutunun, başlıyoruz! 🙂

Bölümler

Bölüm İçeriği

Aşağıda Julia dersleri Bölüm 1 kapsamındaki başlıklar listelenmiştir.

  1. Julia Programlama Dili
    • Tanıtım
    • Tarihçe
    • Yazma Disiplinleri
  2. Julia Kurulumu (Windows, Linux ve macOS)
  3. Sistem Ortam Değişkenlerine Ekleme
  4. Kodlama Ortamının Hazırlanması

1. Julia Programlama Dili

Tanıtım

Julia programlama dili, MIT sertifikalı, açık kaynak kodlu, yüksek başarımlı ve üst düzey bir programlama dilidir. Genel amaçlı bir dil olsa da ve herhangi bir uygulama geliştirilmesinde kullanılabilse de, özelliklerinin çoğu sayısal analiz ve hesaplama bilimi için özelleştirilmiştir. Dolayısıyla sayısal hesaplamalı işlemler için yüksek doğruluk oranı sunmaktadır. Bunların haricinde dağıtık koşut yürütüm olanağı ve geniş matematiksel işlev kütüphanesine sahip olan Julia’nın söz dizimi Python, Ruby gibi programlama dilleriyle benzerlik göstermektedir. Veri bilimi, makine öğrenimi, yapay zeka, istatistik ve daha bir çok hesaplamalı alanda ön plana çıkmaktadır.

C programlama dili seviyesine yakın yüksek hız kapasitesi, makine öğrenimi paketleri, etkileyici ve sade söz dizimi nedeniyle gittikçe popülaritesini artırmaktadır. Python, R, Ruby, MATLAB ve Perl’in iyi yanlarını birleştiren bir dil olarak karşımıza çıkmaktadır. Ayrıca Julia betikleri içerisinde kolaylıkla Python, C, Fortran ve R paketleri kullanılabilir ve kod yürütülebilir.

Julia, LLVM kullanılarak uygulanan tür çıkarımı ve JIT (Just-In Time) derleyicisini kullanılarak elde edilen isteğe bağlı yazım, çoklu gönderim ve iyi performans özellikleri sunar. JIT derleyicisi, kodun verimli bir şekilde derlenmesini kolaylaştıran çoklu gönderim yoluyla kararlılık sağlar.

Julia’yı kullanan geliştiriciler arasında kullanılan ikinci en popüler dilin, anketlerde %61 gibi bir oranla Python olduğu görülmüştür. Katılımcıların %20 ila %30’unun beğendiklerini bildirdikleri diller arasında C/C++, R, MATLAB ve Bash bulunmaktadır.

Julia’nın en popüler olan teknik özelliği hız ve performansının ardından kullanım kolaylığıdır. Ancak yeni sayılabilecek bir programlama dili olması sebebiyle teknik olarak kusurlara sahip olduğu bir sır değildir. Python gibi daha köklü yüksek seviye dillere karşı nispeten yeni bir dili olan Julia’nın oturaklı olması için biraz daha gelişme göstermesi gerektiği aşikardır.

Julia’nın Avantajları

  • Daha hızlı çalışma süresi performansı için Julia, LLVM derleyici çerçevesi kullanarak JIT ile derlenir. Julia, C’nin hızına yaklaşabilir veya eşitlenebilir.
  • Julia, Python’un sunduklarına benzer bir REPL (read-eval-print loop) veya etkileşimli komut satırı içerir.
  • Etkileyici ve güçlü söz dizimine sahiptir.
  • Julia dinamik yazmanın ve statik yazmanın avantajlarını bir araya getirmektedir.
  • Birçok programlama dilinin kütüphaneleri kolaylık çağrılabilir.
  • Metaprogramlamayı desteklemektedir.
  • Çok başarılı bir hata ayıklama paketine sahiptir.
  • Julia için önemli hedef kitle MATLAB, R, Mathematica ve Octave gibi bilimsel programlama dillerinin ve ortamlarının kullanıcılarıdır. Julia’nın matematik işlemleri söz dizimi daha çok, matematik formüllerinin bilgisayar dünyasının dışındaki yazılma şekline benzemektedir ve bu da programcı olmayanların alışmasını kolaylaştırmaktadır.
  • Python’da olduğu gibi, Julia’da da kullanıcı bellek yönetimi ayrıntılarıyla yükümlü değildir ve Julia çöp toplama (garbage collection) üzerinde kontrolü sağlamaktadır. Dolayısıyla Julia’ya geçerseniz, Python’un bu noktadaki kolaylıklarından birini kaybetmemiş olursunuz.
  • Julia üstün paralellik sunmaktadır. Bilimsel hesaplama anlamında önemli bir özelliktir.
  • Farklı argüman türleri için otomatik, verimli ve özel kod oluşturma imkanı tanır.
  • Lisp’de desteklenilen makroların benzerini sunmaktadır.

Julia’nın Dezavantajları

  • Geliştirici topluluğun az olması.
  • Nispeten yeni bir dil olması sebebiyle teknik kusurlar barındırması.
  • Modül sayısının diğer programlama dillerine kıyasla oldukça az olması.

Tarihçe

Julia ile ilgili çalışmalar 2009 yılında, hem üst düzey hem de hızlı ve ücretsiz bir dil oluşturmak için yola çıkan Jeff Bezanson, Stefan Karpinski, Viral B. Shah ve Alan Edelman tarafından başlatılmıştır. 2012 yılında gerçekleştirilen ilk lansmanından bu yana, Julia topluluğu Mart 2020 itibariyle 13.000.000’dan fazla indirme ile kayda değer, ciddi bir gelişme göstermiştir.

Çalışmaların başlatıldığı zamandan beri, dil, birçok üst düzey dilin kolaylığını daha iyi bir performansla sağladığından, programcılar arasında çok popüler hale geldi. MIT lisansının kazandırılması ile, Julia herhangi bir hak ihlali olmaksızın kullanılabilen ve/veya değiştirilebilen açık kaynaklı bir dile dönüştürüldü.

İlk lansmanından bugüne kadar, dil birçok değişiklikten geçti ve birçok sürüm piyasaya sürüldü. Ve günlük olarak halen üzerinde yapılan çalışmalar devam etmektedir.

Yazma Disiplinleri

  • Dinamik programlama dili (Dynamic programming language)
  • Nominatif tip sistemi (Nominal type system)
  • Parametrik polimorfizm (Parametric polymorphism)

2. Julia Kurulumu (Windows, Linux ve macOS)

Windows

Julia’yı genel hatlarıyla tanıdığımıza göre artık sistemimiz üzerinde kurulumunu nasıl yapacağımıza geçebiliriz. 🙂

Buradan Julia’nın internet sitesine giderek sisteminize uygun bit sürümünde kurulum dosyasını indirip, yürüterek kolaylıkla Julia’yı kurabilirsiniz.

macOS

macOS işletim sisteminde yukarıdaki bağlantıda bulunan sayfadan .dmg dosyası ile kurulum yapabileceğiniz gibi aşağıdaki komut ile de pratik bir şekilde sisteminize yükleyebilirsiniz.

Linux

Ubuntu işletim sisteminde kurulumu için aşağıdaki komutları uygulayabilirsiniz:

Farklı bir dağıtım ile çalışıyorsanız; yukarıdaki bağlantıdan uygun Binary dosyasını indirip; buradaki yönergeler ile kurabilirsiniz.

3. Sistem Ortam Değişkenlerine Ekleme

Windows işletim sistemi üzerinde Julia komut satırı istemcisine kolaylıkla erişebilmek için Julia’yı sistem ortam değişkenlerine eklemek gereklidir.

1. Arama çubuğuna Sistem ortam değişkenlerini düzenleyin yazarak aşağıdaki ekrana erişin. Daha sonra Ortam Değişkenleri’ni seçin.

 

 

 

 

 

2. Karşınıza çıkan aşağıdaki ekranda Path değişkenine tıklayarak, düzenleyin:

3. Julia’yı kurduğunuz dizinin yolunu \bin\ dizinini de kapsayacak şekilde kaydedin:

Artık sistemimize Julia’yı tanıttığımıza göre komut satırı istemcisi ile rahatlıkla erişebiliriz. 🙂

4. Kodlama Ortamının Hazırlanması

Julia ile geliştirme yapabilmek için aslında herhangi bir kodlama ortamına ihtiyacımız yoktur. Geliştirmenizi Jupyter Notebook üzerinde de yapabilirsiniz. Ancak kod editörleri ve IDE’ler ile geliştirme yapmak sürece ciddi katkılar sunmaktadır.

Visual Studio Code ile de çalışabileceğiniz gibi ayrıca aşağıdaki video aracılığıyla Julia için özelleştirilmiş JUNO IDE kurulumunu gerçekleştirebilirsiniz.

Biz de Julia programlama eğitimi serimizde Juno IDE üzerinde çalışmalarımızı gerçekleştireceğiz.

Ekstra: Docker Image

Aşağıdaki komut ile Julia Docker Image’i sisteminize çekebilirsiniz.

Bir sonraki bölümde görüşmek dileğiyle. 🙂

One thought on

Julia: Derinlemesine Bir Bakış & Başlangıç – Bölüm 1

Bir cevap yazın