From b6be1c9b03b297b0d9468464648078c52293a38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0smail=20Ar=C4=B1l=C4=B1k?= Date: Thu, 30 May 2019 17:18:10 +0300 Subject: [PATCH] Update translation of about page (tr) --- tr/about/index.md | 118 +++++++++++++++++++++++++++------------------- 1 file changed, 69 insertions(+), 49 deletions(-) diff --git a/tr/about/index.md b/tr/about/index.md index 1ab9f43ec4..397884507a 100644 --- a/tr/about/index.md +++ b/tr/about/index.md @@ -31,67 +31,60 @@ 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](/en/community/mailing-lists/) günde ortalama 200 mesaj -trafiğine sahiptir. +Ruby-Talk, Ruby dilini tartışmak için birincil [e-posta listesi](/en/community/mailing-lists/), 2006 yılında günde ortalama 200 mesaja ulaşmıştır. +Bu sayı son yıllarda düşmüştür çünkü topluluğun büyüklüğü, tartışmanın merkezi bir listeden daha küçük gruplara kaymasına neden olmuştur. -Programlama dillerinin popülaritesini araştıran [TIOBE][tiobe] istatistiklerine -göre, Ruby dünya çapında en çok kullanılan 10. dil haline gelmiştir. -Ruby’nin bu hızlı büyümesinde [Ruby on Rails][ror] framework’ünün -hatırı sayılır etkisi bulunmaktadır. +Ruby, dünya çapında programlama dillerinin büyümesini ve popülaritesini ölçen dizinlerin ([TIOBE dizini][tiobe] gibi) çoğunda ilk 10 içinde yer almıştır. +Büyümenin çoğu, Ruby ile yazılmış yazılımların popülaritesiyle ilgilidir, özellikle [Ruby on Rails][ror] web çatısıyla. -Ruby aynı zamanda [tamamen özgür]({{ site.license.url }}) 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. +Ruby aynı zamanda [tamamen özgür]({{ site.license.url }}) bir dildir. +Bu özgürlük sadece maddi anlamda değildir; kullanma, kopyalama, değiştirme, ve dağıtma konusunda da özgürsünüz. -### Herşey Bir Nesnedir +### Her şeyi bir Nesne Olarak Görmek 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 Python’dan daha nesneye yönelik bir betik -dili[2](#fn2)” istediğini söylemiştir. +dili istediğini[2](#fn2)” 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: +Ruby’de herşey bir nesnedir. Gördüğünüz en ufak bilgi parçası ve kod kendi özelliklerine ve olaylarına sahiptir. +Nesne yönelimli programlama, özellikleri *örnek değişkenleri* ismiyle anar, olaylar ise *metodlar* olarak bilinir. +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: {% highlight ruby %} -5.times { print "Ruby'yi *seviyoruz* -- harika bir dil!" } +5.times { print "We *love* Ruby -- it's outrageous!" } {% endhighlight %} -Ç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. +Çoğu dilde sayılar ve diğer ilkel tipler nesne değildir. +Ruby tüm tiplerine metod ve örnek değişkenleri verme geleneğini Smalltalk’tan miras almıştır. +Bu, Ruby kullanımını kolaylaştırır, çünkü nesnelere uygulanan kurallar Ruby'nin tümüne uygulanır. -### Ruby Esnektir +### Ruby'nin Esnekliği -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 programcıyı kısıtlamamayı amaçlamaktadır. +Ruby, kullanıcılara istediği kısımları değiştirebilme imkanı sunduğu için esnek bir dil olarak görülür. +İsteğe bağlı olarak Ruby’nin esas kısımları bile kaldırılabilir, yeniden tanımlanabilir ya da bunlara yeni kısımlar eklenebilir. +Ruby, programcıyı kısıtlamamayı amaçlar. Örneğin toplama işleminin artı (`+`) operatörü ile yapıldığını -biliyoruz. Ama eğer okunabilirlik amacıyla `topla` gibi bir kelime +biliyoruz. Ama eğer okunabilirlik amacıyla `plus` gibi bir kelime kullanmak istiyorsanız Ruby’nin gömülü `Numeric` sınıfına yeni bir metod ekleyebilirsiniz. {% highlight ruby %} class Numeric - def topla(x) + def plus(x) self.+(x) end end -y = 5.topla 6 +y = 5.plus 6 # y'nin değeri 11 oldu. {% endhighlight %} -Ruby’nin operatörleri sözdizimsel olarak esnektir, yeniden tanımlamanıza -olanak sağlar. +Ruby’nin operatörleri metodlar için sözdizimsel kolaylıklardır. +Bunları da yeniden tanımlayabilirsiniz. -### Bloklar, Tam Anlamıyla Etkileyici Bir Özellik +### Bloklar, Tam Anlamıyla Etkileyici bir Özellik 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 @@ -112,21 +105,20 @@ search_engines = {% endhighlight %} 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. +`map` metodu, bloğu sağlanan kelime listesine uygular. +Ruby’de bunun gibi bir çok metod programcıya kendi bloklarını yazıp, bu metodun ne yapması gerektiğini belirtme izni vermektedir. ### Ruby ve Mixin’ler -Pek çok nesneye yönelik dilin aksine, Ruby özellikle yalnızca tekil +Pek çok nesneye yönelik dilin aksine, Ruby **özellikle** yalnızca tekil mirası destekler. Çünkü Ruby modül konseptini (Objective-C’de -Kategoriler) kullanır ve modüller metodların bir koleksiyonundan +Kategoriler) kullanır. 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. +`each`'i kullanan bir dizi metoda sahip olur. {% highlight ruby %} class MyArray @@ -135,19 +127,19 @@ end {% endhighlight %} 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. +çoklu mirastan daha temiz bir yöntem olarak görürler. ### Ruby’nin Görselliği 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 +faaliyet alanlarını belirlemek için basit isimlendirme gelenekleri kullanılır. * `var` yerel bir değişken olabilir -* `@var` bir örnek değişkendir. -* `$var` bir global değişkendir. +* `@var` bir örnek değişkenidir. +* `$var` bir evrensel 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 @@ -158,15 +150,15 @@ külfetini ortadan kaldırmıştır. Ruby çok çeşitli özelliklere sahiptir, aşağıda bir kaçından bahsedilmiştir: -* Ruby, hataları işlemek için kolaylaştırmak amacıyla Java veya Python +* Ruby, hataları işlemeyi kolaylaştırmak amacıyla Java veya Python gibi istisna işleme özelliklerine sahiptir. -* Ruby tüm nesneleri için gerçek bir mark & sweep çöp toplayıcısı +* Ruby tüm nesneleri için gerçek bir mark&sweep çöp toplayıcısı sunar. Eklenti kütüphanelerinde referans sayaçlarına gerek yok, - Matz’ın dediği gibi: “Bu sizin sağlığınız için iyidir”. + Matz’ın dediği gibi: “Bu sizin sağlığınız için iyidir.” -* C’den Ruby çağıran şık API’si sayesinde Ruby’de C eklentileri yazmak - Perl ya da Python’dan daha kolaydır. Bu API aynı zamanda yazılımlara +* C’den Ruby çağıran şık API’ı sayesinde Ruby’de C eklentileri yazmak + Perl ya da Python’kinden daha kolaydır. Bu API aynı zamanda yazılımlara betik dili olarak Ruby’yi gömmek için gereken çağrıları da içerir. Ayrıca SWIG arayüzü de alternatif olarak sunulmaktadır. @@ -181,13 +173,32 @@ bahsedilmiştir: olsa dahi, UNIX’in bir çok çeşidi, macOS, Windows, DOS, BeOS, OS/2, vb. üzerinde çalışmaktadır. +### Ruby'nin Diğer Gerçeklemeleri + +Ruby, bir dil olarak, birkaç farklı gerçeklemeye sahiptir. +Bu sayfa, toplulukta sıklıkla **MRI** (“Matz’s Ruby Interpreter”) ya da **CRuby** (C'de yazıldığından dolayı) olarak bilinen başvuru gerçeklemesini tartışmaktadır, ancak başkaları da vardır. +Bunlar belirli durumlarda kullanışlıdır, diğer dil ya da ortamlara fazladan bütünleşim sağlarlar, ya da MRI'ın sahip olmadığı özel özelliklere sahiptirler. + +İşte bunların bir listesi: + +* [JRuby][jruby], JVM'in (Java Virtual Machine) üstünde çalışan Ruby'dir, JVM'in eniyileyen JIT derleyicisi, çöp toplayıcısı, eşzamanlı thread'leri, araç ekosistemi, ve muazzam sayıdaki kütüphanelerinden faydalanır. +* [Rubinius][rubinius], ‘Ruby'da yazılmış Ruby'dir’. + LLVM'in üstüne inşa edilmiştir ve ayrıca diğer dillerin üstüne inşa edebilecekleri şık bir sanal makine de sunar. +* [TruffleRuby][truffleruby], GraalVM'in üstünde çalışan yüksek performanslı bir Ruby gerçeklemesidir. +* [mruby][mruby], bir uygulamaya bağlanıp gömülebilen hafif bir Ruby gerçeklemesidir. + Geliştirilmesine Ruby'nin yaratıcısı Yukihiro “Matz” Matsumoto tarafından önderlik edilmektedir. +* [IronRuby][ironruby], “.NET Web Çatısı'yla sıkı sıkıya bağlı” bir gerçeklemedir. +* [MagLev][maglev], “bütünleşik nesne sürekliliği ve dağıtılmış paylaşılan önbellekli hızlı, kararlı bir Ruby gerçeklemesidir”. +* [Cardinal][cardinal], [Parrot][parrot] Sanal Makinesi için bir Ruby derleyicisidir” (Perl 6). + +Daha tam bir liste için, [Müthiş Ruby'ler][awesome-rubies]e bakın. + ### Referanslar 1 Matz, Ruby-Talk e-posta listesi, [12 Mayıs, 2000][blade]. {: #fn1} -2 Matz, [Ruby’nin Yaratıcısı İle Bir Söyleşi][linuxdevcenter], Kasım. -29th, 2001. +2 Matz, [Ruby’nin Yaratıcısı İle Bir Söyleşi][linuxdevcenter], 29 Kasım 2001. {: #fn2} 3 Matz, [Ruby’de Bloklar ve Kapamalar][artima], 22 Aralık, 2003. @@ -201,3 +212,12 @@ bahsedilmiştir: [linuxdevcenter]: http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html [artima]: http://www.artima.com/intv/closures2.html [tiobe]: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html +[jruby]: http://jruby.org +[rubinius]: http://rubini.us +[truffleruby]: https://github.com/oracle/truffleruby +[mruby]: http://www.mruby.org/ +[ironruby]: http://www.ironruby.net +[maglev]: http://maglev.github.io +[cardinal]: https://github.com/parrot/cardinal +[parrot]: http://parrot.org +[awesome-rubies]: https://github.com/planetruby/awesome-rubies