Adım Adım Ruby - 1 -

September 21, 2007

Ömrüm boyunca “C sytax”(C++, PHP, Java, C#, JS) dillerde geliştirmeler yaptım ve onları öğrendim. Bu nedenle Ruby‘i kabullenmek ve sindirmek benim için çokta kolay olmadı. Lakin, Ruby‘in özelliklerini görünce tüm ön yargılar, yerini eğlenceli bir oyuncağa bıraktı. Ruby öğrenme sürecimi bu kategori altında sizlerle paylaşacağım. Şimdi bakalım ilk adım ne olmalı?

Neden Ruby’i Seçmeliyim ? Ruby, son birkaç yılda Ruby on Rails ile popülerlik kazanan bir dil. Henüz Python gibi çok geniş bir kütüphane arşivine sahip değil! Ama yakın gelecekte bu açığın doldurulacağına hiç şüphe yok. Ruby bir betik (script) dili. Ve betik dillerinden beklenen en önemli özelliğe sahip. Çeviklik ! Aşağıda bazı ilgi çeken özelliklerini size fikir vermesi için yazacağım. Not: Bu özelliklere detaylı olarak bir sonraki yazımda “programlamaya yeni başlayanlara” anlatır gibi beraber göz atacağız. C’de böyle Java da şöyle gibi notlarımı da aralara serpiştireceğim elbette.

Ne diyorduk? Ruby çok amaçlı bir dil olsa da günümüzde özellikle web uygulamalarının geliştirilmesinde kullanılıyor. Web uygulamalarında tercih edilme sebeplerinden biri anında sonucu görebilmeniz. Yani Java’daki gibi derle bak, aptal uygulama sunucusunu yeniden başlat gibi absürdlükler yok!. ASP.NET 2.0 ile beraber, Java’daki bu salak mimariye alternatif olarak App_Code gibi bir özellik gelmiş durumda. Tabii katmanlı mimariye geçtiğiniz an oda aynı şekilde derleme vs. gerektiriyor. (Tabii binary kütüphanelerin şöyle bir avantajı var. Kütüphane yazan proje ekibinin kodunu kullanan ekibin kafasına göre kod değiştirmesine engel oluyor. Böylece versiyon ve kod tabanı dağılmamış tek bir ekibin hakimiyetinde oluyor. Neyse konumuz bu değil gerçi ama aklıma gelmişken ileteyim dedim.

Bunca laf ebeliği yaptıktan sonra, benim neden Ruby‘i seçtiğimi söyleyeyim. Web uygulamamın Linux sunucunda koşmasını istiyorum. C# dilini seviyorum ama maalesef Mono hala sinir olmadan yazabileceğiniz bir durumda değil! Ruby, Python gibi zorlayıcı özellikleri yok. Özellikleri ile kod yazarken eğlenmenizi sağlıyor. Çok hızlı gelişen bilişim sektöründe, aklınıza gelen fikrin, en hızlı şekilde ürüne dönüşmesi için, her projede muhakkak yaptığımız tekrarları Ruby on Rails framework’unun engelliyor olması.

Nereden Başlamalı ? Bilgisayarınıza Ruby‘i indirerek başlayabilirsiniz! :-) Ruby, P3OS (Popüler 3 İşletim Sistemi: Windows, OSX, Linux)’ı destekler! Ruby‘i kodlarını denemek için irb uygulamasını kullanabileceğiniz gibi windows kurulum paketinde gelen SCiTE editorunude kullanabilirsiniz. Ruby‘i bilgisayarınıza kurduktan sonra, Mark Slagell tarafından yazılan, Pınar Yanardağ tarafından güzel türkçemize kazandırılan Ruby Kullanıcı Klavuzu dökümanını okumanızı öneririm. Genel bir bakış yapmanızı ve Ruby‘e olan ön yargıları yıkmanıza ve ilk adımı hızlıca yapmanızı sağlayacağı gibi aşağıda önereceğim kitaplar için bir ön hazırlık olacaktır.

Ruby‘e bir giriş yapıp ne olduğunu öğrendikten sonra Ruby on Rails’i indirebilir ve Rails ile denemeler yapmaya başlayabilirsiniz. Rails ile ilgili denemeler için tavsiyem, şu eğitmene (tutorial) bakmanızı öneririm. Eğer genel Ruby hakkında daha fazla bağlantı arıyorsanız buradan bulabilirsiniz..

Rails’i terminalden şablon kodları generate ederek kullanabileceginiz gibi bir tüm platformlarda çalışabilen IDE’ler yardımıyla da kullanabilirsiniz. Ruby için, Eclipse eklentilerinin yanı sıra, Eclipse üzerine inşa edilmiş Aptana isimli JS IDE’sinin eklentisi olarak duyurulan Rad Rails’i kullanmanızı öneririm. Eğer Netbeans kullanmayı seviyorsanız Netbeans 6.0 ile Ruby desteği geldiğini söylemeliyim. Söylememe gerek var mı bilmiyorum ama, Vim ve Emacs ile Ruby yazmanız da mümkün!

Ne Gibi Özellikleri Var ? Mantıksal İşlemler: Ruby denetleyicileri ile biraz Perl’ü anımsatsa da, benim özellike ilgimi çeken === operatörü. Bu operatör ile bir sayıyı aralığını tek hamlede kontrol edebiliriz.

irb(main):001:0> i = 4 irb(main):002:0> (2..5) === i => true

Yordamsal Nesneler: Bu özelliği C’deki fonksiyon göstericilerine (function pointer) benziyor. Yada C#’taki temsilci (delegate)’ler gibi çalışıyor. Bir kod kümesini bir yordam(process) icine alarak, daha sonra çağrı yapabilirsiniz.

irb(main):001:0> deamon = proc{ print "Deamon çalıştı \n" } irb(main):002:0> deamon.call => Deamon çalıştı

Tekil Metodlar: Bu metod modeli, bir sınıfın bir metodunun geçici olarak yeniden yazılmasını sağlayan bir özellik. Bu özelliği kullanabilmek için sınıfın nesnesinin yaratılması gerekiyor.

irb(main):001:0> class SingleMethod irb(main):002:0> def size irb(main):003:0> print "25\n" irb(main):004:0> end irb(main):005:0> end irb(main):006:0> test1 = SingleMethod.new irb(main):007:0> test2 = SingleMethod.new irb(main):008:0> print "25\n" irb(main):009:0> def test1.size irb(main):010:0> print "10\n" irb(main):011:0> end irb(main):012:0> test1.size => 10 irb(main):013:0> test2.size => 25

Bir sonraki yazımda daha detaylı olarak Ruby’nin özelliklerini anlatacağım. Bu girdiyi bazı bağlantı önerileri vererek sonlandırıyorum. Beni izlemeye devam edin efenim :p

Yazılımlar Ruby Ruby Forge Ruby on Rails Rad Rails

Kitaplar Learn to Program Programming Ruby Agile Web Development with Rails Rails Recipes