scala

entry11 galeri0
    1.
  1. 2.
  2. 3.
  3. ekonomi ile ilgili bastığı kitaplar ile tanınan yayınevi
    0 ...
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. televizyon kanallarında ekrana dolgu yapmak için kullanılan sistemin genel adıdır.
    0 ...
  10. 9.
  11. 10.
  12. çok hoş bir programlama dili. jvm üzerinde çalışmaktadır.

    intellij idea desteklemektedir. bir dahi olan Martin Odersky tarafından yaratılmıştır. Ayrıca coursera'da online kurslar verilmektedir.
    0 ...
  13. 11.
  14. ekstra bilgiler katacak olursak 2002 ya da 2003 yılında ortaya çıkmış bir dildir.

    jvm üzerinde çalışır. java'ya benzerliği bu yüzdendir. tek bir dilden etkilenmek yerine birçok dilden etkilenmiştir. dil nesnel programlamaya elverişlidir, aynı zamanda fonksiyoneldir de. Ve tabii ki platform bağımsızdır.

    concurrency modeli sayesinde twitter tarafından tercih edilmiştir. concurrency nedirr sorusu için:

    http://www.vogella.com/tu...aConcurrency/article.html bu link size fikir verir.

    scala actor based bir concurrency sistemini sağladığı için twitter tarafından tercih edilmiştir.

    bu dilin kullanıcıları web tarafında play ya da lift framework'ü tercih edebilir. golang için söylediğim type system olayı bunda da var ancak type system yüzünden dil öğrenmekten vazgeçmek ancak tembellerin işidir.

    syntax olarak anlaşılması daha önce c, c#, java gibi dillerde çalışanlar için biraz zor olabilir. python ile o kadar çalışmamış olmama rağmen bana çok zor geldi. bu dili ne zaman golang ile ilgilenmeye başladım o zaman rahat şekilde anlar oldum.

    type inference olayı ise en güzelidir. ornegin sahte bir dilde:

    degisken = 3

    print(degisken)

    degisken = "3"

    print(degisken)

    yazarak var olan degiskene bir tip belirtmezsiniz. ancak derleyici / yorumlayici ne derseniz geri donen degerin yani return value'nun ne olduğunun algılar. yukarıdaki örnek kod olduğu için belirtmem gerekiyor bu tanımlamalarla yapılmış derlemelerde tip yani dönüş değeri compile time'da belirlenir. runtime esnasında değiştirilemezler.

    c# için bunu var keyword'ü sağlarken, golang için:

    degisken := 3

    fmt.Println(degisken)

    demek ya da

    degisken := "3"

    fmt.Println(degisken)

    demek type inference olayına bir örnektir.

    He ne kadar bütünüyle hoş bir dil gibi dursa da jvm üzerinde çalışmasının dezavantajları da var. Bunlardan biris thread kavramı.

    Çoğu dilde threading desteği bulunur anlatıma geçerseniz genel olarak bir threading mekanizması vardır ancak bulundukları platforma göre de yani teknolojiye göre de değişik şekilde çalışırlar. Java'yı örnek gösterirsek threading mekanizması tamamen sizin elinizde olan bir C++'a göre daha da sınırldıır.

    Bu diller yani jvm dilleri kullanıcılarına bir kısıtlama getirir. thread'i işletme eğer programcıya bütünüyle ait değilse isteneni veremez. ekstra artı yönü ise programcıya fazladan sorumluluk yüklemeyişi. Siz scala ile istediğiniz kadar threading kasın, istediğiniz kadar memory management kasın yine de jvm sizin o kastığınız noktalarda gelir sizi kısıtlar.

    jvm üzerinde olmasının getirdiği bu durum harici kötüleyeceğim yanı öğrenmenin diğer dillere göre daha zor olmasıdır. zira syntax'ı zordur.

    bi bakarım diyenler için twitter tarafından scala school var http://twitter.github.io/scala_school/

    dilin kendi sitesi: http://www.scala-lang.org/

    twitter tarafından finatra (ruby'nin sinatrasından etkilenilmiş: https://twitter.github.io/finatra/ )

    twitter tarafından twitter-server (http://twitter.github.io/twitter-server/ )

    ve tabii ki twitter (http://maven.twttr.com/com/twitter/ )

    bir bakın işte gider var dilidir.
    0 ...
© 2025 uludağ sözlük