Scala va Java ikkalasi ham turli xil dasturlarni yaratishda foydalaniladigan JVM-ga asoslangan ob'ektga yo'naltirilgan dasturlash tillari. Java - har qanday joyda, umumiy kompyuterlardan tortib uyali telefonlarga, veb-saytlardan ilovalarga va hokazolarga mo'ljallangan umumiy dasturlash tili. Yillar davomida Java eng kuchli va murakkab dasturlash tillaridan biriga aylandi va hanuzgacha butun dunyo bo'ylab dasturchilar va dasturchilar jamoalari orasida eng ko'p tanlangan tanlov bo'lib kelmoqda. Ammo Java kabi kuchli va etuk tildan uzoqlashish ba'zi jiddiy sabablarni talab qiladi. Scala - bu dasturchilar uchun dunyoning eng yaxshisini taqdim etadigan zamonaviy dasturlash tili. Dasturlash tillarida juda ko'p tafovutlarni bartaraf qiladi. Skala mashhurligining asosiy sababi - bu o'qish qobiliyati. Keling, Scala va Java o'rtasidagi aniq farqlarni ko'rib chiqaylik.

Java nima?

Java - dunyodagi millionlab ishlab chiquvchilar tomonidan deyarli har qanday kompyuterda ishlatiladigan eng mashhur va keng tarqalgan dasturlash tili. Sun Microsystems-da ishlab chiqilgan Java turli xil muhitlarda ishlash uchun avtomatik ravishda dasturlash tili bo'lib, tarmoqlarni aylanib o'tishda etarlicha xavfsiz va mahalliy kodni almashtirishga qodir. Birinchi ishlaydigan versiyani ishlab chiqish uchun deyarli 18 oy vaqt kerak bo'ldi. Dastlab til "Oak" deb nomlangan, ammo 1995 yilda "Java" deb o'zgartirilgan. Vaqt o'tishi bilan Java veb-asosidagi dasturlar va veb-servislar uchun eng yaxshi platformaga aylandi. Ushbu dasturlar Java veb-xizmatlari, Java Servlet API va boshqa ko'plab ochiq manbali va tijorat Java ilova serverlari va ramkalari kabi texnologiyalardan foydalanadi. Internetning evolyutsiyasi Java-ni dasturlashda etakchi o'rinni egallashga yordam berdi.

Scala nima?

Scala - bu yangi avlod JVM asosidagi ob'ektga yo'naltirilgan dasturlash tili bo'lib, yillar davomida Java-ga muqobil alternativa sifatida katta kuchga ega bo'ldi. Garchi u Java singari ommabop bo'lmasa-da, kamida, ammo hali ham bundan ortda emas. Scala atamasi "kengaytiriladigan til" degan ma'noni anglatadi va u foydalanuvchilarning tobora ortib borayotgan talablari bilan o'sib borishi uchun yaratilganligi sababli shunday nomlangan. Dasturchilar uchun kichik skriptlarni yozishdan tortib to katta tizimlarni yaratishga qadar keng dasturlash vazifalarida qo'llanilishi mumkin bo'lgan eng yaxshi dunyo tajribasini taqdim etadi. Eng yaxshi qism, u standart Java platformasida ishlaydi va barcha Java kutubxonalari bilan uzluksiz ishlaydi. U har qanday Java kodiga qo'ng'iroq qilishi, har qanday Java sinfiga kirishi va har qanday Java interfeysini amalga oshirishi mumkin.

Scala va Java o'rtasidagi farq

Scala va Java asoslari

Java 90-yillarning boshlarida Jeyms Gosling va uning hamkasblari tomonidan Sun Microsystems-da yaratilgan umumiy maqsadga yo'naltirilgan til. Ushbu loyiha 1991 yilda "Eman" deb nomlangan bo'lib, keyinchalik Java deb nomlangan. Til C va C ++ dan juda ko'p sintaksisni oladi, ammo past darajadagi imkoniyatlarga ega. Scala, shuningdek, umumiy maqsadga yo'naltirilgan tildir, ammo Java-ga qaraganda ko'proq ob'ektga yo'naltirilgan. Skala - nemis kompyuter olimi va EPFL dasturiy metodlar professori Martin Oderskiyning miyasi.

Scala va Java-ning o'qilishi

Scala va Java ikkalasi ham JVM (Java Virtual Machine) -da ishlaydigan ob'ektlarga yo'naltirilgan tillardir, ammo Scala ikkala ob'ektga yo'naltirilgan va funktsional dasturlarni juda ixcham va g'ayrioddiy tilga birlashtiradi. Ishlab chiquvchilar Java-dan foydalanganda odatiy vazifalar uchun bir nechta kod satrlarini yozishlari kerak, Scala esa xatolarni aniqlash va tuzatishni osonlashtiradigan qisqa va qisqa kodlarga bir necha kod satrlarini sezilarli darajada kamaytiradi. Ammo, Java-dan ko'ra murakkabroq tuzilishga ega.

Sinflar va misollar

Scala Java-ga qaraganda ko'proq ob'ektga yo'naltirilgan, chunki Scala statik a'zolariga ega emas; buning o'rniga, u singlton ob'ektlariga ega - faqat bitta namunaga ega sinf. Scala-dagi hamma narsa sinf namunasidir, Java-da esa OO modelidan tashqarida ibtidoiy va statikalar mavjud. Bundan tashqari, ob'ektlar bo'yicha barcha operatsiyalar Scala-da qo'ng'iroqlar orqali amalga oshiriladi, operatorlarga Java-da boshqacha munosabatda bo'lishadi va ular qo'ng'iroqlarni amalga oshirishmaydi.

Ob'ekt va statik

Java tilida klass statik usullar va ma'lumotlarga ega bo'lishi mumkin. Shunday qilib, usulga kirishning yagona nuqtasi mavjud va statik usullarga kirish uchun sinfni o'rnatmaslik kerak. Statik o'zgaruvchilar JVM bo'ylab ma'lumotlarga global kirishni ta'minlaydi. O'z navbatida, Scala shunga o'xshash mexanizmni taqdim etadi, ammo singleton naqshini amalga oshiradigan ob'ektlar shaklida. Har bir sinf uchun bitta yuklovchi mavjud va shu tariqa global holatga ega bo'lish mumkin. Shu bilan birga, ob'ektlar ob'ektlar parametrlari sifatida o'tishga imkon beradigan sinflar misolidir.

Scala va Java-ning o'zaro ishlashi

Scala standart Java platformasida ishlaydi va barcha Java kutubxonalari bilan uzluksiz ishlaydi. Bu Java-ni muammosiz birlashtiradi, ya'ni Scala istalgan Java kodiga qo'ng'iroq qilishi, har qanday Java-sinfiga kirishi va har qanday Java interfeysini amalga oshirishi mumkin. Bu butunlay Java-ga mos keladi. Biroq, Java-dan kirish mumkin bo'lmagan Scala-ning xususiyatlari, shu jumladan Java va Scala-ning rivojlangan turlarida noqonuniy nomlari ko'rsatilgan aniqlangan usullar, sinflar va usullar mavjud. Asosiy farq, dasturchilar ko'rayotgan narsada va kodni tuzishda kengaytirilgan turni tekshirishda.

Skala va Java: Taqqoslash jadvali

Scala va Java haqida qisqacha ma'lumot

Scala va Java ikkalasi ham turli xil dasturlarni yaratishda foydalaniladigan JVM-ga asoslangan ob'ektga yo'naltirilgan dasturlash tillari. Shu bilan birga, Scala Java-ga qaraganda ko'proq ob'ektga yo'naltirilgan bo'lib, u ham ob'ektga yo'naltirilgan, ham funktsional dasturlashni juda ixcham va g'ayrioddiy tilga birlashtiradi. Scala Java platformasining barcha afzalliklariga ega va u barcha Java kutubxonalari bilan uzluksiz ishlaydi, bundan tashqari, u oldinga qarab moslikni qo'llab-quvvatlamaydi. Scala tezkor va qisqa, Java-ga qaraganda ko'proq xavfsizlik xususiyatlariga ega. Ammo, Java o'zining asrlar davomida mashhurligi va etukligini anglatadigan asrlardan beri mavjud.

Adabiyotlar

  • Tasvir krediti: https://pixabay.com/en/java-software-software-development-2327538/
  • Tasvir krediti: https://upload.wikimedia.org/wikipedia/commons/7/77/Scala_REPL_HelloWorld.PNG
  • Oderskiy, Martin va boshqalar. Scalada dasturlash. Mountain View, Kaliforniya: Artima Inc., 2008. Bosib chiqarish
  • Aleksandr, Tomas. Java dasturchilari uchun Skala. Birmingem: Packt Publishing, 2014. Chop etish
  • Pollak, Devid. Scala boshlanishi. Nyu-York shahri: Apress, 2009 yil. Chop etish