Scala, İsviçre’deki École Polytechnique Fédérale de Lausanne (EPFL) kurumunda profesör olan ve Alman bir bilgisayar bilimci olan Martin Odersky tarafından tasarlanmıştır. Martin, 2001’de Scala’yı oluşturmaya başladı ve ilk sürüm 2004’te yayınlandı.
Scala, Scalable Language (Ölçeklenebilir Dil) anlamına gelir. Java programlama diliyle birkaç ortak noktası olan genel amaçlı, nesne yönelimli bir dildir. Fonksiyonel programlamayı da destekler. Scala’nın tasarım kararlarının birçoğu, Java programlama dilinin eksikliklerini gidermeye yöneliktir.
Scala’nın sunduğu birkaç özellik şunlardır:
Scala’nın kaynak kodu Java bytecode’a derlenebilir ve dolayısıyla Java Sanal Makinesi (JVM) üzerinde çalıştırılabilir.
Java ile dil birlikte çalışabilirliği sağlar; böylece her iki dilde yazılmış kütüphaneler Scala veya Java kod tabanında referans alınabilir.
Java gibi, Scala da süslü parantezli bir sözdizimi kullanır.
Currying, tür çıkarımı, değişmezlik, tembel değerlendirme ve desen eşleme gibi Scheme, Standard ML ve Haskell gibi fonksiyonel programlama dillerinin birçok özelliğine sahiptir.
JavaScript kullanarak Web uygulamaları için destek.
Java’dan farklı olarak, Scala operatör aşırı yükleme, isteğe bağlı parametreler, adlandırılmış parametreler ve ham dizeleri destekler.
Scala hakkında ilginç bir bilgi de, ölçeklenebilirliği ve arka uç işlemlerde kullanılabilme yeteneği sayesinde Apple, Twitter, Walmart ve Google gibi şirketler tarafından yaygın olarak kullanılmasıdır.
Jupyter Notebook’ta Scala Kurulumu
Jupyter Notebook, özellikle veri bilimi alanında, bilgisayar bilimlerinde en yaygın kullanılan araçtır. spylon-kernel yardımıyla Scala geliştirmeyi de destekler.
Not: Jupyter Notebook’a yeniyseniz, lütfen şu kapsamlı eğitici içeriğe göz atın.
Jupyter Notebook’ta Scala ortamını kurmak gözünüzü korkutmasın. Şimdi birkaç adımda hızlıca kuralım.
Son olarak, Jupyter Notebook’u başlatın ve çekirdek olarak spylon-kernel’i seçin; hepsi bu kadar!
Scala çekirdeğinin doğru yapılandırılıp yapılandırılmadığını test etmek için küçük bir kod parçası çalıştıralım.
val x = 2
val y = 3
x*y
x: Int = 2
y: Int = 3
res1: Int = 6
Harika! Yukarıdaki çıktıda gördüğünüz gibi, Jupyter Notebook’ta Scala ortamını başarıyla yapılandırdınız.
Temel Sözdizimi
Scala’da Hello, World! yazdırarak başlayalım.
print("Hello, World!")
Hello, World!
Gördüğünüz gibi, son derece basit; argüman olarak verilen girdiyle birlikte bir print komutu yeterli.
Şimdi, Scala’daki bazı sözdizimi ayrıntılarına bakalım:
Scala büyük/küçük harfe duyarlıdır; bu, DataCamp ve dataCamp tanımlayıcılarının Scala’da farklı anlamlara geleceği anlamına gelir.
Scala’da tüm sınıf adlarının ilk harfi Büyük Harf olmalıdır. Eğer bir sınıf adı birkaç kelimeden oluşuyorsa, her bir kelimenin ilk harfi büyük olmalıdır. Örneğin, class MyScalaDataCampTutorial.
Scala’daki metot adları, esas olarak sınıf adlarından ayırt edilebilmesi için biraz farklı çalışır. Metot adları küçük harfle başlamalıdır (Kaynak). Birden fazla kelime metot adını oluşturuyorsa, içteki her kelimenin ilk harfi büyük olmalıdır. Örneğin, def firstDatacampScalaTutorial()
Scala’da, program dosyasının adı nesne adıyla birebir aynı olmalıdır. Dosyayı kaydederken, nesne adını kullanmalı ve sonuna .scala uzantısını eklemelisiniz. Örneğin, nesne adının ScalaTutorial olduğunu varsayalım. O halde dosya ScalaTutorial.scala olarak kaydedilmelidir.
Not: Eğer dosya adı ile nesne adı eşleşmezse, programınız derlenmeyecektir.
Son olarak, çoğu programlama dilinde olduğu gibi, Scala programının çalışması da her Scala programının kritik bir parçası olan main() metodundan başlar.
Aşağıdaki görsel, Scala’da sabitler, değişkenler veya başka herhangi bir tanımlayıcı olarak kullanılamayan ayrılmış sözcükleri göstermektedir.
Scala ile ilgili, if/else, for döngüleri, çeşitli operatörler vb. gibi hâlâ ele alınmamış pek çok bilgi var; bunlar gelecekteki eğitimlerde yer alacak, bizi takipte kalın!
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!