http___pythontr.org_blog_ruby-programlama-dili-nedir__1.xml
1.1 2.1 3.1 3.2 4.1 4.2 5.1 6.1 7.1 8.1 9.1
Japanese version here (日本語版はこちら). Today marks a very special occasion in the history of Heroku, as we are honored to announce that Yukihiro "Matz" Matsumoto, the creator of Ruby, has joined the Heroku team as Chief Architect, Ruby. In 1993, a time when most programming languages were focussed on computational efficiency, Matz wanted to create a language focussed on developer experience, happiness, and productivity. This insight was years ahead of the trend toward agile software methodologies (the Agile Software Manifesto, for example, was published in 2001). With this unique intention, Matz created a beautiful and elegant language that has steadily grown a passionate following, becoming wildly popular in recent years, partially thanks to David Heinemeier Hansson's Ruby on Rails web framework. Ruby has a strong community and is a true open-source collaborative effort with hundreds of contributors. Matz has driven Ruby's design as a language, as well as the most widely used Ruby implementation (MRI), and will continue to do so in his role at Heroku, along with a small team of Ruby's core committers. While Heroku is becoming a polyglot platform (now officially supporting Ruby, Node.js, and Clojure), Ruby remains one of our favorite languages; we will continue to invest heavily in its support. We love Ruby, and we are honored to be able to give back to the community and to Matz, the Ruby dai-sensei, by providing resources for him and his team to continue to design and architect the language. – The Heroku Team Official press release here.
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.1 31.1 32.1 33.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 44.1 45.1 46.1 47.1 48.1 49.1 50.1 51.1 52.1 53.1 54.1 55.1 56.1
Ruby’nin niçin bu kadar popüler olduğunu mu merak ediyorsunuz? Rubyseverler, Ruby’yi güzel, sanatsal, becerikli ve pratik bir dil olarak tanımlarlar. Peki Ruby size neler vaad ediyor? Ruby dengenin dilidir. Ruby’nin yaratıcısı Yukihiro “matz” Matsumoto en sevdiği dillerin (Perl, Smalltalk, Eiffel, Ada, ve Lisp) en iyi özelliklerini harmanlayarak fonksiyonel programlama ile imperativ programlamaya dayanan yeni bir dil yaratmayı amaçlamıştır. Matz, her zaman “Ruby’yi basit değil, doğal yapmaya çalıştığını” vurgulamıştır, tıpkı yaşam gibi… Buradan yola çıkarak Matz aşağıdakileri ekler: Ruby tıpkı insan vücudu gibi, görünüşte basit, ama içinde çok kompleks bir yapıya sahiptir1. Ruby 1995’te halka duyurulduğundan beri, dünya çapında programcıların dikkatini çekmeye başlamıştır. 2006 Ruby’nin altın yılı olmuştur. Dünyanın en büyük şehirlerinde aktif kullanıcı grupları ve Ruby ile ilgili konferanslar gerçekleştirilmiştir. Ruby-Talk, en çok kullanılan Ruby e-posta listesi günde ortalama 200 mesaj trafiğine sahiptir. Programlama dillerinin popülaritesini araştıran TIOBE istatistiklerine göre, Ruby dünya çapında en çok kullanılan 10.cu dil haline gelmiştir. Ruby’nin bu hızlı büyümesinde Ruby on Rails framework’ünün2 hatırı sayılır etkisi bulunmaktadır. Ruby aynı zamanda tamamen özgür bir dildir. Ruby size yalnızca sorumluluk anlamında bir özgürlük değil, aynı zamanda kullanma, kopyalama, düzenleme ve dağıtma özgürlüğü de sunar. Matz yeni bir dil yaratmadan önce ideal sözdizimini bulmak için diğer programlama dillerini incelemiş ve araştırmasının sonunda “Perl’den daha güçlü ama Pyton’dan daha nesneye yönelik bir betik dili3” istediğini söylemiştir. Ruby’de herşey bir nesnedir. Gördüğünüz en ufak bilgi parçası ve kod kendi özelliklerine ve olaylarına sahiptir. Özellikleri isimle çağırma örnek değişkenler ,olaylar da metotlar olarak isimlendirilir. Ruby’nin yüzde yüz saf nesneye yönelik bir dil olduğunun en iyi ispatı bir kod parçası ile bir sayıya olay vererek yapılır: 5.times { print "Ruby'ti *seviyoruz* -- harika bir dil!"} Çoğu dilde sayılar ve diğer ilkel tipler nesne değildir. Ruby tüm tiplerine metotlar ve örnek değişkenler verme geleneğini Smalltalk’tan miras almıştır. Ruby kullanıcılara istediği kısımları değiştirebilme imkanı sunduğu için esnek bir dildir. İsteğe bağlı olarak Ruby’nin esaslı kısımları bile kaldırılabilir, yeniden tanımlanabilir ya da yeni kısımlar eklenebilir. Ruby programıcıyı kısıtlamamayı amaçlamaktadır. Örneğin toplama işleminin artı ( +) operatörü ile yapıldığını biliyoruz. Ama eğer okunabilirlik amacıyla topla gibi bir kelime kullanmak istiyorsanız Ruby’nin gömülü Numeric sınıfına yeni bir metod ekleyebilirsiniz. class Numeric def topla(x) end end y = 5.topla 6 # y'nin değeri 11 oldu. Ruby’nin operatörleri sözdizimsel olarak esnektir, yeniden tanımlamanıza olanak sağlar. Ruby’nin esnek bir dil olarak anılmasının en önemli sebeplerinden biri de bloklardır.Bir kapamayı (closure) herhangi bir metoda ataçlayabilir ve metodun nasıl tepki vereceğini belirleyebilirsiniz. Kapamalar, bloklar olarak anlandırırlırlar ve PHP ya da Visual Basic gibi imperativ dillerden Ruby’ye geçenler arasında en popüler özelliğe dönüşmüştür. Bloklar fonksiyonel dillerden esinlenilerek Ruby’ye getirilmiştir. Matz “Ruby kapamalarında, Lisp kültürüne saygı göstermek istedim4.” demiştir. search_engines = %w[Google Yahoo MSN].map do |engine| "http://www." + engine.downcase + ".com" end Yukarıdaki kodda bir blok do ... end yapıları içerisinde tanımlanıyor. map metodu bloğa bir kelime listesi ile çalıştığını bildiriyor. Ruby’de bunun gibi bir çok metod programcıya kendi bloklarını yazıp, metodu istediği gibi şekillendirmesine izin vermektedir. Pek çok nesneye yönelik dilin aksine, Ruby özellikle yalnızca tekil mirası destekler. Çünkü Ruby modül konseptini (Nesnesel-C’de Kategoriler) kullanır ve modüller metodların bir koleksiyonundan ibarettir. Sınıflar bir modülü kendisine dahil ederse, onun tüm metodlarını da almış olur. Örneğin each metodunu gerçekleştiren her sınıf Enumerable modülünü de kendisine dahil edebilir, böylece döngülerde each ile beraber kullanabileceği bir dizi metoda sahip olur. class MyArray include Enumerable end Genelde Ruby’ciler bu yolu bazen çok karmaşıklaşan ve kısıtlayıcı olan çoklu mirastan daha temiz ve sağlam bir yöntem olarak görürler. Her ne kadar Ruby sınırlı sayıda noktalama işareti ve İngilizce anahtar kelimeler kullansa da, bazı noktalama işaretleri Ruby’yi dekore etmek için kullanılır. Ruby’de değişken tanımlamaları yoktur. Değişkenlerin faaliyet alanlarını belirlemek için basit noktalama işaretleri kullanılır. var yerel bir değişken olabilir @var bir örnek değişkendir. $var bir global değişkendir. Bu işaretlendirmeler sayesinde programcı her değişkenin rolünü kolayca görebilmektedir. Aynı zamanda her örnek değişken için self. kullanma külfetini ortadan kaldırmıştır. Ruby çok çeşitli özelliklere sahiptir, aşağıda bir kaçından bahsedilmiştir: 1 Matz, Ruby-Talk e-posta listesi, 12 Mayıs, 2000. 2 Daha fazla bilgi için Ruby on Rails ana sayfasını ziyaret edin. 3 Matz, Ruby’nin Yaratıcısı İle Bir Söyleşi, Kasım. 29th, 2001. 4 Matz, Ruby’de Bloklar ve Kapamalar, 22 Aralık, 2003.