17.10.2023
2
Like
302
Views
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:
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, 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 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 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:
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.
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?
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.
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.
Derlenmiş bir dil değil, yorumlanan bir dildir.
Blok ve lambda gibi özelliklere sahiptir, bu da fonksiyonel programlama öğelerini kullanma yeteneği sağlar.
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.
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.
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.
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
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.
Ö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
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