Data Vinci 23 : Kotlin
Görkem Özdoğan | July 28, 2017 | Data Vinci | 6 Comments
Bu yazı serisini takip edenler farketmiş olacaktır ki birçok alanda yazılar yayınlamaktayım. Bunlardan bir diğeri olan “Kotlin” başlıklı yazı da kendi kişisel merakımdan ortaya çıktı. Kotlin web sitesindeki tanımıyla “Statically typed programming language” olarak lanse ediliyor. JetBrains firması tarafından geliştirilmiş bir programlama dilidir. Wikipedia’da yazdığına göre kotlin kelimesi Kotlin Adasından gelmektedir. Bu da demektir ki günün birinde biz de bir programlama dili yapsak adına “Avşa” diyebiliriz.
Peki neden fakir bedenlerimize Kotlin enjekte etmeliyiz? Daha düşük seviye bir soru ise Java öldü mü? Bu sorulara verilecek cevaplardan ilki için, daha kolay ve hızlı yazılım geliştirilebilecek bir programlama dili olması diyebiliriz. Peki Java ölür mü? Dostum, sen Kotlin dersin cenazene Java gelir. Şu an için Java’nın ölmesi için gerekli semptonlar yok. Zaten pratikte Java ve Kotlin ile yazılan kodlar, aynı çıktıyı üretiyor. O yüzden ister Java ile isterse Kotlin ile yazılım geliştirilsin, sonuç Bytecode olacağı için fazla tatava yapmaya gerek yok.
Temel kaygıları giderdikten sonra biraz daha fularlı bir soru biçimine gark edebiliriz. Kotlin abartılmış bir balon mudur? Yahut Kotlin “hype” bir kavram mıdır? Bu sorulara cevap arayalım. Öncelikle Kotlin‘i denemiş ve amansız bir şekilde savunan kişilerin dayandığı en büyük argüman Java‘nın eski bir dil olması, endüstri standartlarının gelişmesi ile de birçok modern dil yeniliğini de bir şekilde ıskalıyor olması.
Kotlin‘in özelliklerini listeleyecek olursak:
Staticly Typed, yani design-time’da kullanılacak değişkenin tipi belirtilmelidir.
Java ile uyumludur.
Kotlin ile yazılan kodlar, java kodlarına göre daha kısa olmaktadır. Buna izin veren özellikler ise Null-safety, Extension Functions, String templates, Singletons, Operator Overloading, Data Classes, Coroutines, Smart casts, Primary Constructors gibi maddeler ile ifade edilebilir. Detaylı kıyas için : Comparison to Java
Sözdiziminin daha “human friendly”, yani yazması kolay olması.
Her şey sütlimanmış gibi görünse de namespace kavramının olmaması, static modifier kullanmanın biraz takla attırmak gerektirmesi ve dönüşüm işleminin zaman zaman @JvmField, @JvmStatic gibi işaretleyiciler ile yapılması, sentetik şeker olarak bilinen property accessor syntax kullanımının Java atomik metotlarında sıkıntı çıkarmasından dolayı suppress işlemi gereksinimi, her ne kadar “Line of Code” azalıyor olsa da “Method Count” artışı yaşanması bardağın boş tarafı olarak karşımıza gelmektedir. Az biraz cahil olanın beyni şu an yandı.:)
Pek uzun biraz yazı olmasa da , özetle Kotlin endüstri tarafından üretilmiş yazılımcı ihtiyaçları göz ardı edilmeden mümkün mertebe az karmaşık hedefiyle geliştirilmiş bir programlama dili. Bugünden yarına Java’nın yerini alacağını söylemek cahilliğin dibi olacakken, Android’in desteklediği diller arasına girmesi gelecekte Kotlin’i daha fazla duyacağız anlamına gelebilir. Bu bağlamda Kotlin denildiğinde en azından bir programlama dili olduğunu bilmek gerekir. Önümüzdeki süreçte mobil tarafta bir ihtiyacım olursa bizzat “sahada” kullanma fırsatı yakalayacağım. Umarım o zaman da Kotlin misyonerliği yapmak isteyebilirim:) Herkese iyi günler, faydalı olması dileklerimle.
Kotlin resmi sayfasında yer alan antreman linki: https://kotlinlang.org/docs/tutorials/
Kotlin’i merak edip bir şeyler denemek isteyenler için bir playground: https://try.kotlinlang.org
Açık kaynak projeler listesi : https://kotlinlang.org/docs/resources.html
Kotlin ile ilgili linkler içeren site : https://kotlin.link
İntihal Alarmı: Konu ile ilgili araştırma yaparken Türkçe içerikli yazılara da bir göz attım. Ne yazık ki intihal almış başını gitmiş. Üzücü bir durum. Referans verilmeden paragraf kopyalamak da intihale sebep olmaktadır. Lütfen yapmayınız. Biraz ordan çalayım biraz burdan yapıştırayım dendiğinde farkedilmiyor mu sanıyorlar acaba? Akademik hayatta yapsanız sizi selasız gömerler. İnternet camiasında ise ifşa direklerinde salladırırlar adamı. Ben kendime bu tarz bir misyon yüklemediğim için kişi isimlerini vermiyorum.
Yazı 1 :
Yazı 2 :
Bu seferlik ifşa etmiyorum site isimlerini fakat bundan sonra bu tarz intihal örneklerinde isim vermeyi düşünüyorum. Ne derler varoşlarda “Emeğe saygı”.
Data Vinci 26 : Big Data
Data Vinci 21 : Internet of Things
Data Vinci 7 : Scrum
Data Vinci 22 : Doğal Dil İşleme
Alkan ARSLAN	 July 30, 2017 Reply
intihal alarmı konusu için, bu intihal i bulmanızda buyuk bir emek tebrikler. O arkadaşları arayıp buldum 🙂
Görkem Özdoğan	 July 31, 2017 Reply
Dikkat edilmesi gereken bir durum diye düşünüyorum. Sonuçta içerik üretilirken bir takım kaynaklara başvuruluyor. Fakat birebir yazıları kopyalamak yazan kişiye saygısızlık yapmak. Katkınız için teşekkür ederim. Selamlar.
Muhammed Hilmi	 September 22, 2017 Reply
Bu konuda naçizane bir karalama: https://medium.com/t%C3%BCrkiye/toplumsal-bir-hastal%C4%B1%C4%9F%C4%B1m%C4%B1z-haz%C4%B1rc%C4%B1l%C4%B1k-ve-sonu%C3%A7lar%C4%B1-ee518d3f08de
Görkem Özdoğan	 October 4, 2017 Reply
Alkan Ulutaş	 July 31, 2017 Reply
Görkem Özdoğan	 August 1, 2017 Reply