Kotlin
Kısaca
Kotlin, JVM üzerinde çalışan, Java ile sorunsuz uyum sağlayan, özlü ve statik tipli bir dildir; Android ve sunucu tarafı geliştirmede yaygın kullanılır.
Kotlin nedir?
Kotlin, JetBrains tarafından geliştirilen ve 2016'da 1.0 sürümüyle yayımlanan, genel amaçlı bir programlama dilidir. Java'nın yaygın sıkıntılarını gidermek ve onunla sorunsuz çalışmak üzere tasarlandı: Kotlin kodu Java kütüphanelerini, Java kodu da Kotlin'i çağırabilir; çoğu zaman aynı projede. Google, 2019'da Kotlin'i Android uygulama geliştirme için tercih ettiği dil olarak duyurdu.
Kotlin statik tiplidir ve güçlü tip çıkarımı yapar; bu yüzden val name = "Ada" ifadesinin bir String olduğu belirtilmeden bilinir. Tipler varsayılan olarak null olamaz: null tutabilecek bir değişken String? gibi soru işaretiyle bildirilmelidir ve derleyici eksik durumu ele almanızı zorunlu kılar. JVM üzerinde bellek JVM'in çöp toplayıcısı tarafından yönetilir; Kotlin ayrıca JavaScript'e, WebAssembly'ye ve yerel koda da derlenebilir.
Kotlin; Android uygulamalarında, sunucu tarafı uygulamalarında ve Kotlin Multiplatform aracılığıyla iş mantığını Android, iOS, masaüstü ve web arasında paylaşan platformlar arası projelerde kullanılır. Eşzamansız kodu sıradan ardışık kod gibi okunur biçimde yazmanın yerleşik bir yolu olan eş yordamlar (coroutines), ağ işlemlerini ve arka plan işlerini daha basit hale getirir. Kotlin'i Java ile kıyaslamak, aynı yolları ve yakıtı kullanan daha yeni bir araba modeline benzer: aynı JVM ve kütüphaneler üzerinde çalışır, ama ek güvenlik özellikleri yerleşiktir.
Kotlin sıklıkla Java'nın yerine geçecek bir dil olarak görülür, ancak onu bir yoldaş olarak anlamak daha doğrudur. Aynı JVM bayt koduna derlenir; bu yüzden ekipler genellikle iki dili tek bir kod tabanında karıştırır ve kademeli olarak geçiş yapar. Gündelik koddaki tipik farklar arasında null güvenliği, kalıp kodu ortadan kaldıran veri sınıfları (data classes) ve mevcut tiplere metot ekleyen uzantı fonksiyonları (extension functions) vardır.
Önemli noktalar
- Kotlin JVM bayt koduna derlenir ve Java ile tam uyumlu çalışır.
- Tipler varsayılan olarak null olamaz; bu da null işaretçi hatalarını önlemeye yardımcı olur.
- Güçlü tip çıkarımı ve özlü sözdizimiyle statik tiplidir.
- Eş yordamlar hafif eşzamansız ve eşzamanlı programlama sağlar.
- Kotlin, çok platformlu projeler için JavaScript, WebAssembly ve yerel kodu da hedefleyebilir.
Örnek
// A data class gets equals, hashCode, toString and copy for free
data class User(val name: String, val email: String?)
fun main() {
val users = listOf(User("Ada", "ada@example.com"), User("Grace", null))
for (user in users) {
// ?. is a safe call and ?: supplies a default when the value is null
val domain = user.email?.substringAfter("@") ?: "no email"
println("${user.name}: $domain")
}
}Sık sorulan sorular
Kotlin ile Java arasındaki fark nedir?
İkisi de JVM bayt koduna derlenir ve aynı projede birlikte kullanılabilir. Kotlin, tip sisteminde null güvenliği, veri sınıfları, uzantı fonksiyonları ve eş yordamları daha özlü bir sözdizimiyle sunar; Java ise daha uzun bir geçmişe ve daha geniş bir mevcut kod birikimine sahiptir.
Kotlin öğrenmek için Java bilmem gerekir mi?
Hayır. Kotlin ilk dil olarak da öğrenilebilir; yine de Java bilmek, eski Android kodunu okurken veya Java kütüphanelerini kullanırken yardımcı olur.
Kotlin yalnızca Android için mi?
Hayır. Kotlin sunucu tarafı uygulamalarında da kullanılır ve Kotlin Multiplatform, kodu Android, iOS, masaüstü ve web hedefleri arasında paylaşabilir.
İlgili sayfalar
- JavaProgramlama Dilleri, s. 15Java, Java Sanal Makinesi için bayt koda derlenen, statik tipli ve nesne yönelimli bir programlama dilidir; programlar birçok platformda çalışabilir.
- SwiftProgramlama Dilleri, s. 31Swift, güvenlik ve hız için tasarlanmış, derlenen ve statik tipli bir dildir; çoğunlukla Apple platformları için uygulama geliştirmede kullanılır.
- Tür çıkarımıProgramlamanın Temelleri, s. 53Tür çıkarımı, derleyicinin bir değişkenin ya da ifadenin türünü otomatik olarak belirlediği bir özelliktir; her tür bildirimini yazmanız gerekmez.
- EşzamanlılıkProgramlamanın Temelleri, s. 19Eşzamanlılık, bir programın birden çok görevde örtüşen zaman dilimlerinde ilerleyebilme yeteneğidir; örneğin birçok kullanıcıya aynı anda hizmet vermek gibi.
- Çöp toplamaProgramlamanın Temelleri, s. 9Çöp toplama, dil çalışma zamanının programın artık kullanamadığı verileri bulup bu belleği yeniden kullanıma açtığı otomatik bellek yönetimidir.
- OOPProgramlamanın Temelleri, s. 41OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
- JVMProgramlama Dilleri, s. 17JVM, Java bytecode'unu çalıştırır; böylece derlenmiş bir program her işletim sisteminde çalışır. Kotlin, Scala ve Clojure da bu bytecode'a derlenir.
- DartProgramlama Dilleri, s. 8Dart, Google'ın yerel koda ve JavaScript'e derlenen, statik tipli ve çöp toplamalı dilidir; en çok Flutter uygulamalarının dili olarak bilinir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin