scala

pelin87 pelin87
yeni bir programlama dili

en önemli özelliğinden başlayayım. yazdığınız kodu java byte koda derliyor bu sayede java çalışan heryerde çalışabilirniz



+oop + fonksyonel programlama sağlıyor
+first-class fonskyonlar var. yani bir fonksyon un dönüş değeri bir fonksyon olabiliyor
+doğal currying var.
+istediğiniz zaman call-by-name yapabiliyorsunuz ya da değişkenleri lazy tanımlayabiliyorsunuz
+bir nevi istediğin zaman lazy
+static type var ama illa type yazman lazım değil. compile time da belirleniyor type lar. compile muallakta kalırsa bi type yaz ben kıllandım diyor
+kendi çapında bir tail call optimizasyonu var ancak o kadar başarılı değil.
sun tarafından jvm için de optimizasyon lazım
+her şey bir obje
+interface diyebilecğeimiz yapıda method tanımlayabiliyorsunuz. ama abstract class lar da var.
+generic type olayı var. javadaki ile aynı
+patter-matching i sağlayan case class yapısı var
+java nın standart apisini kullanabiliyorsunuz
+actors diye bir thread sistemi geliştirmişler. javadan daha başarılı olduklarını söylüyorlar ama deneme fırsatım olmadı



eksileri
-syntax alışılmışın dışında
-esnek syntax yapısı kodun okunmasını zorlaştırıyor.
-dökümantasyon iyi değil. hatta kötü
-kurmak ayrı bir dert
-interface in yerini tutan trait olayının oop yaklaşımını bozduğunu düşünüyorum açıkçası
-dökümantasyon cidden kötü
mustafa mustafa
twitter, foursquare gibi popüler çevrimiçi yazılımların alt yapısında kullanılan trend programlama dilidir.

java ile kıyaslanıyor, java'nın yapabildiği her şeyi daha hızla ve esnek yapıyor, deniyor. fakat scala'yı scala yapan bu değildir, sanırım çünkü java'dan esnek ve hızlı olan diller zaten var.

bilgi üniversitesi'nden güzel bir tanıtım vidyosu var, buyrun:http://video.cs.bilgi.edu.tr/watch/Scala_01 (konuşmacıyı tanımıyorum ama yanımdaki arkadaşım 'ehgahfff aynı sen gibi konuşuyor' dedi, bu da bu girinin kişisel sahnesi olsun)
pisfly pisfly
jvm de çalışan yeni nesil oop ve fonksiyonel programlama konseptlerini tek bir çatıda harmanlamış, programlama dünyasında next big thing olabilecek, akademik programlama dili.
java da ki verboselardan ve boiler plate'den kurtarması açısından iyidir. trait, actor, pattern matching ve function as a first class citizien konsepti sayesinde highly scalable işler yapabilirsiniz.
hızlı kod geliştirebilmek için sunduğu esnek syntax aynı zamanda dilin bence en büyük dezavantajıdır. keza bazen okunabilirlik piç olabilmekte. birde jvm de ki footprinti biraz fazladır.
ha bir de java da ki play frameworkü scala da tekrar yazılmıştır. web applicationlari hızlı bir şekilde geliştirebilirsiniz. (bkz: play 2 x)

sonuç olarak (bkz: scalable language)