Fırat Eşki


Kodların Dünyası…


Ders 1 – Scala Genel Bakış (Overview)

Scala, ölçeklenebilir dil için kısa, fonksiyonel melez bir programlama dilidir. Martin Odersky tarafından oluşturulan bu dilin ilk yayını 2003 yılında yapılmıştır.

Scala, Nesne Yönetimli(object-oriented) ve fonksiyonel dillerin özelliklerini sorunsuz bir şekilde barındırabilecek ve Java Virtual Machine üzerinde çalışabilecek şekilde tasarlanmıştır.

Kritik iş uygulamaları oluşturan, Java’ya bağlı birçok şirket, geliştirme verimliliklerini, genel güvenliklerini ve uygulamaların esnekliğini arttırmak için Scala diline geçiş yapmayı tercih ediyor.

Aşağıdaki listede, geliştiricilerin Scala dilini ilk tercih olarak seçmelerine neden olan önemli özellikler bulunmaktadır.

Scala nesne yönetimlidir(object-oriented):

Scala, tamamen nesne yönetimli bir dildir. Yani her değer bir objedir. Objelerin tipleri ve davranışları sonraki bölümlerde detayına girilecek olan sınıflar ve özellikler ile ifade edilmiştir.

Sınıflar, alt sınıflar(subclassing) tarafından genişletilmiş ve çoklu kalıtım(multiple inheritance) için esnek ‘mixin-based composition‘ mekanizması kullanılmıştır.

Scala fonksiyoneldir:

Scala fonksiyoneldir. Yani her fonksiyon bir değerdir(value), her değer bir objedir ve sonuç olarak her fonksiyon bir objedir.

Scala bilinmeyen fonksiyon tanımlamanız için kolay bir syntax(söz dizimi) sağlar, üst düzey fonksiyonları destekler, iç içe fonksiyonları kullanmanıza imkan sağlar ve currying(çeviremedi) destekler. Bu bahsi geçen kavramlar sonraki bölümlerde açıklanacaktır.

Scala statik olarak yazılmıştır:

Scala, diğer bazı statik yazılmış dillerin aksine, sizden gereksiz tip bilgilerini sağlamanızı beklemez. Çoğu koşulda tip bildirimi yapmanıza ve tekrar etmenize kesinlikle gerek yoktur.

Scala JVM üzerinde çalışır:

Scala, Java Virtual Machine(JVM) tarafından çalıştırılabilir kod olan Java Byte koduna derlenir. Bu demektir ki Scala ve Java ortak çalışma platformuna sahiptir. Kolaylıkla Java dilinden Scala diline taşıma yapabilirsiniz.

Scala derleyicisi, Scala kodlarınızı daha sonra Scala komutlarının işyebileceği Java Byte koduna dönüştürür. Scala komutları, derlenmiş Scala kodlarını işler. Scala komutları, Java komutlarıyla benzerdir.

Scala Java Kodlarını İşleyebilir:

Scala, size bütün Java SDK’larını, kendi oluşturduğunuz Java sınıflarını veya favori Java açık kaynak kod projelerini Scala içerisinde kullanmanıza olanak sağlar

Scala vs Java:

Scala dilinin Java dilinden farklılık gösteren bir dizi özellikleri mevcuttur. Bunlardan bazıları şunlardır:

*Alttaki özelliklerin bir kısmının tam anlamıyla çevirisi olmadığı için çevirmedim. Zaten önemli olan sonraki derslerde ne olduklarını anlamaktır.

  • Bütün tipler objedir(All types are objects).
  • Type inference.
  • İç içe fonksiyonlar(Nested Functions).
  • Fonksiyonlar objedir(Functions are objects).
  • Domain specific language (DSL) support.
  • Traits.
  • Closures.
  • Erlang tarafından ilham alınan eşzamanlılık desteği(Concurrency support inspired by Erlang).

Scala Web Frameworkleri:

Scala, başta önemli kuruluşların web uygulamaları olmak üzere her yerde kullanılmaktadır. En popüler Scala web frameworklerinden bazılarını inceleyebilirsiniz:


Merhaba, ben Fırat Eşki bu da benim blogum. Bilgisayar ve teknoloji dünyasını yakından takip ediyorum. Küçük yaşta giriş yapmış olduğum kod dünyasına olan ilgim ve sevgim gün geçtikçe artarak devam ediyor.