Bosh sahifa Wiki Scala

Scala

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