Merhaba Scala!

Herkese merhaba!  Scala ile ilgili bu ilk yazımda Scala’nın ne olduğundan, geliştirme yapmak için nelerin gerektiğinden bahsedeceğim ve hızlı bir giriş yapmak adına artık gelenek haline gelmiş “Hello world!” uygulamasını gösteceğim. İlerleyen zamanlarda da fırsat buldukça yeni yazılarla başka birçok konuyu anlatmaya çalışacağım. Ben Scala’yı 2 yıldır öğreniyor/kullanıyorum ve çok seviyorum. İnşallah anlattıklarımdan sonra siz de seversiniz. 🙂

Not: Yazılarımda sık sık diğer programlama dilleri ve özellikle Java ile Scala arasında karşılaştırmalar yapacağım.

Haydi başlayalım!

Scala Nedir?

scala-logo
http://www.scala-lang.org/

Scala bir programlama dilidir. 2003 yılında İsviçre’de Martin Odersky ve EPFL’deki araştırma grubu tarafından geliştirilmiş ve bugüne kadar oldukça büyümüş. Günümüzde dünya çapında yüzbinlerce kullanıcısı var ve yine dünya çapında çok sayıda insan tarafından geliştirilmekte ve sürdürülmekte. Açık kaynaklı bir dil. Derlendiği zaman Java kodu üretiliyor ve Java Sanal Makinası (JVM) üzerinde çalışıyor. Yani Java’nın çalıştırığı her yerde Scala da çalıştırabiliyorsunuz. Hatta Scala ile Java kodunu birlikte bile kullanabiliyorsunuz. Scala ile nesne yönelimli programlama (object-oriented programming, OOP) ve ek olarak fonksiyonel programlama yapabiliyorsunuz. Hatta Scala birçok noktada fonksiyonel programlama yöntemlerini kullanmaya teşvik ediyor. Sözdizimi (syntax) olarak kendine özgü yanları var ve düşündüğünüzde gerçekten fazlalık olan birçok şey atılmış. Bu konulara ilerleyen yazılarda daha detaylı değineceğim ve Scala’nın Play Framework ile birlikte web uygulamarı geliştirmek için kullanımını anlatacağım.

Ne Gerekir ve Nasıl Kurulur?

Scala ile geliştirme yapmaya başlamak için 3 temel şeye ihtiyacınız var.

  1. Kod yazabileceğiniz bir metin düzenleyici veya geliştirme ortamı
  2. Kodunuzu derleyebilmek için Scala
  3. Derlediğiniz uygulamanızı çalıştırabilmek için Java

Yüklemelerin detaylarına inmeyeceğim. Eğer bir sorunuz olursa yorum yazabilirsiniz, daha detaylı konuşabiliriz.

Ben yazılarım sırasındaki geliştirmeyi Mac OS X üzerinde Java 8 ve Scala 2.11.7 sürümleri ile yapacağım. Kod yazmak için de yerine göre Sublime Text 3 metin düzenleyici ve IntelliJ IDEA 15 kullanacağım. Yazılarıma ekleyeceğim kod parçalarını da Github’ın Gist özelliğini kullanarak ekleyeceğim.

Yüklemelerinizde yardımcı olması açısından yukarıda bahsettiklerimin bağlantılarını da vereyim.

İlk Scala Programı

Haydi artık ilk uygulamamızı görelim ve üzerine biraz konuşalım.

Yukarıda gördüğünüz yazabileceğimiz belki de en basit uygulama. Tek yaptığı şey varsayılan çıktı kanalına (yani uygulamayı çalıştıracağınız terminal ekranına) bir satır halinde “Merhaba Scala!” yazmak. Şimdi biraz daha detaylara girelim. Daha çok başlarda olduğumuzdan adım adım ilerleyeceğim ama ilerideki yazılarda bu kadar detaya in(e)meyebilirim. 🙂

İlk satırda object özel kelimesiyle “MerhabaScala” isimli bir Scala objesi oluşturuyoruz. Objelerin detaylarını ilerleyen yazılarda anlatacağım. Şimdilik bunu Java’daki bir class gibi düşünebilirsiniz.

İkinci satırda Scala’nın sözdizimi ile ilgili – eğer başka dillerle, özellikle Java ile geliştirme yapıyorsanız dikkatinizi çekecek – ilk farklılıklarla karşı karşıyayız. def özel kelimesiyle bir metod tanımlıyoruz. Metodumuzun adı “main” ve diğer birçok dildeki gibi uygulamamızın başlayacağı noktayı belirliyor. Şu an için yazmadık ama başka sınıflarımız, objelerimiz ve metodlarımız olsaydı bile uygulamamız bu main metodu ile çalışmaya başlayacaktı. Metodun adından sonra parantezler içinde metodun parametrelerini tanımlıyoruz. Metodumuzun 1 tane parametresi var. Bu parametre uygulamamız çalıştırılırken ona aktarılan komut satırı parametrelerine karşılık gelecek bir String dizisi. İlerleyen yazılarımda bu konuya da değinmeyi düşünüyorum. Parametrenin adı args ve türü Array[String]. Scala’da bir değişkenin, parametrenin, metodun veya değerin türünü belirtmek için önce adını, sonra türünü yazıyoruz ve bunları : (iki nokta üst üste) ile birbirinden ayırıyoruz. Parametrenin bir dizi (Array) türünde olduğundan bahsetmiştim. Array türüne, Scala’nın sağladığı zengin koleksiyon kütüphanesinden bahsedeceğim yazımda daha detaylı değineceğim. Parametrelerden sonra – tıpkı bir parametrenin türünü belirttiğimiz gibi – metodumuzun geriye döndüreceği türü yazıyoruz. main metodumuz geriye Unit türünde bir değer döndürüyor. Unit türü Java ve başka bazı dillerdeki hiçlik belirten void türüne karşılık geliyor. Yani aslında main metodumuz geriye bir değer döndürmeyecek, sadece bazı işlemler yapacak. Metodun dönüş türünü de belirttikten sonra metodun imzasının bittiğini ve gövdesinin başlayacağını belirtmek için = (eşittir) işareti yazıyoruz. Daha sonra metodun gövdesini yazıyoruz. Metodun gövdesini süslü parantezler {} arasına yazıyoruz. Eğer metodun sadece bir satırlık bir gövdesi olacaksa, Scala süslü parantezleri kullanmadan da yazmamıza izin veriyor. Yukarıda bahsettiğim gibi, Scala’da birçok durumda eğer bir şey kesinlikle gerekmiyorsa onu atabiliyoruz. Bunu zamanla göreceğiz. 🙂

Üçüncü satırda main metodumuzun gövesi başlıyor. Burada uygulamamızın yaptığı tek işi tanımlıyoruz. Yaptığımız şey println (print line) metodunu çağırmak. Metoda doğrudan ulaşabildik çünkü Scala’da her uygulamaya kendiliğinden dahil edilen tanımlamalar var ve println onlardan biri. Bu metod kendisine pasladığımız parametrelerin değerlerini standart çıktı kanalına yazdırıyor ve bir sonraki satıra geçiyor. Java’daki System.out.println metoduna karşılık geliyor. Ayrıca görmüş olduğunuz gibi satır sonunda ; (noktalı virgül) yok. Scala’da – yine gereksiz olduğu için – noktalı virgüller atılmış. İfadeler yeni satırlar ile birbirinden ayrılıyor. Eğer bir satırda birden fazla ifade yazmak istiyorsanız aralarına ; koymanız gerekiyor. Onun dışında neredeyse hiç ihtiyacınız olmayacak.

Şimdi Scala sözdizimine biraz daha aşina olmanız için yukarıda anlattıklarım hakkında bir iki küçük örnek göstereyim ve sonra uygulamalarımızı nasıl çalıştıracağımıza bakalım.

İşte örnek metod tanımlamaları

Gördüğünüz gibi ilk metodumuzun gövdesi tek satırdan oluştuğu için süslü parantezler kullanmadık. Ayrıca metoddan dönecek değeri belirtmek için  return özel kelimesini kullanmadık. Scala metodun gövdesindeki son ifadenin değerini kendiliğinden geri döndürüyor. “val” özel kelimesi ile değeri değişmeyen bir değer tanımlıyoruz. Diğer dillerdeki değişken tanımlama ile aynı yapıda. İlerleyen yazılarımda bunlardan daha detaylı bahsedeceğim.

Scala Uygulamasını Çalıştırmak

Artık uygulamamızı çalıştıralım değil mi? 🙂 Geliştirme yaptığınız ortama göre değişmekle birlikte Scala kodunuzu birkaç farklı şekilde çalıştırabilirsiniz.

1. Scala REPL

Scala, REPL (read-evaluate-print loop) denilen, “oku-değerlendir-yazdır döngüsü” şeklinde Türkçeleştirebileceğim bir yorumlayıcı ile birlikte geliyor. Ben REPL’a “canlı yayında Scala” da diyorum. 🙂 REPL ile doğrudan Scala kodu yazıp çalıştırabilirsiniz. Yazdığınız her ifade anında yorumlanacak ve çalıştırılacaktır. Bir şeyleri denemek, alıştırmalar yapmak gibi birçok iş için harika bir araçtır. Scala kurulumunuzu doğru yaptıysanız bir terminal ekranında (komut satırı) “scala” komutunu çalıştırarak REPL’ı başlatabilirsiniz. Aşağı yukarı şöyle görünüyor.

Screenshot 2015-11-29 00.11.05

REPL’dan çıkmak için “:q” komutunu çalıştırabilir veya terminali kapatabilirsiniz.

2. Terminalden “scala” Komutu İle

Scala kodunuzu “.scala” uzantısıyla biten bir dosyaya yazıp bu dosyayı derleyip çalıştırabilirsiniz. İlk uygulamamızı “MerhabaScala.scala” isimli bir dosyaya kaydettikten sonra dosyanın bulunduğu dizinde “scala MerhabaScala.scala” komutu ile uygulamayı çalıştırabilirsiniz. Hazır aklıma gelmişken söyleyeyim. Scala’da, Java’daki gibi dosya adının, içine yazdığınız koddaki sınıf ile hatta genel olarak kod ile bir bağlantısı yok. Bir Scala dosyası içine dosyanın isminden farklı bir veya birkaç sınıf yazabilirsiniz. Hatta sınıf veya objeler olmadan sadece ifadeler yazarak bir script (betik) gibi de çalıştırabilirsiniz. Bu yöntemle çalıştırdığımız ilk uygulamamız aşağıdaki gibi görünecek.

Screenshot 2015-11-29 00.15.37

3. Bir Bütünleşik Geliştirme Ortamı (IDE) Kullanarak

Muhtemelen en kolay ve en çok tercih edeceğiniz yöntem bu olacak. Kullanacağınız IDE’ye bağlı olarak değişmekle birlikte genellikle “Uygulamamı derle ve çalıştır.” şeklinde bir komut ile, muhtemelen tek bir tuşa basarak uygulamanızı çalıştırabileceksiniz. Bir IDE olarak IntelliJ IDEA üzerinde Scala geliştirmeyi ayrı bir yazımda anlatacağım ve ondan sonraki yazılarımda IntelliJ IDEA kullanıyor olacağım. Temel konulardan bahsedeceğim ilk yazılarımda 2. yöntemi kullanmak muhtemelen sizin için en kolayı olacak.

Sonuç

Evet, bu yazımda Scala’nın ne olduğundan, Scala ile geliştirme yapmak için nelerin gerektiğinden, Scala ile yazılabilecek ilk uygulamadan ve uygulamaları nasıl çalıştıracağımızdan bahsetmeye çalıştım. Biliyorum, çok fazla “İlerleyen yazılarımda bahsedeceğim.” dedim ama takdir edersiniz ki her şeyi bir yazı ile anlatmam mümkün değil. Mümkün olduğunca küçük parçalar halinde, sizleri sıkmadan yazmaya çalışacağım.

Görüşmek üzere. Hoşça kalın! 🙂

Kaynaklar

Scala hakkında genel bilgiler, tarihçe ve logo için: http://www.scala-lang.org

Reklamlar

Merhaba Scala!” üzerine bir yorum

Bir Yanıt Bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s