Scala nomi “scalable language” (kengaytiriladigan til) iborasidan olingan bo’lib, uni 2003-yilda Shveytsariyaning EPFL universitetida professor Martin Oderski jamoasi bilan yaratgan. Til Java Virtual Machine (JVM) ustida ishlaydi va obyektga yo’naltirilgan hamda funksional dasturlash paradigmalarini bitta til ichida birlashtirishga qaratilgan.
Yaratilish maqsadi
Oderski funksional dasturlashning matematik tozaligi bilan obyektga yo’naltirilgan dasturlashning amaliy qulayligini birlashtirishni maqsad qilgan edi. Natijada Scala’da funksiyalar ham, sinflar ham “birinchi darajali” fuqaro hisoblanadi — funksiyani o’zgaruvchiga saqlash, parametr sifatida uzatish yoki boshqa funksiyadan qaytarish oddiy holat hisoblanadi.
Funksional va OOP uyg’unligi
Scala’da o’zgarmas (immutable) ma’lumot tuzilmalari, naqshli moslashtirish (pattern matching) va yuqori darajali funksiyalar keng qo’llaniladi, biroq til hamon to’liq sinflar, meros olish va interfeyslarni qo’llab-quvvatlaydi. Bu ikki paradigmani asta-sekin, bir vaqtning o’zida loyihaning turli qismlarida qo’llash imkonini beradi, dasturchini birdaniga faqat funksional uslubga o’tishga majbur qilmaydi.
JVM va Java bilan moslik
Scala Java bilan bir xil bayt-kodga kompilyatsiya qilinadi va Java kutubxonalaridan to’g’ridan-to’g’ri foydalanishi mumkin. Bu moslik Scala’ni Java ekotizimidagi mavjud vositalar (Maven, Gradle, turli kutubxonalar) bilan ishlashga imkon beradi, biroq kompilyatsiya tezligi ko’pincha Java‘ga qaraganda sezilarli darajada sekinroq bo’ladi.
Apache Spark bilan bog’liqligi
Scala’ning eng katta mashhurligi manbalaridan biri — mashhur katta ma’lumotlar (big data) qayta ishlash tizimi Apache Spark aynan Scala’da yozilgani. Garchi Spark Python va Java interfeyslarini ham taqdim etsa-da, Scala interfeysi odatda eng to’liq va eng yaxshi samaradorlikni beradi, shu sababli ma’lumotlar muhandisligi sohasida Scala bilimiga talab yuqori bo’lib qolmoqda.
Murakkabligi va qisqarayotgan mashhurligi
Scala’ning imkoniyatlari boyligi — implicit conversion, yuqori darajali tur tizimi, murakkab naqshli moslashtirish — tilni o’rganish va bir jamoada izchil uslubda ishlatishni qiyinlashtiradi. So’nggi yillarda Kotlin kabi soddaroq alternativalar paydo bo’lgach, Scala’ning yangi loyihalarda tanlanish darajasi biroz pasaygan, garchi u Spark ekotizimida hamon muhim o’rin tutadi.
Bog’liq tushunchalar
JVM, Java, Funksional dasturlash, Apache Spark, Naqshli moslashtirish, Bayt-kod, Martin Odersky