İçeriğe atla

Ruby

Ruby
Paradigmasıçok paradigmalı: nesneye yönelik, fonksiyonel, reaktif
İlk çıkışı1995
TasarımcıYukihiro Matsumoto
GeliştiriciYukihiro Matsumoto ve diğerleri
Kararlı sürüm3.3.0 (25 Aralık 2023 (9 ay önce) (2023-12-25)[1])
Önemli uygulamalarıRuby MRI, YARV, JRuby, Rubinius, Maglev, IronRuby, MacRuby, HotRuby, RubyMotion, mruby
EtkilendikleriSmalltalk, Perl, Lisp, Scheme, Python, CLU, Eiffel, Ada, Dylan, C++
EtkiledikleriClojure, D dili,[2] Groovy, Nu, Falcon, Ioke, Mirah, Elixir, Julia dili, Swift
İşletim sistemiÇapraz platform yazılımları
LisansRuby Lisansı veya GNU Genel Kamu Lisansı v2
Olağan dosya uzantıları.rb, .rbw
Web sitesiwww.ruby-lang.org

Ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

Sözdizimi olarak, Ada, Perl, Smalltalk, Lisp, Eiffel[3] gibi programlama dillerinden etkilenen Ruby; Python ile kimi ortak sözdizimi özelliklerine sahiptir. Fonksiyonel, nesneye yönelik, dinamik, reflektif gibi çoklu programlama paradigmalarını destekler.

Özgür bir yazılım olan Ruby; GPL ve Ruby lisansı[4] ile lisanslanmıştır.

Tarihçe

Ruby dilinin temelleri 1993 yılında atılmıştır. Bu dönemde nesneye dayalı bir betik dili arayışı içinde olan Japon yazılımcı Yukihiro "Matz" Matsumoto; Perl, Python gibi mevcut programlama dillerini araştırmasına rağmen aradığını bulamayınca yeni bir programlama dili tasarlamaya başladı. Şubat 1993'te Matz, bir arkadaşı ile yaptığı çevrimiçi sohbet esnasında arkadaşının bu yeni dil için önerdiği Ruby ismini uygun buldu ve bu isimle dili geliştirmeye başladı.

Aralık 1995'te Ruby'nin 0.95 ile ilk genel sürümü yayınlandı. Aynı ay içerisinde peş peşe 3 sürüm daha yayınlandı. Bu sürümler Japonya'da yerel haber gruplarında duyuruldu.[5]

İlk genel sürümden tam bir yıl sonra, Aralık 1996'da Ruby 1.0 yayınlandı. Anavatanı Japonya'da hızla tanınan ve yayılan Ruby, 1999'da İngilizce yazıların yayınlanması ile tüm dünyaya açılma olanağına kavuştu.

2000 yılında Japonya'da Python'dan daha popüler bir dil haline gelen Ruby'nin İngilizce ile yazılan ilk kitabı, Programming Ruby adıyla aynı yılın Ekim ayında yayınlandı.[6]

Özellikler

Ubuntu'da Ruby programlama dili
  • Nesne tabanlı programlama (kalıtsallık, mixin ve metaclass desteği)
  • 4 farklı tipte değişken tanımlanabilir: Global, class, instance ve local
  • Her şey bir ifade ve aynı zamanda obje
  • Hata ve istisna yönetimi
  • Garbage collection (tr. Çöp toplama)
  • Yüksek taşınabilirlik
  • Geniş standart kütüphane desteği (YAML, JSON, XML, CGI, OpenSSL, HTTP, FTP, RSS)
  • Perl benzeri dil seviyesinde doğal düzenli ifade desteği
  • Rasyonel sayılar, çok büyük sayılar ile çalışabilme

Bununla beraber Ruby içindeki UTF-8 desteği sınırlıdır.[]

Sözdizimi ve yapısı

Ruby'nin sözdizimi günümüzde de yoğun olarak kullanılan Perl ve Python ile büyük benzerlikler gösterir. Sınıf ve metot tanımlamaları anahtar kelimelerle belirlenir. Ruby'de Perl'in aksine, değişken adlarının başında belirleyici karakterler ($, @@, % gibi) kullanmak bir zorunluluk değildir. Python'un tersine girintilerin dilin sözdiziminde bir etkisi yoktur.

Ruby, tek çoklu kalıtıma Java gibi izin vermemesine rağmen mixin adı verilen nesnelerle bir çeşit arayüz tanımlama imkânı verir. Ayrıca paketler üzerinden de bu sınırlama geçiştirilebilir.

Ruby'nin tasarımında dikkate alınan diller Ada, Eiffel, Lisp, Perl ve Smalltalk'dur. Dolayısıyla bir betik dili yapısına da sahiptir. Ruby, nesneye yöneliklilik açısından tamamen öyle olan Java ile Smalltalk arası olup yüzde yüz bu paradigmayı uygulamamaktadır.[7]

Örnekler

puts 'Merhaba Dünya'
puts 'Bir sayı girin.'
sayi = gets.chomp
puts sayi.to_i
cikti_sayi = number.to_i + 1
puts cikti_sayi .to_s + 'daha büyük bir sayı.'

Kullanılabileceği dizgeler

Ruby yorumlayıcısı birçok işletim sistemi için yazılmıştır. Hemen hemen tüm işletim sistemlerinde çalışabilir. Bunlardan bazıları şunlardır:

Kaynakça

  1. ^ "Ruby 3.3.0 Released". Ruby Programming Language. 25 Aralık 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Aralık 2023. 
  2. ^ "Intro - D Programming Language 1.0 - Digital Mars". 25 Aralık 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Temmuz 2014. 
  3. ^ "About Ruby". 9 Ekim 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ekim 2014. 
  4. ^ "Contents of /trunk/COPYING". http://svn.ruby-lang.org/. 20 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2014.  |eser= dış bağlantı (yardım)
  5. ^ "RubyConf: History of Ruby". http://blog.nicksieger.com/. 5 Mayıs 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2014.  |eser= dış bağlantı (yardım)
  6. ^ "Foreword". Programming Ruby. 3 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Kasım 2014. 
  7. ^ Ruby [...] is obsessively object oriented. In fact, unless you have programmed in Smalltalk or Eiffel (languages which are even more obsessive than Ruby about objects), it is likely to be the most object oriented language you have ever used. (THE BOOK OF RUBY, HUW COLLINGBOURNE, p. 7)

Ayrıca bakınız

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">D (programlama dili)</span> çoklu paradigma programlama dili

D programlama dili, C++ dilinden daha yüksek seviyede ve hedef alınan işletim sistemiyle donanımlara göre uygulama yazılmasını kolaylaştıran bir "sistem ve uygulama" dilidir.

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

Yorumlanan programlama dili bilgisayar programlamada yazılan programların çalışabilmeleri için kaynak kodlarının bir yorumlayıcı tarafından yorumlanması gerektiğini ifade etmektedir. "Interpreted programming language" olarak da geçmektedir.

Nesne tabanlı programlama dili, nesne kullanımını destekleyen ve kapsülleme ilkesine uyan programlama dillerini tanımlar. Ancak nesne tabanlı programlama dilleri, kalıtım gibi nesne yönelimli programlama dillerine özel özellikleri taşımazlar. Bu durumda nesne tabanlı programlama dilleri nesne yönelimli programlama dillerinin altkümesini oluşturur.

<span class="mw-page-title-main">Groovy</span>

Groovy, Java platformu (JVM) üzerinde çalışan bir programlama dilidir. Groovy, imperative, nesne odaklı, dinamik tipli diller sınıfındadır.

Betik dili, betik yorumlamak için yazılmış özel çalışma-zamanı sistemlerinin yorumlayabileceği programlama dilleridir. Diğer programlama dilleri ile yazılan kodlar makine koduna çevrilip çıkan program doğrudan çalıştırılırken betik kodları interpreter tarafından doğrudan okunur ve yorumlanarak işlemler yorumlayıcının kendisi tarafından yapılır.

<span class="mw-page-title-main">Yukihiro Matsumoto</span>

Yukihiro Matsumoto 14 Nisan 1965 doğumlu Japon bilgisayar ve yazılım uzmanı. Yazdığı Ruby programlama dili ile tanınmıştır.

GTK grafik kullanıcı arabirimleri üretmek için bir kütüphanedir. LGPL lisanslıdır, yani GTK kullanarak hiç lisans ya da telif hakkı parası ödemeden açık kodlu yazılım, bedava yazılım veya ticari paralı yazılım yapabilirsiniz.

<span class="mw-page-title-main">SQLite</span>

SQLite, dünyada en çok dağıtılan ve tavsiye edilen kaynak kodları halka açık, tamamen C/C++ programlama dilleriyle geliştirilmiş sunucu yazılımı ve yapılandırma gereksinimi olmayan, işlemsel ve ilişkisel bir SQL veritabanı motorudur.

<span class="mw-page-title-main">Notepad++</span>

Notepad++, Windows işletim sistemi içerisine gömülü olarak gelen Notepad yazılımının yerine kullanılmak üzere C++ ile saf Win32 API ve STL ile geliştirilmiş GPL ile dağıtılan açık kaynak kodlu bir kaynak kod düzenleyicisidir. Scintilla düzenleyicisi temel alınarak geliştirilen Notepad++, birçok yazılımlama diline ait kodu görüntüleyip uygun olarak renklendirebilir. Türkçe dâhil birçok konuşma diline destek veren bir arabirimi vardır.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Sublime Text</span>

Sublime Text, içinde birçok programlama dili arayüzü barındıran, çapraz platform bir kaynak kod düzenleme ve metin editörüdür. Arayüzü Vim'den ilham alınarak tasarlanmıştır. Sublime-paketleri (Sublime-packages) yardımıyla fonksiyonelitesi genişletilebilir ancak Sublime Text açık kaynaklı ya da özgür bir yazılım değildir. Buna rağmen genişleme paketlerinin pek çoğu özgür yazılım lisansı ile dağıtılmakta ve Sublime Text kullanıcılarının oluşturduğu topluluk tarafından geliştirilmektedir.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

Redis, bir veri yapısı sunucusudur. Açık kaynak, bellek kullanımlı, anahtar-değer deposudur. Redis "Uzak Sözlük Sunucusu" anlamına gelmektedir. Çeşitli kaynaklara göre en çok kullanılan anahtar-değer veritabanıdır. Haziran 2015'ten beri Redis Labs şirketi tarafından geliştirilmesine destek sağlanmaktadır. Ondan önce Pivol Software ve VMware şirketleri tarafından desteklenmiştir.

Crystal genel kullanım amaçlı, nesne tabanlı, açık kaynak kodlu programlama dili. Sözdizimi olarak Ruby programlama dilini örnek alan, performans olarak C programlama dili kadar hızlı olmayı hedefleyen Crystal, ilk kararlı sürümünü 2014 yılında yayımlamıştır.

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).