Logo
My Journal
Blog

Timeline

Blog

SCALA101 – Giriş

1.Giriş

Artık bir programlama dersi serisine başlamanın vakti gelmişti ve bu seriyi de Scala ile yapmaya karar verdim. Çünkü Scala hem kendi yapısının farklılığıyla hem de internette bulunan Türkçe kaynak azlığı nedeniyle tercih nedenim oldu. Umarım bu seri takip edenler için faydalı olur ve programlama ekosistemine katkı sağlar. Eğer sizlerin de bu yazı ya da sonraki yazılar için yorumlarınız, istekleriniz ve eleştirileriniz olursa bana sadece bir mail kadar uzaksınız.

1.1.Genel Bilgiler

Scala adını “scalable language” kelimesinden -türkçe ifadesiyle “ölçeklenebilir dil”- alıyor. Scala bir çok alanda bir çok soruna cevap ve ortam sağlıyor, ölçeklenebilir ifadesi de buradan geliyor. Bununla birlikte Scala standart Java platformu üzerinde çalışır ve onun bütün kütüphanelerini (library) ve bileşenlerini (component) kullanır. Scala kodları JVM bytecode ile derlenir. En önemli özelliği ise fonksiyonel programlama (functional programming) ve nesne yönelimli programlamanın (object oriented programming) bir karışımı olmasıdır. Fonksiyonel programlama ile kod yazımını ve yazılması uzun olan kodları basitleştiriyor. Nesne yönelimli programlama sayesinde ise büyük çaplı yazılımlarda esneklik ve kolaylık sağlıyor. Ayrıca Scala statik olarak yazılan dillerden (statically typed language) birisidir. Bu iki programlama tipi sayesinde Scala geliştiricilere yeni metodolojiler ve kavramlar da sunar.

1.2.Neden Scala

Neden Scala sorusuna verilecek bir çokcevap olmakla birlikte ben sadece bir kaç açıdan bu sorunun cevabını vermeye çalışacağım.

1.2.1.Uygunluk (Compatibility)

Scala’nın JVM bytecode ile derlendiğini söylemiştik. Bu başlı başına zaten bütün platformlarda çalışmasını sağlıyor. Bununla birlikte Scala Java methodlarını çağırıp, alanlarına (field) erişim sağlayabilir, bir Java sınıfından (class) miras (inheritance) alıp, arayüzler (interface) üzerinde değişiklik yapabilir.

1.2.2.Kısalık (Concise)

Bütün Scala kodlarında kısalığa ve sadeliğe bir eğilim vardır ve bu Scala’nın kendi yapısından gelir. Java kodlarıyla kıyaslandığında neredeyse yarı yarıya kod yazımında tasarruf sağlanabilir. Bu tabiki programın kalitesinde bir eksiklik yaratmaz hatta tam tersi okunabilirlik ve anlamada büyük avantaj sağlar. Bununla ilgili bir Java vs. Scala yapalım isterseniz.

Java Kodu:

Scala Kodu:

Yukarıda gördüğünüz iki kod parçası da aynı işlemi yapıyor. Scala sadelik açısından çok kolaylık sağlıyor.

1.2.3.Yüksek Seviye (High Level)

Bir çok yazılım geliştirici yazılım geliştime sürecinde karmaşıklıkla (complexity) uğraşır ve çoğu büyük yazılım ve projede karmaşık sorunlar ya da program parçaları bulunur. Bunu en aza indirgemek ise yazılım geliştiricinin görevlerinden birisi ve her şeyden önce yazılımın çökmemesi için bu gereklidir. Scala burada soyutlama seviyesini artırarak bize daha karmaşık yapıları kolayca ifade etmemize ya da geliştirmemize katkı sağlar. Böylece Scala toplam karmaşıklıkta ciddi bir düşüş yaratır. Örnek olarak elimizde bir tane String tipinde isim olsun ve biz bu ismin içinde büyük harfle yazılmış bir karakter olup olmadığını bulalım. Bunda da yine bir Java vs. Scala yapalım.

Java Kodu:

Scala Kodu:

Görüldüğü üzere kod karmaşıklığında Scala ciddi bir düşüş sağlıyor.

Yazının ilk serisini şimdilik burada sonlandırıyorum, devam yazımızda artık Scala ile programlamaya giriş yapacağız.

*Program kodları bu kitaptan alınmıştır.

Leave A Comment