Kotlin - 1 - Giriş


Kotlin Nedir ?

“JetBrain” (InteliJ, Android Studio ve benzeri Çok kullanılan IDE’lere imza atan ekip)  tarafından geliştirilen ve kabaca Java syntax’ının evrimleştirilmiş hali olarak niteleyebileceğimiz bir programlama Dilidir. Kotlin Kodları JVM bytecode ‘a dönüştürülebilir ve Java ile %100 iç içe çalışabilme uyumluluğu vardır. Ayrıca Google tarafından, Android Platformu için kabul edilen resmi diller arasına eklenmiştir.  Kotlin kodunu Javascript'e derleme yeteneği ile Kullanım alanı ve rekabet gücü açısından ilerdedir.

Kotlin dilinin farkları:
1   
      1-) Temiz Kod yapısı: Kotlin, Java dilinin törpülenmiş ve evrimleştirilmiş hali gibi düşünürsek, aşağıdaki örnektede görülebileceği gibi Syntax olarak daha temiz ve Anlaşılır bir yapıya sahip.
      
   Kotlin:
fun main(args: Array<String>) {
println("Hello, World!")
}

JAVA:

public class HelloWorld {
public static void main(String[] args) {
//Prints "Hello, World" to the terminal window.System.out.println("Hello, World");
}
}

2    2-) Null Güvenliği: Java Dilinde sıklıkla yaşanabilecek, “Null Pointer Exception” hatasından dolayı sıkıntı yaşamayan yoktur, sanırım. Kotlin Null değerleri gerek çalışma anında gerekse Derleme sırasında Tüm Null kontrollerini gerçekleştirir, bu nedenle oldukça rahatsız eden bir hatadan bizleri kurtarmış oluyor.

Örnek olarak, aşağıdaki şekilde bir kod JAVA ortamında derlenecek ancak Çalışma esnasında hata fırlatacaktır.

String a = null;
System.out.println(a.length());

Kotlinde ise, değişkenler nullable olmadığı için aşağıdaki kod normal şartlar altında derlenmeyecektir.

val
a:String = null

Yinede derlenmek istenir ise aşağıdaki şekilde derlenebilir, bu duruda da, ilk “?” ile değişken nullable yapılırken, ikinci “?” ile null kontrolü eklenmiş oluyor. Böylece hata fırlatmak yerine “null” ifadesi dönecektir.

     val a: String? = null
println(a?.length)


3    3-) Fonksiyonel programlama: Kotlin üst düzey fonksiyonel programlama özelliklerine sahip, input olarak ya da output olarak fonksiyon kullanan fonksiyonlar yazılabilir.

Örnek olarak, Şu şekilde bir Filter fonksiyonun kodunuza implement edildiğini düşünelim;

fun <T> filter(items: Collection<T>, f: (T) -> Boolean): List<T> {
val newItems = arrayListOf<T>()
for (item in items) if (f(item)) newItems.add(item)
return newItems
}

bir dataset filtrelenerek Fonksiyona verilmek isteniyorsa, lambda ifade ile aşağıdaki şekilde ifade edilebilir,

            filter(numbers, { value -> value >= 5 })
             
Bir adım ileriye taşırsak, ön tanımlı keyword “it” ile dahada kısaltılıp sadeleştirilebilir,

             filter(numbers) { it >= 5 }

Böylece ifade oldukça basit bir hale gelmiş oluyor.

      4-)  Uyumluluk: Kotlin JDK 6 uyumludur, Böylece eski Android cihazlarda desteklenir ve Android Studio ile tam uyumlu çalışır. Java Kodu ile %100 uyumlu olarak beraber çalışabilir.

      5-)  Performans: benzer bytcode yapısı sayesinde Java one kadar hızlı çalışabilir, lamda ifadeli tek satıra indirgenmiş fonksiyonlar, Java da yazılan aynı koddan bile hızlı çalıştığı ifade ediliyor. Kotlin runtime kütüphaneleri çok küçük boyutludur, sadece birkaç yüz method ekler ve derleme sonrası yaklaşık 50-100K bir boyut artışına neden olur. İlave bouta rağmen derleme metodunun etkili yapısı sayesinde çoğu zaman Java yad denk hatta bazen daha kısa derleme zamanı sağlar.

Ağırlıklı olarak Android amaçlı Kotlin değerlendirilmiştir ancak, sunucu ve javascript tarafı içinde Kotlin olduğunu unutmamak lazım, Ayrıca Sunucu için Kotlin Java Web uygulaması destekleyren tüm sunucularda Kullanılabilir.


Yorumlar

Yazılar

Genesys Nuance-ASR Entegrasyonu Port Kullanımı

Kotlin - 3 - Paket tanımı ve Import