Kotlin
Paradigması | Çok paradigmalı; nesne yönelimli, fonksiyonel, declarative, emirsel (imperative), eş zamanlı (concurrent) |
---|---|
İlk çıkışı | 22 Temmuz 2011 | )
Tasarımcı | JetBrains |
Geliştirici | JetBrains ve açık kaynak katkıcıları |
Kararlı sürüm | Kotlin 1.9.22 (21 Kasım 2023 | ) )
Etkilendikleri | Java, Scala, Groovy, C#, Gosu, JavaScript |
Platformu | Çıktısı Java sanal makinesi bytecode ve JavaScript kaynağı |
İşletim sistemi | Tüm JVM ya da JavaScript yorumlayıcılı platformlar |
Lisans | Apache 2 |
Olağan dosya uzantıları | .kt, .kts |
Web sitesi | kotlinlang.org |
Kotlin, Java sanal makinesi (JVM) üzerinde çalışan ayrıca JavaScript kaynak koduna veya LLVM ile makine koduna derlenebilen, statik tipli bir programlama dilidir. İlk geliştirme Sankt-Peterburg, Rusya merkezli JetBrains programcıları tarafından yapılmıştır.[1] İsmi Kotlin Adası'ndan gelmektedir. Java ile uyumlu sözdizimi olmasa da, Kotlin Java kodu ile birlikte çalışmak üzere tasarlanmıştır. Kotlin, Apple'ın Swift diline benzemektedir.[2]
Tarihçe
[değiştir | kaynağı değiştir]Temmuz 2011'de JetBrains, JVM için yeni bir dil olan ve bir yıldır geliştirilmekte olan Project Kotlin'i duyurdu.[3] JetBrains lideri Dmitry Jemerov, Scala dışındaki çoğu dilin aradıkları özelliklere sahip olmadığını söylemiştir.[3] Ancak, Scala'nın düşük derleme zamanını apaçık bir eksiklik olarak gösterdi. Kotlin'in belirtilen hedeflerinden biri, Java kadar çabuk derlemektir. Şubat 2012'de JetBrains, projeyi Apache 2 lisansı altında açık kaynak olarak yayınlamıştır.[4]
Kotlin v1.0, 15 Şubat 2016'da yayınlanmıştır.[5] Bu ilk stabil sürümü olarak kabul edilir ve JetBrains bu sürümden itibaren geriye dönük uyumluluk taahhüdünde bulunmuştur.
Kotlin, Google I/O 2017'de resmi bir Android geliştirme dili olarak duyurulmuştur. Java ve C++'tan sonra Android için tamamen desteklenen üçüncü dil oldu.[6]
Felsefe
[değiştir | kaynağı değiştir]Geliştirme sorumlusu Andrey Breslav, Kotlin'in nesne yönelimli endüstriyel bir dil ve Java'dan "daha iyi bir dil" olarak tasarlandığını söyledi. Ancak hala Java koduyla tamamen birlikte çalışabilir ve şirketler Java'dan Kotlin'e kademeli bir geçiş yapabilir.[7]
Sözdizimi
[değiştir | kaynağı değiştir]Kotlin değişken bildirimleri ve parametre listelerinin veri türü, değişken adından sonra gelir. Scala ve Groovy'de olduğu gibi, noktalı virgül bir deyim sonlandırıcısı olarak isteğe bağlıdır; çoğu durumda derleyici ifadenin sona erdiğini anlaması için bir satırsonu yeterlidir.[8]
Anlamsal
[değiştir | kaynağı değiştir]Nesnel tabanlı programlamanın sınıflarına ve metodlarına (Kotlin'de üye fonksiyonları olarak adlandrılır) ek olarak, Kotlin ayrıca fonksiyon kullanımı ile prosedürel programlamayı da destekler.[9] C ve C++'da olduğu gibi, Kotlin programının giriş noktası "main" olarak adlandırılan fonksiyondan, herhangi bir komut satırı argümanı içeren diziler geçer. Perl ve Unix/Linux shell script stili dize enterpolasyonu desteklenmektedir. Ayrıca tür çıkarımı da desteklenir.
Merhaba, Dünya! örneği
fun main(args : Array<String>) {
val kapsam = "Dünya"
println("Merhaba, $kapsam!")
}
Kotlin, null ve null olmayan veri türleri arasında bir ayrım yapar. Tüm null nesneler tür isminin ardından "?" ile bildirilmelidir. Null nesneler üzerinde yapılan işlemler geliştiricilerin özel bakımına ihtiyaç duyar: null kontrolü, değeri kullanmadan önce gerçekleştirilmelidir. Kotlin, geliştiricilere yardımcı olmak için null-safe operatörleri sağlar:
- ?. (Null şartlı operatörü) muhtemelen boş bir nesnenin bir metoduna veya özelliğine güvenle erişmek için kullanılabilir. Nesne boş ise, metot çağrılmaz ve ifade null olarak değerlendirilir.
- ?: (Boş birleştirici operatör) çoğu kez Elvis operatorü olarak anılır:
fun merhabaDe(belki : String?, nullDegil : Int) {
// elvis operatorünü kullan
val isim : String = belki ?: "yabancı"
println("Merhaba $isim")
}
Güvenli navigasyon operatörünün kullanımına bir örnek:
// foo null ise, veya bar() ya da baz() null döndürürse, null döndürülür.
foo ?. bar() ?. baz()
Araçlar
[değiştir | kaynağı değiştir]- IntelliJ IDEA, Kotlin için bir eklentiye sahiptir.[10]
- JetBrains ayrıca Eclipse için eklenti desteği sunmaktadır.[11][12]
- Apache Maven,[13] Apache Ant[14] ve Gradle[15] dahil olmak üzere yayın Java kurulum araçları desteklenir.
Dış bağlantılar
[değiştir | kaynağı değiştir]- Resmî site (İngilizce)
- Web-demo ve örnekler 3 Aralık 2020 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
Kaynakça
[değiştir | kaynağı değiştir]- ^ Heiss, Janice (Nisan 2013). "The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav". oracle.com. Oracle Technology Network. 8 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Şubat 2014.
- ^ http://nilhcem.com/swift-is-like-kotlin/ 20 Mayıs 2017 tarihinde Wayback Machine sitesinde arşivlendi. Swift-is-like-kotlin
- ^ a b Krill, Paul (22 Temmuz 2011). "JetBrains readies JVM language Kotlin". infoworld.com. InfoWorld. 15 Temmuz 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Şubat 2014.
- ^ Waters, John (22 Şubat 2012). "Kotlin Goes Open Source". ADTmag.com/. 1105 Enterprise Computing Group. 29 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Şubat 2014.
- ^ "Kotlin 1.0 Released: Pragmatic Language for JVM and Android | Kotlin Blog". Blog.jetbrains.com. 15 Şubat 2016. 22 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Nisan 2017.
- ^ "Kotlin Is Officially Joining The Android's Family, In Addition To Java And C++". Eyerys. 18 Mayıs 2017. 21 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Mayıs 2017.
- ^ "JVM Languages Report extended interview with Kotlin creator Andrey Breslav". Zeroturnaround.com. 22 Nisan 2013. 19 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Şubat 2014.
- ^ "Semicolons". jetbrains.com. 23 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Şubat 2014.
- ^ "functions". jetbrains.com. 23 Kasım 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Şubat 2014.
- ^ "Kotlin :: JetBrains Plugin Repository". Plugins.jetbrains.com. 31 Mart 2017. 29 Mayıs 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Nisan 2017.
- ^ "Getting Started with Eclipse Neon - Kotlin Programming Language". Kotlinlang.org. 10 Kasım 2016. 23 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Nisan 2017.
- ^ "JetBrains/kotlin-eclipse: Kotlin Plugin for Eclipse". GitHub. 16 Şubat 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Nisan 2017.
- ^ "Using Maven - Kotlin Programming Language". kotlinlang.org. 3 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mayıs 2017.
- ^ "Using Ant - Kotlin Programming Language". kotlinlang.org. 3 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mayıs 2017.
- ^ "Using Gradle - Kotlin Programming Language". kotlinlang.org. 9 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mayıs 2017.