Scala, hem nesne yönelimli programlamayı hem de fonksiyonel programlamayı destekleyen, statik olarak yazılmış güçlü bir genel amaçlı programlama dilidir. Kısa ve öz olacak şekilde tasarlanan[2] Scala'nın tasarım kararlarının çoğu Java eleştirilerini ele almayı amaçlıyor.
Scala kaynak kodu Java bayt koduna derlenebilir ve bir Java sanal makinesinde (JVM) çalıştırılabilir. Scala ayrıca bir tarayıcıda veya doğrudan yerel bir yürütülebilir dosyada çalıştırılmak üzere JavaScript'e derlenebilir. JVM'de Scala, her iki dilde yazılmış kitaplıklara doğrudan Scala veya Java üzerinden ulaşılabilmesi için Java ile birlikte çalışabilirliği sağlar. Java gibi, Scala da nesne yönelimlidir ve C diline benzeyen küme ayracı olarak adlandırılan bir sözdizimi kullanır.[3] Scala 3'ten beri, blokları yapılandırmak için girinti kullanma seçeneği de vardır ve kullanılması tavsiye edilir. Martin Odersky, bunun Scala 3'te sunulan en verimli değişiklik olduğunu söyledi.[4]
Java'dan farklı olarak Scala, körleme, değişmezlik, tembel değerlendirme ve kalıp eşleştirme dahil olmak üzere fonksiyonel programlama dillerinin (Scheme, Standard ML ve Haskell gibi) birçok özelliğine sahiptir. Ayrıca cebirsel veri türlerini, kovaryans ve kontravaryansı, higher-order types (ancak higher-rank types değil), anonim türleri, operatör aşırı yüklemesini, isteğe bağlı parametreleri, adlandırılmış parametreleri, ham dizeleri ve yalnızca deneysel bir istisnayı destekleyen gelişmiş bir tür sistemine sahiptir.[5]
Scala adı, ölçeklenebilirlik ve dilin bir portmanteau olup, kullanıcılarının talepleriyle büyümek üzere tasarlandığını ifade eder.[6]
Kaynakça
- Scala'nın sitesi23 Eylül 2020 tarihinde Wayback Machine sitesinde arşivlendi.