11 Nisan 2018 Çarşamba

En Popüler Programlama Dilleri İndeksi

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”
"Sadece iki tür programlama dili vardır: insanların sürekli şikayet ettikleri ve hiçbir kimse tarafından kullanılmayanlar."
― Bjarne Stroustrup

Onlarca programlama dili ve yüzlerce scripting dili bilişim dünyasında aktif olarak kullanılmakta. Programcılığa yeni başlayan biri olarak hangisinde uzmanlaşmanız gerektiğine karar vermede zorluk çekmeniz kaçınılmaz. Her yıl bir biri ardına tanıtılan diller, mevcut dillere eklenen frameworkler, kütüphaneler, eklentiler. C/C++ ve onlardan türeyen, over-engineered (mühendislik sürecine gereğinden fazla maruz kalmış) Java ve C# gibi ileri seviyeli diller artık programcılar tarafından tercih edilmemeye başladı. Syntax'ı daha az yoran, noktalı virgülle, küme parantez ile uğraştırmayan scripting tarzı dillerin poülaritesi her geçen gün artıyor. Programlama öğrenenler sınıftı, miras almaydı, çok biçimlilikti bu tür işlerle uğraşmak yerine fonksiyonel programlama ile projelerine çözüm üretme derdindeler. 
Dünya çapında bir çok saygın kuruluş yaygınlık, mesleki eğilim ve proje üretimine göre programlama dillerini sıralıyorlar. IEEE (Institute of Electrical and Electronics Engineers ) ise her yıl çeşitli kriterleri baz alarak programlama dillerini sıralandırıyor. IEEE'nin  Spectrum dergisinde yayınlanan araştırmaya göre 2017 yılında Python dili popülerliğini artırmaya devam ediyor. İş bulma indexine göre Java birinciliğini korurken, Spectrumun kendi analizine ve popülerlik indexine göre Python birinci sırada. İş bulma indeksine göre ilk 20 programlama dili aşağıdaki gibidir;
İş bulma endeksine göre ilk 20 program (Kaynak : ieee-spectrum)
İş bulma endeksine göre Java uzun yıllardır liderliğini koruyor; web, mobil ve enterprise yazılımların üçünü de desteklediği ve Java Sanal Makinasının (JVM) bir çok cihazda sorunsuz çalışmasından dolayı yaygınlığını uzun yıllar koruyacak bir programlama dili. C ve C++ özellikle gömülü sistemlere olan desteği sayesinde iş bulma sıralamasında 2 ve 4. sıraları tutmakta. Python ise scripting tarzı kodlama ve eklentileri ile hızlı bir şekilde yaygınlaşmaya devam ediyor. Bir kaç yıl içinde iş alanında da liderliği Java'dan alması bekleniyor. Web programcılığının olmazsa olmaz scripting dili JavaScript 5. sırada. C# ise gerilemeye devam ediyor, multiplatform ve ücretsiz sürümlere geç kalmanın cezasını çekmeye devam ediyor.  PHP ve HTML ise bilmek ise hala iş bulmada önemli bir sırada, her ne kadar PHP frameworkleri artık konvansiyonel PHP anlayışını sarsmış olsada, onu bilmek şart. Ruby'nin kolaylığı, opensource olması büyük bir camia oluşturuyor. Apple'ın iOS programı Swift ise 10. sırada yerini alıyor. İlk 20'de yer alan R ve GO dilleri ise ilerleyen yıllarda ilk 10'a gireceğe benziyor. R'ın özellikle big data üzerinde sağladığı kolaylık dikkat çekici.
Yukarıdaki liste bölgesel ve ülke bazında farklılıklar gösterebilir, mesala Türkiye'de web ağırlıklı diller daha önce sıralarda yer alabilir. Çin'de ya da Avrupa'daki durumda birbirinden farklı olabilir ama dünya ortalaması yukarıdaki gibi seyrediyor.

IEEE Spectrumun kendi değerlendirmesinde ise ilk 20 yazılım dili aşağıdaki gibi görünüyor;
IEEE Spectrum sıralaması

Bu sıralama da Python'ın zirveyi aldığı görülüyor. Yukarıdaki liste sadece iş bulma kriterini baz alırken, bu liste popülerlik, open source olma, kullanıcı sayısındaki artış vb. bir çok kriterin dikkate alınması sonucu ortaya çıkmıştır. İlk 5 de yer alan dillerde çok fazla değişiklik olmazken, R ve GO dillerinin bu listede ilk 10'da yer aldığını görüyoruz.

Trend olma kriterine göre ilk 20 dil aşağıda verilmiştir;
Trend olma durumuna göre diller

Trend olma durumuna göre listelendiğinde Python yine en başta yer alıyor. Apple ve iOS programlama da kullanılmasından dolayı Swift 5. sırada GO ise 7. sırada yer alıyor. C# 'ın ise hızlı bir şekilde kan kaybettiğini görüyoruz.

RedMonk.com sitesinin, web tabanlı yazılım depolama ve paylaşma ortamı olan GitHub ortamından derlediği verilere göre ise ilk 20 Programlama dili şu şekildedir;
Github üzerinden derlenen popülerlik grafiği (kaynak: redmonk.com)

 GitHub üzerinden dağıtılan yazılım eklentilerinden anlaşıldığı üzere birinci sırada JavaScript yer alıyor. Hemen ardından Java, Php, Python geliyor. İlk 10 nerede ise aynı dillerden oluşuyor. Listeyi yukardaki grafikten okumakta zorluk çekiyorsanız;

1 JavaScript
2 Java
3 Python
4 PHP
5 C#
6 C++
7 CSS
8 Ruby
9 C
10 Swift
10 Objective-C
12 Shell
12 R
14 TypeScript
14 Scala
16 Go
17 PowerShell
18 Perl
19 Haskell
20 Lua
 
Kişisel tahminlerime göre bir kaç yıl içinde Python zirveye oturacak. Dil öğrenen insanlar artık dilin yapısallığına bakmıyor ve kolay kod yazmak istiyor, dolayısı ile scripting tarzı diller olan Python, Ruby, Go tarzı dillere yöneliyorlar. C/C++ ve Java yaygınlık ve platform zenginliği sebebiyle daha uzun yıllar ilk sıralarda yer alacaklar, öte yandan C# için aynı durum söz konusu olmayacak, Microsoft'un yanlış politikaları sonucu C# sadece Windows platformlarına sıkışmış durumda ve kan kaybetmeye devam edecek. R dili ise yaygınlığını artıracak, big dataya olan ilgi arttıkça adını daha sık duyacağız. Apple Swift'i çıkararak programcıları Objective-C çilesinden kurtardı, başka bir programlama dilini piyasaya sürene kadar Swift'in popülerliği artmaya devam edecek. Öte yandan Swift'i andıran özellikleri ve Google'ın 2017 de Android için Kotlin'i varsayılan dil yapacağını duyurması insanların ilgisini bir anda bu dile yöneltmesine sebep oldu. Önümüzdeki yıl muhtemelen Kotlin'i de ilk 10 da göreceğiz.

Umarım programcılığa yeni başlayan yada meraklı programcılar için faydalı bir yazı olmuştur.

9 Nisan 2018 Pazartesi

Algoritma Soruları 043 - Armstrong sayılarını bulmak

Seviye : Başlangıç

Tüm basamaklarındaki rakamların sayı değerlerinin küpleri toplamı,kendisine eşit olan sayılara "Armstrong sayı"denir. 100 ve 999 sayıları arasındaki Armstrong sayılarını bulan programı yazınız?

Açıklama: Aşağıda bazı Armstrong sayıları gösterilmiştir;

8 Nisan 2018 Pazar

Kotlin Dersleri - 11 - Sınıf ve nesne kavramı

Kotlin!de sınıflar Java syntaxı ile aynı şekilde tanımlanır. Fakat sınıflar aynı zamanda yapıcı method için parametre de alabilirler. Yapıcı fonksiyon ise init ön eki ile gerçekleştirilir.

class ogrenci(ad : String ){
    var isim : String = ""     
    var soyad : String = ""
     
    fun ekle () : String = this.isim + " " + this.soyad
     
    init {
        println("merhaba $ad")
    }
}

Yukarıda tanımlanan ogrenci sınıfı, ad değişkenini yapıcı fonksiyon için alabilmektedir. Yapıcı fonksiyon ise init ön eki ile tanımlanmış.

fun main(args: Array<String>){
    var ogr = ogrenci("ali")

    ogr.isim = "mehmet"    ogr.soyad = "yasin"
    //println(ogr.isim + " " + ogr.soyad)
    println(ogr.ekle())
}

Main alanında nesne tanımlanırken new komutuna gerek yoktur. Değer ataması yapılacak değişken nesneyi içinde tutmaktadır.

Tüm kodlar;
class ogrenci(ad : String ){
    var isim : String = ""    var soyad : String = ""
    fun ekle () : String = this.isim + " " + this.soyad
    init {
        println("merhaba $ad")
    }
}

fun main(args: Array<String>){
    var ogr = ogrenci("ali")

    ogr.isim = "mehmet"    ogr.soyad = "yasin"
    //println(ogr.isim + " " + ogr.soyad)
    println(ogr.ekle())
}

 Dersi video olarak da izleyebilirsiniz;

Kotlin Dersleri - 10 - ArrayList

Kotlin'de liste kullanımı Java ile nerdeyse aynı, tanımlama yapılırken ArrayList<Tür adı> şeklindekullanılmaktadır. Oluşturulan listeye add() komutu ile elementler yerleştirilmekte, get(indis) ile elemanlar okunabilmektedir.

var liste = ArrayList<String>()

liste.add("bir")
liste.add("iki")
liste.add("üç")
liste.add("dört")
liste.add("beş")
liste.add(0,"sıfır")

Yukarıda string türünde bir liste tanımlanmış ve get metodu ile elemanlar yerleştirilmiş. get(indis, değer) fonksiyonu ile istenilen indise yerleştirme yapılabilir.

println(liste)

println(liste[2])
println(liste.get(4))

liste.remove("beş")
liste.removeAt(4)
//liste.removeAll()
liste.set(1,"biiiiir")
println(liste)

Köşeli parantez veya get metodu ile elemanlar okunabilir. Remove komutu ile silinebilir, set komutu ile değeri değiştirilebilir.

liste.contains("iki") //trueliste.contains("dört") //false
liste.isEmpty() //false// liste.clear() //listeyi temizler
liste.indexOf("sıfır") // index değeri 0 döndürür
//liste.equals(liste2)

 contains ile belirtilen değişkenin listede olup olmadığı kontrol edilebilir. Listeye değer atanıp atanmadı ise isEmpty komutu ile gerçekleştirilebilir.

Arraylist içindeki elemanlar for yada foreach döngüsü ile alınabilir;

for(str in liste) print(str + " ")

liste.forEach { str -> print(str + " * ") }

Tüm kodlar;
fun main(args: Array<String>){
    var liste = ArrayList<String>()

    liste.add("bir")
    liste.add("iki")
    liste.add("üç")
    liste.add("dört")
    liste.add("beş")
    liste.add(0,"sıfır")

    println(liste)

    println(liste[2])
    println(liste.get(4))

    liste.remove("beş")
    liste.removeAt(4)
    //liste.removeAll()
    liste.set(1,"biiiiir")
    println(liste)

    liste.contains("iki") //true    liste.contains("dört") //false
    liste.isEmpty() //false    // liste.clear() //listeyi temizler
    liste.indexOf("sıfır") // index değeri 0 döndürür
    //liste.equals(liste2)
    for(str in liste) print(str + " ")

    liste.forEach { str -> print(str + " * ")  }
}

Dersi video olarak da izleyebilirsiniz;


Kotlin Dersleri - 09 - Extension ve Infix fonksiyonlar

Bazı durumlarda fonksiyonun başında bir değer olması gerebilir. Bu tür fonksiyonlara eklemeli (extension) fonksiyonlar denir. 

//Extension functions
fun Int.topla(sayi1:Int) : Int = this+sayi1

fonksiyon çağrılırken önüne Int tipinde bir sayı konulabilir. 

var a = 9.topla(8).topla(10) //9 + 8println(a)

Yukarıda main fonksiyonundan çağrılan extension topla fonksiyonu gösterilmiştir. 9.topla(8) ifadesi 17 döndürürken 17.topla(10) durumuna gelir ve sonuç 27 olarak döner. Burada fonksiyon toplama işleminden daha karışık bir işlem seçilebilirdi, örneğin 8 rakamını 9 kere ekrana yaz vb. Extension fonksiyonlar özel işlem durumlarında normal fonksiyonlara göre işleri oldukça kolaylaştırmaktadır.

Infix fonksiyonlar ise daha önceki derslerde anlattığımız in, downto, step gibi sözcük ekleriyle yapılan fonksiyonlardır. Bu fonksiyonlarda program anlaşılırlığını kolaylaştırır. Ayrıca programcının kendi tanımladığı infix fonksiyonlar ile Kotlin çok daha fazla özelleştirilebilir. Infix fonksiyonlar tanımlanırken başına "infix" öneki konulur.

//Infix functions  downto, step
 infix fun String.ekle(s : String) : String = this + s

Bu fonksiyonların kullanımı ise şöyledir;

println("yasin" ekle " hoca")

 Kodların tamamına bakacak olursak;
fun main(args: Array<String>){

    var a = 9.topla(8).topla(10) //9 + 8    println(a)

    println("yasin" ekle " hoca")

}

//Extension functions
fun Int.topla(sayi1:Int) : Int = this+sayi1


//Infix functions  downto, stepinfix fun String.ekle(s : String) : String = this + s

Bu dersi video olarak izleyebilirsiniz;

7 Nisan 2018 Cumartesi

Kotlin Dersleri - 08 - Fonksiyonlar

Kotlin'de tüm fonksiyonlar "fun" kelimesi ile başlar. Fonksiyon tanımlarken aşağıdaki yapı kullanılır.

fun  fonksiyon_adi(giriş parametleri) : dönüş_türü {işlemler}

Root alanına tanımlanan fonksiyonlar main fonksiyonu veya diğer fonksiyonlardan çağrılabilirler.

fun topla(sayi1:Int, sayi2:Int) :Int{
    return sayi1+sayi2
}

sayi1 ve sayi2 'yi toplayıp integer tipinde geri döndüren fonksiyon yukarıda tanımlanmıştır.

Fonksiyon değer döndürmüyorsa türü "Unit" olarak tanımlanabilir. Java ve C de kullanılan void ile aynıdır.

fun carp(sayi1: Int,sayi2: Int) : Unit{println(sayi1*sayi2)}
//unit değer döndürmeyen fonksiyonlarda, void

Fonksiyonlarda yapılan işlem kısa ise {} parantez kullanımına gerek yoktur.

fun cikar(sayi1: Int,sayi2: Int) : Int = sayi1-sayi2

Aşağıda çeşitli fonksiyonlar ve bunların main fonksiyonundan çağrılması gösterilmiştir.

fun main(args: Array<String>){
    var sonuc = topla(3,8)
    println(sonuc)

    sonuc = cikar(5,13)
    println(sonuc)

    println("İsminizi giriniz :")
    var isim : String
    isim = readLine()!!.toString()
    println(merhabaYaz(isim))

    println(bol(5.0f,3.0f))

}

fun topla(sayi1:Int, sayi2:Int) :Int{
    return sayi1+sayi2
}

fun cikar(sayi1: Int,sayi2: Int) : Int = sayi1-sayi2

fun merhabaYaz(isim : String) : String = "Merhaba " + isim

fun carp(sayi1: Int,sayi2: Int) : Unit{println(sayi1*sayi2)}
//unit değer döndürmeyen fonksiyonlarda, void
fun bol(sayi1: Float,sayi2: Float=1.0f) : Float = (sayi1/sayi2).toFloat() // (float) a/b

Dersi video olarak da izleyebilirsiniz;


Kotlin Dersleri - 07 - Diziler

Kotlinde sabit değerli diziler "arrayOf()" komutu ile tanımlanıyor. Başlangıç değerleri parantez içine belirtildiğinde kotlin tür tanımlamasını kendisi yapıyor.

val dizi = arrayOf(1,2,3,4,5,6)

burada tanımlanan dizi değişkeni içine number türü veri aktarıldığı için tür otomatik olarak integer olarak atanıyor.

Dizi elemanları okunurken köşeli parantez [] yada get komutu kullanabilirsiniz.

println(dizi[0])
println(dizi.get(5))

 Yine dizi elmanlarına değer atarken köşeli parantez yada set komutu kullanabilirsiniz.

dizi[0] = 25println(dizi[0])
dizi.set(1,35)
println(dizi[1])

Dizi tanımında tür belirtilecekse yada dizi başlangıç elemanları aynı tanımlanacaksa aşağıdaki kodları kullanabilirsiniz.

val rakam = Array<Int>(5){0} //{0,0,0,0,0}

5 elemanlı dizinin tamamı 0 ile tanımlanmış. <Int> şeklinde integer tipinde dizi tanımlanmış. Bu alana String, Boolean vb. tür ismi belirtebilirsiniz.

rakam[0] = 100        //{100,0,0,0,0}rakam.set(2,150)      //{100,0,150,0,0}rakam.set(4,300)      //{100,0,150,0,300}

atama işlemleri ve dizinin son durumu yanında verilmiştir.

Dizi elemanları for döngüsü ile kolayca alınabilir. Burada "değişken: tür in dizi" diyerek dizinin tamamını bir range gibi kullanabiliriz.

for(x:Int in rakam){
    print("$x - ")
}

Dersi video olarak da izleyebilirsiniz;



Kotlin Dersleri - 06 - Do-While Döngüsü

Kotlin'de While  ve do/while döngüleri Java da olduğu gibi kullanılabiliyor. Her iki döngüde de döngü adımlarını tutacak olan indisleri kendimizin artırıp azaltması gerektiğini unutmayalım. While ve Do-While döngüleriin tek farkı ilk adımın çalışma şeklidir, Do döngüsünde en az bir adım döngü çalışırken, while döngüsünde şart sağlanırsa döngü çalışmaya başlar.

var i : Int = 0while (i<30){
    if(i%7==0) print("$i - ")
    i++
}

0'dan 30'a kadar devam eden döngü, döngü başında i indisi sıfırlanmalı yada döngü hangi adımdan başlayacaksa o adımdan devam etmeli. Burada i++ ile her adımda i birer artırılmıştır, istenirse i+=2 yada daha büyük sayı verilerek adımlar tıpkı step komutunda olduğu gibi ayarlanabilir.

i=0
do {
    if(i%5==0) print("$i - ")
    i++
}while (i<30)

Benzer şekilde do while döngüsünde de aynı işlem gerçekleşitirilebilir. Yukardaki örnekte 7'ye bölünen sayılar yazdırılırken aşağıda 5'e bölünen sayılar yazdırılmıştır.

Dersi video olarak da izleyebilirsiniz;



6 Nisan 2018 Cuma

Kotlin Dersleri - 05 - For döngüsü ve Range

Kotlin'de for döngüsü, C ve ondan türeyen dillerde kullanılandan biraz farklıdır. Range olarak tabir edilen ve sayı aralığı yada herhangi bir sequence belirten ifadelerler yapılır. Bu ifadeler örneğin 1 - 100 arasındaki sayılar için 1..100 şeklindedir.

Aşağıda for döngüsü örneği mevcuttur;

//for(i=0;i<10;i++) c türevi dillerde kullanılan genel for döngüsü
var i : Int
for(i in 1..10){ //1..10 buna RANGES deniyor    print("$i - ")
}

Döngü adımları birden fazla olacaksa step ifadesi kullanılır. "1..100 step 2" burada adımlar 1-3-5-7.... şeklinde yüze kadar devam edecektir. Aşağıdaki örenği inceleyelim;

//birden 100'e kadar tek sayıların toplamı?var toplam : Int = 0
for(i in 1..100 step 2){
    toplam += i    //toplam = toplam +i}

println("\n1'den 100'e kadar sayıların toplamı = $toplam")

Aşağıya doğru ters döngü ise downto komutu ile gerçekleştirilir;

//aşağıya doğru döngülerfor(i in 10 downTo 1 step 2) {
    print("$i - ")
}
a

Bir aralıkta döngü kurulacaksa örnek olarak 20 ile 30, burada ya range kullanılacaktır 20..30 yada until ifadesi;
//until komutufor(i in 10 until 20){
    print("$i - ")
}

println()

//range'ler değişken olarak tanımlanabilirval a = 30..40
for(i in a){
    print("$i - ")
}

Aralıklar (range) if ile de kullanılabilir;
//range'ler if ile kullanılabilirval b = 35if(b in a) println("\n30 ve 40 arasında")

val az = "a".."z"val karakter = "h"if(karakter in az) println("alfabetik karakterdir")

 Dersi video olarak da izleyebilirsiniz;


Kotlin Dersleri - 04 - When şart bloğu

Kotlin dilinde switch-case yapısı yerine WHEN bloğu kullanılmaktadır. Değerlendirelecek değişken when(değişken) olarak işleme alınır. Değişken değerinin eşitliği kontrol edilir ve yapılacak işlem karşısına tanımlanır. 

print("1-5 arasında sayı giriniz : ")
var sayi : Int = readLine()!!.toInt()

when (sayi){
    1 -> {println("bir")}
    2 -> {println("iki")}
    3 -> {println("üç")}
    4 -> {println("dört")}
    5 -> {println("beş")}
    else -> {
        println("aralık dışında sayı")}
}

Yukarıdaki örnekte kullanıcının girdiği sayısal değer yazı ile ifade edilmiştir.

Eğer aralık sorgulanacakca 1..10 şeklinde range kullanılabilir. Aşağıdaki örneği inceleyiniz;

print("1-20 arasında sayı giriniz : ")
var a : Int = readLine()!!.toInt()

when(a){
    in 1..10 -> {
        println("Bir ve on arasında")}
    in 11..20 -> {
        println("on ve 20 arasında")}
    else -> {
        println("aralık dışında")}
}

Bu dersi video olarak da izleyebilirsiniz;

3 Nisan 2018 Salı

Kotlin Dersleri - 03 - If-Else Şart Bloğu

Kotlin'de if-else şart bloğunun kullanımı C dilinden türeyen dillerde olduğu gibi kullanılıyor. "If(şart) doğruysa else yanlışsa" kalıbı korunmuş.

if(ortalama>=60) {
    println("GEÇTİNİZ")
} else { println("KALDINIZ") }

Ayrıca aralık(range) kontrolude if bloğunda destekleniyor.
if(ortalama in 60..100) {}

 burada ortalamanın 60 ile 100 arasında olup olmadığı kontrol ediliyor. Bu durum and ile daha uzun bi şekilde çözülebilir ama range ile kolayca hallediliyor.


fun main(args: Array<String>){
    var vize : Float = 0.0f    var final : Float = 0.0f    var ortalama : Float = 0.0f
    print("Vize notunu giriniz :")
    vize = readLine()!!.toFloat()

    print("Final notunu giriniz :")
    final = readLine()!!.toFloat()

    // ortalama = vize %40 + final %60
    ortalama = ((vize*0.40) + (final*0.60)).toFloat() // (float)
    println("Ortalamanız = " + ortalama)

    if(ortalama>=60) {
        println("GEÇTİNİZ")
    } else { println("KALDINIZ") }

    if(ortalama>=90 && ortalama<=100) println("Notunuz AA")    // && ve,  || veya
    else if(ortalama>=80 && ortalama<90) println("Notunuz BA")
    else if(ortalama>=70 && ortalama<80) println("Notunuz BB")
    else if(ortalama>=60 && ortalama<70) println("Notunuz CC")
    else if(ortalama>=50 && ortalama<60) println("Notunuz DD")
    else println("Notunuz FF")

}

Bu dersi video olarak izleyebilirsiniz;

2 Nisan 2018 Pazartesi

Kotlin Dersleri - 02 - Kullanıcıdan veri almak


Programlama diline ismini veren Kotlin adası
Kotlin'de konsol üzerinden kullanıcı verisi almak için readLine() komutu kullanılır.Bu komut varsayılan olarak veriyi String türünde alır.

var isim = readLine()
var yas  = readLine()

yukarıda yas değişkeni konsoldan alındığında String türünde olacaktır.

println("a sayısını giriniz:")
var a = readLine()
println("b sayısını giriniz:")
var b = readLine()

var c : Int = a!!.toInt() + b!!.toInt()
print("$a ve $b sayılarının toplamı = " + c)

 tür dönüşümü ise !!.toInt ya da !!.toString() şeklinde yapılabilir.

fun main(args: Array<String>){
    var isim = readLine()
    var yas  = readLine()

    println(isim)
    println(yas)

    println("a sayısını giriniz:")
    var a = readLine()
    println("b sayısını giriniz:")
    var b = readLine()

    var c : Int = a!!.toInt() + b!!.toInt()
    print("$a ve $b sayılarının toplamı = " + c)

} 

Dersi video olarak izlemek için;

Kotlin Dersleri - 01 - Değişkenler ve veri tipleri

Bu derste ilk Kotlin programımızı yazdıktan sonra değişken tanımlama ve veri türlerini öğreneceğiz. Kotlin programında program başlangıç noktası main fonksiyonudur. Fonksiyon dışında kalan alanlar ise Root olarak adlandırılır. Bu alanda tanımlanan değişkenler global olarak davranırlar.

fun main(args: Array<String>) {  
    println("Merhaba Kotlin")
}

Tüm fonksiyonlar "fun" ön eki ile başlarlar, yukarıdaki kod ile main fonksiyonu tanımlandı ve println() komutu ile string konsola basılmış oldu. Kotlin dilinde satır sonlarına ";" noktalı virgül koymaya gerek yoktur. 

Değişken tanımlama da ise iki temel yaklaşım vardır. Bunlardan biri sabit değerli değişkenler için "val" ve değişken değrliler için "var" ön ekidir.


Fonksiyon dışında kalan root alanında tanımlanan değişkenler global'dir ve tüm fonksiyonlarda kullanılabilir.  Yukardaki örnekte görüldüğü üzere val ile tanımlanan değişkenlere sonradan değer atanamaz. var ön ekinde ise atanabilir. Bu bakımdan val Java'daki final terimine karşılık geliyor diyebiliriz. Değişkenlere tür tanımaması ":Int" şeklinde yapılabileceği gibi atanan değerin türüne göre kotlin derleyicisi bir tür tanımlaması da yapabilmektedir.

Bu dersi video olarak da izleyebilirsiniz

1 Nisan 2018 Pazar

Kotlin Dersleri - 00 - Çalışma ortamının hazırlanması

Kotlin, Java sanal makinası üzerinde(JVM) çalışan ayrıca JavaScript olarak de derlenebilen oldukça yeni bir programlama dilidir. Rusya merkezli Java ve diğer open source diller için IDE geliştiren Jetbrains firması tarafından 2011 yılında duyurulmuştur. 2017 yılında Google'un Android'in resmi dili olacağını duyurmasından sonra yaygınlaşmaya başlamıştır. Apple'ın iOS geliştirme dili olan Swift ile benzerlikleri oldukça fazladır. Syntax yapısı Scala diline benzemekle birlikte Basic ve Pascal benzeri sözdizimleri de mevcuttur. C++ dan türeyen dillerden gelen yazılımcılar için alışması biraz zaman alsada kolay entegre olunabilen bir dildir.

Dilin resmi sayfasına kotlilang.org adresinden ulaşılabilir. Burada bulunan online deneme sayfasından hemen kod yazmaya başlayabilirsiniz. https://try.kotlinlang.org

try.kotlinlang.org adresinden hemen kodlamaya başlayabilirsiniz.

Kotlin için geliştirici firmanın web sitesinden IntelliJ Idea programını indirerek Kotlin yazmaya başlayabilirsiniz. Java programcılarının yakından tanıdığı olan  IntelliJ Idea'nın çalışması için ise Java JDK'nın kurulu olması gerektiğini hatırlatalım.

IntelliJ'in tüm özelliklerini Kotlin içinde kullanabilirsiniz.

 Kotlin'i aşina olduğunuz Eclipse IDE'si ile kullanmak isterseniz, help/marketplace alanında Kotlin araması yaparak eklentiyi indirebilirsiniz. Eklenti çok tutarlı çalışmıyor bu yüzden IntelliJ ile çalışmanızı tavsiye ediyorum.

Kotlin ile ilgili bir  Youtube PLAYLIST oluşturmaktayım, oradan video dersleri takip edebilirsiniz.

Bu ders için görsel anlatıma aşağıdan ulaşabilirsiniz.