Kotlin Nedir?

Google’ın 2017’deki son etkinliğinde resmen duyurusunu yaptığı KOTLIN, yazılım dünyasında deprem etkisi yaptı. Özellikle hali hazırda Java ile Android uygulaması geliştirenlerin çoğu bu haberi heyecan ve endişeyle karşıladı. Aykut Taşdelen yol sohbetlerinde Kotlin’in aslında çok da yeni bir gelişme olmadığını yaklaşık 1 yıldır gündeminde olduğunu ve Kotlin’e dair görüşlerini anlatıyor. Java mı daha iyi, Kotlin mi? Kotlin’e geçmeli miyim? Java’nın sonu mu geldi? gibi çeşitli sorulara bu video’da cevaplar bulacaksınız.

Reklamlar

Java’daki super anahtar sözcüğü nereden geliyor ?

Java’da taban sınıftan türemiş sınıfa (yani üst sınıfa) erişimi sağlayan “super” anahtar sözcüğünün nereden geldiğini hiç düşündünüz mü ? Bu kelime, günlük İngilizce’de (mükemmel, birinci sınıf vb) anlamlarında kullanılan dilimize de yerleşmiş bir sözcüktür. Ancak kelimenin asıl kökeni Latince’dir (superior). Latince’de (üst, üstünde, üzerinde) anlamlarında kullanılan bu sözcük, tıp ve anatomide de yer belirtmek için kullanılır. Örneğin :

Konka Nasalis Superior (Burnun üst kısmındaki kıkırdağın ismi)
Superior Orbital Fissure : Göz çukurunun üzerindeki deliğin ismi.

Superior’un tersi ise inferior kelimesidir ve (alt, altında gibi) anlamlara gelir. Örneğin günümüzde sıkça kullandığımız “infra structure” tamlaması da (alt yapı) bu kelime ile ilişkilidir. Latince’de diğer yer belirten sözcükler şöyledir :

Lateral : Yan
Dorsal : Sırt kısmı
Medial : Orta eksen
Mezial : Orta eksenin iç kısmı
Distal : Orta eksenin dış kısmı
Anterior : Ön kısım
Posterior : Arka kısım

Bu durumda web’de sıkça kullandığımız postback kelimesine yorumlarınızı bekliyorum 🙂

java static import

Java dilinde sınıfların statik olan üyelerini import etmek bu sayede söz konusu statik üyeleri sınıf ismini belirtmeksizin kullanmak mümkündür. Sözgelimi test paketindeki Sample sınıfı;

static-import-java

Bu sayede foo(), bar() ve constant isimli üyeler sınıf ismi belirtilmeden kullanılabilmiştir.

‪Microsoft‬ .NET ‪Framework‬ çekirdek kodlarını ‪github‬’da paylaşmaya başladı

Şahsım adına yıllardır Microsoft’un bir çıkmazda olduğunu bunun da gerekçesinin son 4-5 yıldır dişe dokunur yeni bir paradigma ortaya çıkaramamalarına bilhassa da bu süreçte mobil dünyadaki gelişmeleri ıskalamış olmalarına bağlıyor bunu da her ortamda dillendiriyordum. Hatta bu gidişin Microsoft’un başına zamanında ‪#‎IBM‬’in başına gelen şeyi getireceğini söylüyordum. Sanırım son kertede yaşanan pratik beni haklı çıkardı.

Bu sözlerime bakıp da beni bir Microsoft düşmanı vs diye nitelendirmeyin zira 2002’den beridir .NET üzerine de eğitimler veren Microsoft’un üst üste 7 kez ‪#‎MVP‬ unvanı verdiği, ‪#‎INETA‬ (uluslararası .net birliğinde) ortadoğu afrika ve Türkiye başkanlıkları yapmış birisiyim. Halen de çalıştığım üniversitede ‪#‎Android‬ dersleri dışında inatla ‪#‎WindowsPhone‬, ‪‎ASP.NET‬ ‪#MVC‬ gibi dersler de veriyorum. Bu gelişmeyi de kendi adıma Microsoft’un “can havliyle” ‪#‎opensource‬ dünyasından medet ummasına bağlıyorum. Bu sayede Android, IOS, Linux, Macosx gibi sistemlerde uygulama geliştirebilmek ya da GlassFish, JBoss, Apache gibi web server’larda ASP.NET uygulamalarını çalıştırabilmek gibi ütopyaları gerçekleştirebilmek mümkün olacak. Şüphesiz bunu Java ölecek gibi yorumlayıp üzülenler de olmuş ama ben bu tedirginliği pek mantıklı bulmuyorum doğrusu.

Diğer yandan anlam veremediğim şey ise şu; Microsoft zaten yıllardır Framework’ün kaynak kodlarını açık tutuyordu hatta ‪#‎Mono‬, ‪#‎Rotor‬ gibi projeler bu şekilde ortaya çıkmıştı. Hatta Microsoft yıllardır  “dotnet” ismini bir marka gibi konumlamaktan vazgeçip ürün gibi konumlamayı seçmişti. Yani dotnet bir selpak değil kağıt mendildir vurgusunu yapıyordu. Diğer taraftan bu altyapının standartlarını ise CLI (Common Language Infrastructure) adı altında standardizasyona sokmuştu (ECMA – 335 standartları).

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf

Microsoft’un resmi söylemlerine göre Mono’nun ayrı bir kod tabanı olduğu yani onun sıfırdan yazıldığı rotor’un ise open source lisansının olmadığı ve bazı uyumsuzluklarının olduğu yönünde. Bu noktada özellikle NuGet ve sıra dışı programlama vurgusu yapıyor. Enteresan noktalardan birisi de Microsoft’un bu konuda XAMARINE isimli firmayla bir tür ortak çalışma yapıyor olması. Malumunuzdur bu firma monodroid, monotouch gibi android ve ios üzerine .net ile uygulama geliştirmenin yolunu açan cross platform araçları geliştirmişti.

Yani “sanki” bütünüyle yeni olmayan bir durumu Microsoft’un çok yeni birşey yapmış gibi bir PR malzemesi haline daha getirmeye çalıştığını düşünüyor, sizlerin de yorumlarını merak ediyorum. Bu arada kodlar aşağıdaki adrese “kısmen” upload edilmiş. https://github.com/dotnet/corefx