Javaga qo’shimcha tarzda, Kotlin JavaScriptga ham kompilyatsiya qilinishi mumkin va bu sizga Kotlin kodini browserda harakatlantirish imkon yaratadi. Ammo JavaScript asosi hanuz JetBrians tomonidan o’rganilmoqda va tadqiq qilinmoqda, shuning uchun ham bu haqida keyinchalik to’xtalib o’tamiz. Kotlinning kelajak versiyalarida boshqa platformalarga ham moslashtirish ham ko’zda tutilgan. Ko’rib turganingizdek, Kotlinning maqsadi anchayin keng. Kotlin faqatgina bir soha muammolariga yoxud, bugungi kunda dasturchilar duch keladigan ma’lum turdagi qiyinchilikni hal qilishga qaratilmagan. Aksincha, u dasturlash jarayonida yuzaga keladigan barcha holatlarda samaradorlikni oshirishga yo’naltiriligan.
Endi esa Kotlinning dasturlash tili sifatidagi keyingi asosiy xususiyatiga e’tibor qaratamiz.
Statik dasturlash tili
Xuddi Java singari, Kotlin ham statik dasturlash tilidir. Bu shuni anglatadiki, dasturdagi har bir ifoda turi kompelyatsiya vaqtida ma’lum bo’ladi, va kompilyator siz foydalaniyotgan funksiya va o’zgaruvchilarni siz ishlatayotgan obyektlarda mavjudligini tekshiradi. Bu boshqa JVMda ishlovchi dasturlash tillari bo’lgan Groovy va JRuby kabi dinamik dasturlash tillaridan farq qiladi. Chunki dinamik dasturlash tillarda o’zgaruvchi va funksiyalar qaytaradigan turlari dastur ishlashi davomida aniqlanadi. Bu esa kamroq kod va ma’lumotlar strukturasini yaratishdagi ko’proq moslashuvchanlikka imkon beradi. Biroq yomon tomoni shundaki, nomlarni noto’g’ri yozish kabi muammolar kompilyatsiya vaqtida aniqlanmaydi va bu dastur ishlashi davomida xatoliklar yuzaga kelishiga sabab bo’ladi.
Boshqa tomondan qaraganda, Javadan farqli o’laroq, Kotlin sizning kodingizdagi har bir o’zgaruvchining turini batafsil aniqlashni talab qilmaydi. Ko’p holatlarda, o’zgaruvchilarni turi vaziyatdan kelib avtomatik tarzda aniqlanishi mumkin va bu sizga turini e’lon qilishni tushirib qoldirishga imkon yaratadi.
Quyida buning eng oddiy misoli berilgan:
Siz o’zgaruvchini e’lon qilmoqchisiz va u butun son qiymati bilan kiritilayotganligi sabab, Kotlin o’zgaruvchining int turida ekanligini avtomatik tarzda aniqlaydi. Kompilyatorning turlarni aniqlay olish qobiliyati type inference deb ataladi.
Quyida statik dasturlash tillarning ba’zi foydali jihatlari berilgan: