- Katılım
- 13 Kas 2020
- Konular
- 2,005
- Mesajlar
- 4,336
- Çözümler
- 7
- Tepkime puanı
- 956
- Puanları
- 188
- Konum
- Bursa
Ruby açık kaynaklı, yorumlanabilir, dinamik ve nesne yönelimli bir programlama dilidir. Yaratıcısı Yukihiro Matsumoto olan bu dilin, zaman içinde gelişimini, detaylarını ve de kullanım amaçlarını sizlere aktaracağız.
Ruby’nin Tarihçesi
1990-1995 ortalarında Yukihiro Matsumoto (ya da Matz) bir programlama dili oluşturmak için çalışmalara başlamıştır. Yaratacağı bu programlama dilinin nesne yönelimli olmasını istediği gibi kullanışı kolay bir script dili olmasını amaçlamıştır. Bir başka amacı ise programlamayı eğlenceli bir hale dönüştürmektir. Perl, Smalltalk, Lisp, Eiffel ve Ada dillerinden parçalar alarak functional (fonksiyonel) ve imperative (emirsel) dengesi kurmaya çalışan Matz, başarılı olmuştur. Basite indirgenmemiş ve doğal bir dil anlayışı ile Ruby piyasaya sürülmüştür.
Ruby zaman içerisinde gelişimine devam ederek güncellenmiş ve yeni özelliklere sahip olmuştur. 2005 yılında David Heinemeier Hansson tarafından Ruby dili kullanılarak geliştirilen Ruby on Rails, bu dilin ivme kazanmasını sağlamıştır.
“Ruby’nin dünyadaki her geliştiriciye onların daha yaratıcı olmasına, eğlenerek kod yazmalarına ve de mutlu olmalarına yardım etmesini diliyorum. Ruby dilinin temel amacı budur.”
— Yukihiro Matsumoto
Ruby Nedir?
Yazıda; nesne yönelimli programlama, script dili, fonksiyonel ve emirsel programlama kavramlarından söz etmekte fayda var.
Diyelim ki bir öğrenci giriş sistemi tasarlıyorsunuz. Bu öğrenci giriş sisteminde her öğrencinin adı, soyadı, kimlik ve okul bilgileri tutulacak. Hepsi için ayrı bir kod yazmak mı işinize gelirdi yoksa bir öğrenci sınıfı yaratmak mı? İkinciyi seçersek eğer aynı kodu defalarca kullanabilme imkanı sunuyor bize. İşte nesne yönelimli programlamayı en kısa bu şekilde açıklayabiliriz.
Scripting ya da script language dediğimiz kavram ise bilgisayar dünyasında otomatik gerçekleşen işler bütünü için yazılmış kod parçalarıdır. Buna da bir örnek verelim. COVID19 verilerini her ülkenin veri sisteminden alarak oluşturulmuş bir websitesi düşünelim. Bunu güncel bir şekilde tutmak için her beş dakikada bir güncellendiğini düşünelim. İşte böyle bir kodun varlığına scripting diyebiliriz. Diğer türlü bir insan sürekli sayfayı yenilemek için bilgisayarın başında bekleyecekti.
Functional (fonksiyonel) programlama:
Bu kavramı anlatmak için bir örnek verelim. Diyelim ki bilgisayarın iki sayıyı toplamasını istiyoruz.
2+5
>7
Gördüğünüz gibi sonucu bize verdi. Fakat bunu daha farklı bir şekilde yazabilir miyiz? Deneyelim.
fonksiyon(sayıbir, sayıiki) {
sayıbir + sayıiki
}
İki sayının toplamını veren, matematik terimlerinden oluşan bir fonksiyon belirledik.
fonksiyon(5,3)
> 8
Bu sayede kodumuz anlaşılır, tekrar kullanabilir bir hale geldi. Kısaca fonksiyonel programlamayı bu şekilde tanımlayabiliriz.
imperative (emirsel) programlama dediğimiz kavram bir işin adım adım gerçekleştirilmesidir. Bunu bir örnekle açıklayalım. Mesela bir kahve nasıl yapılır bunu adımlarla yazalım.
Suyu Al
Suyu Isıt
Bardağı Al ve Masanın Üstüne Bırak
Kaşığı Al
Bardağa Kahveyi 2 Kaşık Ekle
Bardağa Süt Ekle
Sıcak Suyu Bardağa Dök
Gördüğünüz gibi adım adım ilerliyoruz. Sonuç odaklı ve de geride bir adım bırakmadan her adımın üstesinden geçmeye emirsel programlama denmektedir.
Bahsettiğimiz kavramları ele alınca Ruby’nin ne kadar geniş kapsamlı ve her amaca uygun bir hale gelen yapısı olduğunu fark edebiliriz. Matz daha önce tasarlanmış programlama dillerinin yaratıcı parçalarını birleştirerek oluşturduğu bu dil ile yeni bir soluk getirmiş oldu.
Web teknolojileri geliştirme konusuna yoğunlaşmış olsa da Ruby’nin genel amaçlı bir dil olduğunun altını çizelim. Ruby, Veri Analizi gibi konularda da kullanılabilir.
Ruby İle Yazılmış Popüler Websiteleri
- AirBnB
- BaseCamp
- Github
- SoundCloud
- SlideShare
- Crazy Egg
- Shopify
- Hulu
- Fiverr
- GoodReads
Ruby Dilini Neden Öğrenmelisiniz?
Yeni Başlayanlar İçin İyi Bir Tercih
Ruby programlamayı eğlenceli kılmak için ortaya çıkmış bir dil olduğundan, yeni başlayanlar için daha iyi bir seçenek düşünülemezdi. Anavatanı olan Japonya’dan geldiğini düşünürsek eğlenceli olduğu konusunda hemfikiriz diyebiliriz. Sahip olduğu dil sayısıyla okuması kolay olan bu dil, sizin de ilk programlama tercihiniz olabilir.
Topluluk Desteği
Bir dili destekleyen ne kadar çok kişi varsa o kadar fazla yardım alabilirsiniz. Bu nedenle dillerin sahip oldukları community yani topluluklar büyük bir rol oynuyor. Katkıda bulunmak, hataları düzeltmek ve yeni başlayanlara yol göstermek gibi temel amaçlara sahip topluluklarda Ruby de ön plana çıkıyor. Ortaya çıktığı günden beri önce Japonya ardından dünya genelinde fazlasıyla sevilen, rakip programlama dilleri çıksa da sevdalıları azalmıyor.
StackOverlow üzerinde kişi bakımından 8. sıraya sahip olan topluluğun ne kadar büyük olduğu gözler önünde. Bu topluluk için GitHub’da en çok etiketlenen programlama dilleri arasında ilk beş içinde yer olduğunu da söyleyelim.
Kariyer Fırsatları
Günümüzde Ruby kullanma yüzdesi artarak ilerlerken, bir kariyer planı çizebilirsiniz. Python’dan sonra düşüşe geçildiği öne sürülse de istatistiklerde bahsedilen düşüşün aksine hala yerini koruduğunu söyleyebiliriz. Ruby öğrenmek isteyenler için dünyada birçok kariyer fırsatı olduğunun altını çizelim.