Article cover

17.10.2023

2

Like

311

Views

Ruby Nedir? Başlangıç Rehberi

Herkese Selamlar,

Genel olarak Patika platformunu çok seviyorum ve burada paylaşılan yazıları keyifle okuyorum bu nedenle hem Ruby başlığının az olması hemde buraya katkı sağlamak adına güzel bir seri hazırlamak istedim. İlk olarak hazırlamak istediğim seriyi ufak paylaşmak istiyorum:

  1. Ruby Nedir? Başlangıç Rehberi
  2. Ruby ve Rails'in Geleceği: Ne Beklemeliyiz?
  3. Ruby'nin Diğer Dillere Göre Avantajları ve Dezavantajları
  4. ActiveRecord: Rails'in ORM Sihirbazı

Bu başlıklar altında ilk 4 makalemi oluşturma planım var ve bu seride hem elimden geldiğince Ruby'i hemde Ruby on Rails'ı sizlerle buluşturmak istiyorum 🙇‍♂️. O halde başlayalım! Herkese keyifli okumalar...

Ruby'nin tarihçesi

Ruby, Yukihiro "Matz" Matsumoto tarafından 1990'ların ortalarında Japonya'da yaratıldı ve geliştirildi. Matz, Ruby'yi oluştururken Perl, Smalltalk, Eiffel, Ada ve Lisp gibi birçok programlama dilinden ilham aldı. Temel amacı, insan odaklı ve pratik bir dil oluşturmaktı. Matz, Ruby'nin tasarımında, "programcının mutluluğunu en üst düzeye çıkarmak" fikrini benimsedi. Buna en güzel örnek ise kod söz dizimini okuma diline çok yakın olması. Örnekler üzerinden bu durumu daha iyi anlayacağız.


Matz


Matz Hakkında daha çok bilgi için: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto


Ruby'nin ilk sürümü olan Ruby 0.95, 1995 yılında yayımlandı ve 1996'da Ruby 1.0 sürümü resmi olarak duyuruldu. İlk yıllarında özellikle Japonya'da popüler oldu. Ancak, İngilizce dilinde bir dökümantasyonun eksikliği, dilin uluslararası alanda tanınmasını yavaşlattı. 2000 yılında 1.6 sürümü ile birlikte İngilizce dökümantasyonlar yayımlandı ve dilin uluslararası alanda tanınırlığı arttı.

2003 yılında, David Heinemeier Hansson (Kısaca DHH olarak tanınır :D ) tarafından Ruby on Rails (RoR) tanıtıldı. Kısa süre içinde birçok büyük şirket ve geliştirici tarafından benimsendi.

DHH

DHH Hakkında daha çok bilgi için: https://en.wikipedia.org/wiki/David_Heinemeier_Hansson


RoR'nin getirdiği üretkenlik ve hız sayesinde, birçok start-up ve teknoloji şirketi RoR ile geliştirme yapmayı tercih etti. Bu şirket veya start-up'lara örnek vermek gerekirse:

  1. Twitter: İlk sürümü Ruby on Rails ile yazıldı. Ancak, daha sonra performans ihtiyaçları nedeniyle bazı bileşenler başka dillere taşındı.
  2. GitHub: Dünyanın en büyük açık kaynak kod depolama platformu olan GitHub, Ruby on Rails ile geliştirildi.
  3. Basecamp: Aslında Ruby on Rails'in doğduğu proje olarak bilinir. David Heinemeier Hansson, Basecamp'i geliştirirken Rails'i yarattı ve daha sonra bu framework'ü açık kaynak olarak sundu.
  4. Shopify: E-ticaret platformu olan Shopify, Ruby on Rails ile geliştirildi.
  5. Airbnb: Başlangıçta Ruby on Rails ile geliştirilmiş bir platformdur.
  6. Twitch: Canlı yayın platformu olan Twitch'in bazı bölümleri Ruby on Rails ile yazıldı.

Ruby, başlangıcından bu yana kullanıcı dostu ve insana odaklı bir yaklaşım benimseyen bir programlama dilidir. Geliştiricilere sunduğu üretkenlik ve esneklik sayesinde, birçok modern yazılım projelerinde tercih edilen bir dil olmuş ve olmaya devam etmektedir.


Daha fazlasını merak edenler için Honeypot Youtube kanalının kısa süre önce paylaştığı videoyu da eklemek istiyorum.




Kısaca Özellikleri ve Avantajları

Programlama dünyasında, bir dilin popülerliğini ve benimsenmesini belirleyen pek çok faktör vardır. Bu faktörlerin başında dilin sunduğu özellikler ve avantajlar gelir. Ruby, son yıllarda geliştiriciler tarafından büyük bir ilgi görmüştür, ancak bu popülerliğin ardında yatan nedenler nelerdir?

NESNE YÖNELİMLİ

Tamamen nesne yönelimli bir dildir. Her şey (sayılar, dizgeler, hatta sınıf tanımları bile) bir nesne olarak kabul edilir. Bu, kavramsal tutarlılığı artırır ve kodun daha modüler ve yönetilebilir olmasını sağlar.

DİNAMİK

Dinamik bir tip sistemine sahiptir. Değişkenlerin türleri çalışma zamanında belirlenir, bu da geliştirme sürecini hızlandırır.

YORUMLANAN

Derlenmiş bir dil değil, yorumlanan bir dildir.

BLOK VE LAMBDA KULLANIMI

Blok ve lambda gibi özelliklere sahiptir, bu da fonksiyonel programlama öğelerini kullanma yeteneği sağlar.

ZENGİN KÜTÜPHANE DESTEĞİ

RubyGems aracılığıyla binlerce hazır kütüphaneye (gem olarak adlandırılır) erişim imkanı vardır. Bu, geliştiricilerin tekrar tekrar aynı işlevselliği yazmaktan kaçınmasına olanak tanır.

META-PROGRAMLAMA

Ruby'nin meta-programlama yetenekleri, kodun dinamik olarak değiştirilmesini ve genişletilmesini sağlar. Bu, DSL (Domain Specific Language) oluşturmak veya aktif kayıt gibi ORM çözümleri için oldukça kullanışlıdır.

TOPLULUK DESTEĞİ

Aktif ve yardımsever bir topluluğa sahiptir. Bu, öğrenme kaynaklarına, dökümantasyona ve sorun giderme yardımına erişim sağlar.


Türkiye'de https://rubyturkiye.org/ ve https://discuss.rubyturkiye.org/ adreslerinden ulaşabilirsiniz.


Temel Sözdizimi ve Örnekleri

Değişken Tanımlama:

Ruby'de değişkenlerin türlerini önceden belirtmenize gerek yoktur. Değer ataması yaparak değişken tanımlama işlemi gerçekleştirilir.

name = "Ahmet"
age = 25

Dizgeler (Strings):

name = "Ruby" 
greetings = "Merhaba, #{name}!"

Diziler (Arrays):

colors= ["red", "blue", "green"] 
first_color= colors[0] # "red"

Kontrol Yapıları:

if age > 18
puts "Adult"
else
puts "Child"
end

Döngüler:

5.times do 
puts "Ruby"
end

for i in 1..5
puts i
end

Fonksiyonlar (Metodlar):

def greetings(name) 
"Hello, #{name}!"
end

message = greetings("Ali") # "Hello, Ali!"

Sınıflar:

class Person 
attr_accessor :name, :age

def initialize(name, age)
@name = name
@age = age
end

def info
"#{@name} is #{@age} years old."
end
end

person = Person.new("Mehmet", 30)
puts person.info # "Mehmet is 30 years old."

Semboller (Symbols):

Semboller, hafızada sadece bir kez oluşturulan ve genellikle anahtar değerleri için kullanılan özel Ruby nesneleridir.

:name
:email

Hash (Sözlükler):

kisi = { 
name: 'Ayşe',
age: 28,
email: '[email protected]'
}

Bu örnekler, Ruby'nin temel sözdizimini ve yapılarını gösterir. Daha öncede dediğim gibi sanki kod yazarken ingilizce cümleler yazıyoruz. Hem anlaması hemde yazması çok basit, bu nedenle geliştiricilere çok fazla konfor sunmaktadır.


Sonuç

Özetle, Ruby'nin esnek ve dinamik yapısı, birçok farklı kullanım alanı için uygundur. Geniş ve aktif bir topluluğa sahip olan Ruby, sürekli olarak geliştirilmekte ve yeni kütüphaneler ve araçlarla zenginleştirilmektedir. Bu da Ruby'nin popülerliğini ve kullanım alanlarını artırmaya devam etmektedir. Serinin devamı için önerileriniz ve yorumlarınızı bekliyorum <3 .


Kaynaklar:

https://flexiple.com/ruby-on-rails/deep-dive

https://en.wikipedia.org/wiki/Ruby_(programming_language)

https://en.wikipedia.org/wiki/David_Heinemeier_Hansson

https://en.wikipedia.org/wiki/Yukihiro_Matsumoto

https://openai.com/chatgpt

Object Oriented Programming
Nereden Başlasam

Comments

You need to log in to be able to comment!

Ahmet Kaptan

My biggest priority is to gain new knowledge and improve myself in the field of software (back-end), which is my biggest passion. So far, I have been actively involved in many projects. I have used PHP(Laravel,WordPress Core), NodeJs(Express.js, Socket.io), React(NextJs), Ruby(Ruby on Rails) technologies in my projects. I also take an active part in WordPress and Ruby events.

Location

İstanbul, TR

Education

management information systems - Anadolu University

Job Experience

Software Developer - Kabi Partners

Software Developer - FazlaGıda

Software Developer - Passgage

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin

Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.