Scala Nedir? Scala, dile ciddi ölçeklenebilirlik sağlayan işlevsel programlama öğelerine sahip nesne tabanlı bir dildir. Aslında, adın kendisi “Ölçeklenebilirlik”ten gelir, bu nedenle en başından neyle karşılaşacağınızı bilirsiniz. Bu, büyük ölçekli uygulamalar için tasarlanmış genel amaçlı bir dildir, bu nedenle kurumsal işletmelerin dikkat etmesi gerekir.
Scala, Martin Odersky tarafından geliştirildi ve ilk sürüm 2003’te yayınlandı. Yaklaşık 20 yıldır, Scala büyümeye ve geliştiricileri ve işletmeleri etkilemeye devam etti. Bu dil ile daha az iş ve kodla daha fazla uygulama ve hizmet sunabilirsiniz.
Ama benzerlikleri göz önüne alındığında, neden Java yerine Scala’yı seçesiniz? Birkaç iyi nedeni var:
- Java’nın karmaşık bir syntax kullandığı yerde, Scala çok daha basittir.
- Java ile kodun genellikle yeniden yazılması gereklidir, oysa Scala ile gerekli değildir.
- Java dinamik bir dildir ve Scala statik olarak yazılmıştır.
- Java hatasız kod garantisi sunmaz, Scala sunar.
Scala, “daha iyi” Java olmak için yazılmıştır. Bu amaçla Scala, Java Sanal Makinesinde (JVM) çalışacak şekilde yazılmıştır. Ancak Scala, Java’nın çok kısıtlayıcı olduğu bir dizi alanı tutuyor. Orijinal geliştiriciler sadece Java’yı klonlamaya karar vermedikleri için, Scala’nın tamamen farklı bir dil olmasına neden olan bir dizi değişiklik yaptılar. Bu, Scala’nın Java kadar öğrenmesi kolay olmadığı anlamına gelir. Ve geliştiricilerinizin Java’yı bilmesi, Scala’yı hemen alabilecekleri anlamına gelmez.
Neden Scala’yı Kullanmalısınız?
Scala’nın Java’ya göre bir avantajı, kodu yazmanın, derlemenin, hata ayıklamanın ve çalıştırmanın daha kolay olmasıdır. Scala kodu da daha özlü ve okunabilirdir. Scala’nın bir diğer çok önemli yönü, eşzamanlılığı desteklemesidir.
Eşzamanlılık nedir? Eşzamanlılık, birden fazla hesaplamanın aynı anda gerçekleşmesini mümkün kılar. Bu, özellikle uygulamalarınızı büyüttüğünüzde, bilgi işlemde inanılmaz derecede önemli bir kavramdır. Bir uygulama veya hizmet için talep arttıkça, dağıtımın mümkün olduğu kadar çok işlemi/hesaplamayı işleyebilmesini istersiniz.
Eşzamanlılık olmadan, uygulamalarınız ve hizmetleriniz taleplere yetişmek için mücadele ederdi. Bu nedenle, işletmeniz bu özelliği sunan programlama dillerini kullanmayı düşünmelidir, aksi takdirde sürekli artan talepleri karşılayacak kadar ölçeklendirme yapamayabilirsiniz.
Ancak bu özelliği içerdiğinden Java’nın eşzamanlı olmadığını düşünmeyin. Aradaki fark, Scala’nın Java’nın geleneksel iş parçacığı tabanlı modeli kullandığı modern eşzamanlılığı desteklemek için bir Actor modeli kullanmasıdır. Ve Scala, hem iş parçacığı tabanlı hem de tür güvenli Actor tabanlı eşzamanlılığı destekler.
Scala ile Neler Kodlayabilirsiniz?
Scala ile kaç tane açık kaynaklı projenin oluşturulduğuna şaşırabilirsiniz. Scala için en popüler kullanım örneklerinden bazıları şunlardır:
- Kafka – Gerçek zamanlı veri akışları için birleşik, yüksek verimli, düşük gecikmeli bir platform sağlayan bir framework.
- Flink – Açık kaynaklı, dağıtılmış bir akış veri akışı motoru.
- GitBucket – Git destekli bir kod deposu.
- Snowflake – Ölçekte benzersiz kimlik numaraları oluşturmak için kullanılan bir ağ hizmeti.
- Apache Spark – Büyük ölçekli veri işleme için genel amaçlı bir motor.
- Finagle – Yüksek eşzamanlı sunucuları oluşturmak için kullanılan genişletilebilir bir RPC sistemi.
- Akka – Dağıtılmış uygulamalar oluşturmak için kullanılır.
- ADAM – Bir genomik işleme motoru.
Scala’yı hangi şirketler kullanıyor?
Scala, aşağıdakiler de dahil olmak üzere çok sayıda büyük şirket tarafından kullanılmaktadır:
- Foursquare
- Netflix
- Tumblr
- The Guardian
- Sony
Bu liste, Scala’yı kullanmayı seçen büyük ölçekli şirketlerin yalnızca yüzeyidir. Bunu yapma kararlarının temelinde Scala’nın kitlesel ölçeklendirme yeteneği yatmaktadır. Scala uygulamaları kapsayıcı hale getirilebildiğinden, geçişi daha da kolaylaştırır. Aslında, SBT Native Package’ı kullanarak, özel Dockerfile’ları korumak zorunda kalmadan Scala uygulamalarını dockerize etmek mümkündür.