Ders 1 - Scala Genel Bakış (Overview)

1 Haz 2016 · 2 dk okuma süresi

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:

  • 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: