Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni



Benzer belgeler
Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

1.PROGRAMLAMAYA GİRİŞ

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

İNTERNET PROGRAMCILIĞI - II

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

1.1. Yazılım Geliştirme Süreci

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

C# nedir,.net Framework nedir?

LABORATUVAR ÇALIŞMASI 1 - Python a Giriş

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Internet Programming II

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Mantıksal İşlemler. 7.1 true, false, nil

BİT in Temel Bileşenleri (Yazılım-1)

R ile Programlamaya Giriş ve Uygulamalar

08220 Internet Programcılığı II

Programlama Dillerinde Kullanılan Veri Tipleri

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

PHP 1. Hafta 2.Sunum

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

PROGRAMLAMA DERSİ 1. İNTERNET

Ünite-3 Bilgisayar Yazılımı.

Java Temel Özellikleri

ALGORİTMA VE PROGRAMLAMA I

Şişli Mesleki ve Teknik Anadolu Lisesi Web Programcılığı Dalı 2014 WEB PROGRAMCILIĞI DALI

C++ da Nesne Kavramı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Linux'ta Kabuk ve Kabuk Programlama

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

PHP 1. Hafta 1. Sunum

Linux ve Windows Üzerinde C ve C++ Kullanımı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Linux İşletim Sistemleri. Eren BAŞTÜRK.

4. Bölüm Programlamaya Giriş

-Bilgisayarı oluşturan iki temel unsurdan diğeri ise YAZILIM dır.

Açık Kaynak Kodlu Yazılım

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Öğr. Gör. Serkan AKSU 1

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Windows Programlama Güz Dönemi

VERİ TABANI PROGRAMCILIĞI DALI

Dr. Fatih AY Tel: fatihay@fatihay.net

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

Bilgisayar Yazılımları

Bilgisayar İşletim Sistemleri BLG 312

Nasıl Pardus Geliştiricisi Olunur?

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

YZM 2105 Nesneye Yönelik Programlama

BİLİŞİM TEKNOLOJİLERİ WEB PROGRAMCISI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

Zope Uygulama Sunucusu

İnternet Programcılığı

MPLAB IDE v7.60 PROGRAMI KULLANIMI

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Bilgisayarda Programlama. Temel Kavramlar

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016

Open Source Coding: Python

3. Yarıyıl Ders Planı Kodu Ders Z/S Dil T+U Saat Kredi AKTS BBP 209

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Program Nedir?(1) Programlamaya Giriş

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

PHP ile İnternet Programlama

BLGM 354 DENEY 1 * GİRİŞ

YAZILIM VE PROGRAMLAMA DİLİ. Donanım ve yazılım nedir? Yazılım nedir? Yazılım çeşitleri nelerdir? Programlama dili nedir

Java Programlama Giriş

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

Lecture 11: Generics

Bahar. BM 211 Programlama Dilleri 3 1

ÖZGÜR YAZILIMLAR İLE J2EE

BİLGİSAYAR TEKNOLOJİSİ VE PROGRAMLAMA DERS İÇERİKLERİ I. YARIYIL

Bölüm1. İlk Bilgiler ISBN

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Transkript:

1 Ruby Nedir? 1.1 Amaçlar Bu kitabın asıl amacı, Ruby on Rails Web Framework u ile web programcılığı yapacaklara gerekli olan Ruby bilgilerini vermektir. Bunu yaparken, kitap okura şu becerileri de kazandıracaktır: Ruby Dili ni kullanabilme, Ruby de Sayısal Veri Tipleri ni bilme ve Ruby yi Hesap Makinası gibi kullanabilme, Ruby de string işlemleri ni yapabilme, Ruby nin temel veri tiplerini bilme ve onlarla işlem yapabilme. Ruby de veri yapıları oluşturabilme ve onlar üzerinde işlem yapabilme, Ruby de veri yapıları arasında dönüşümler yapabilme, Ruby nin Gömülü metotları nı öğrenme ve kullanabilme Ruby kütüphanesini ni bilme ve kullanabilme, 1.2 Ruby nin Yapısal Sıradüzeni Ruby nin Yapısal Sıradüzeni nin en tepesinde Basic Object vardır. Her şey ondan üretilir. Onun altında Object nesnesi vardır. Bütün nesneler,

2 BÖLÜM 1. RUBY NEDIR? Şekil 1.1: Ruby Sınıflarının Sıradüzeni sınıflar ve modüller ona bağlıdır. Her şey ondan üretilmiştir. Module doğrudan Object nesnesine bağlıdır. Class sınıfı Module den üremiştir. Ruby nin temel yapısal tipleri diye bilinen Array, Numeric, Hash, Regex, String, IO sınıfları doğrudan Object ten üremiştir. Numeric sınıfının Integer, Bignum, Float adlı üç alt sınıfı vardır. Bunlar sayılarla ilgili bütün işleri yaparlar. Dosya işlemlerini yapan File sınıfı, IO sınıfının bir altsınıfıdır. Ruby nin Yapısal Sıradüzeni ni gösteren iyi bir çizenek kendi sitesinde yoktur. Belki sürekli gelişen bir dil için, yapısal durumunu gösteren bir çizenek çizmek uygun değildir. Belki de yapısal sıradüzen (hierarchy) o kadar karmaşıktır ki onu bir tek çizenek ile ifade etmeye kalkmak yanıltıcı olabilir. İnternette şu anda var olan en yalın çizenek Şekil 1.1 ile verilendir. Bu çizenek çok yalınlaştırılmıştır. 1.3 Ruby Nedir? Ruby kendisini şöye tanıtıyor: Pragmatik programcılar olarak, bir çok dili inceledik, isteklerimizi iyi ve kolay yaparak hayatımızı kolaylaştıracak araçlar aradık. Ruby yi yaratana kadar, incelediğimiz her dilden ürküntüyle ayrıldık. Bizim işimiz problemleri çözmektir; bir kaşığa sığan derleyici yazmak değil. Katı kuralları olmayan dinamik bir dil istedik. Kodlarımızla iletişim

1.4. RUBY NIN NITELIKLERI? 3 içinde olmak için açıklık istiyoruz. Kodların yalın, duyarlı ve etkili olmasının gerektiğini biliyoruz. Ne kadar az yazarsak o kadar az hata yapacağımızı biliriz. Elbette mümkün olduğunca üretken olmak istiyoruz. Kodlarımız ilk seferinde doğru çalışsın istiyoruz. Kod düzeltmek (debug) için harcanan zamanın üretim zamanından çalınan zaman olduğunun farkındayız. Kodları yazarken denemenin, düzeltme için harcanacak zamanı kısaltcağının farkındayız. Ruby nin en üst düzeyde soyutlama yapabilen bir dil olmasını amaçladık. Bir dil ne kadar üst düzeyli ise, isteklerimizi kodlama o kadar kolaylaşacak, iş için daha az zaman harcanacaktır. Ruby yi yaratınca, amaçlarımızın gerçekleştiğini gördük. Onu yaratmak için, başka dillere harcanan zamandan fazlasını harcadık. Ruby yolunuzun üstündeki engel değildir. Bir problemi çözerken kullandığınız dilin derleyicisiyle ve o dilin kurallarıyla uğraşmak yerine, doğrudan problemin çözümüne odaklanabilirsiniz. Ruby size daha iyi programcı olmanın anahtarını veriyor. Zamanınızı derleyiciye değil, problemi çözmeye ayırınız. 1.4 Ruby nin Nitelikleri? Ruby, 1993 yılında Yukihiro Matsumoto tarafından Japonya da yaratılan tamamen nesne tabanlı bir dildir. Matsumoto, Ruby kullanıcıları arasında Matz diye anılır. Matz ile ilgili bilgilere bir çok web sitesinden erişilebilir. Örneğin, www.ruby-lang.org sitesi denenebilir. Ruby Smalltalk, Perl ve Python dillerinin özeliklerine sahiptir. Bu diller scripting language grubundadırlar. Smalltalk gerçek nesne yönelimli programlama dilidir. Ruby de onun gibi gerçek nesne yönelimli bir dildir. Ruby nin sözdizimi Smalltalk un sözdiziminden daha kolaydır. Ruby genel amaçlı, nesne tabanlı yorumlayıcı bir dildir. Ruby Python ve Perl gibi sunucu tarafında çalışır. Kullanıcıları, Ruby nin programcıların en iyi dostu olduğunu savunurlar. Ruby açık kaynak kodludur. Web den ücretsiz indirilebilir, ama lisansa tabidir.

4 BÖLÜM 1. RUBY NEDIR? Ruby ile Common Gate Interface (CGI) scriptleri yazılabilir. Ruby kodları, Hypertext Markup Language (HTML) diline gömülebilir. Ruby nin yalın ve kolay sözdizimi çabuk öğrenilir. Ruby nin sözdizimi C++ ve Perl gibi bir çok dilin sözdizimine benzer. Ruby kolay ölçeklenebiir; dolayısyla Ruby ile büyük programlar yazmak ve bakımını yapmak kolaydır. Ruby ile internet ve intranet programları yazılabilir. Ruby Windows yanında POSIX nitelikli işletim sistemlerine yüklenebilir. Ruby Tcl/Tk, GTK, ve OpenGL gibi GUI araçlarını destekler. Ruby DB2, MySQL, Oracle, ve Sybase gibi veri tabanlarına bağlanavilir. Büyük bir standart kütüphaneye sahiptir; bu kütüphanede bilgisayar ile yapılan hemen her iş ile ilgili bir sınıf module ya da metot vardır. Kaynak programı yazmak, okumak ve algılamak için harika bir sözdizimi vardır. Kolay öğrenilir ve kolay kullanılır. Etkileşimli kipi (mode), küçük programların ve betiklerin kolayca hemen denenmesini sağlar. Kendi içinde irb adlı bir etkileşimli kabuğu vardır. Bir uygulama için görsel arayüz hazırlamaya elverişlidir. Kaynak programın yazılması ve okunması çok kolaydır. Kaynak programın yapısı için birden çok yöntem vardır. Programcı kendisine en uygun olanı seçebilir. Ruby belleği kendiliğinden düzenler.

1.5. RUBY GERÇEK NESNE TABANLI DILDIR 5 1.5 Ruby Gerçek Nesne Tabanlı Dildir Ruby on Rails adlı popüler web geliştirme aracının dayalı olduğu Ruby dili nesne tabanlı, modüler, etkileşimli ve yorumlayıcı bir programlama dilidir. Kolay öğrenilir. Öteki dillerde blok oluşturmaya yarayan parantezlere ve noktalama simgelerine, Ruby genellikle, gerek duymaz. Ama onları kullanmaya alışkın olanların kullanmasına izin verir. Ruby nin kararlı sürümü 1.8 olarak kabul edilir. Bu kitap 2.0.0 sürümüne göre yazıldı. Ruby sürekli geliştirilen bir dil olduğu için, ilerideki zamanlarda yeni sürümleri ortaya çıkacaktır. Ruby yi öğrenmek isteyenlerin ve Ruby ile uygulama yazmak isteyenlerin son sürümü kullanmaları önerilir. Yalın ve kendine özgü bir sözdizimi (syntax) vardır. Unix, Linux, Mac, Windows, Amiga, Symbian vb her işletim sistemi üzerinde çalışabilir. Bazı Unix, Linux ve Mac sürümleriyle birlikte gelir. Ruby derleyicisi, Ruby web sitesinden ücretsiz indirilebilir. Şu anda oldukça geniş bir kütüphaneye sahip olmuştur. Kütüphanede module adını alan birimler, hemen her programcının gerekseme duyacağı metotları içerir. Ruby, her sınıf içinde metot tanımlamak yerine, her sınıfa uygulanabilen metotları module ler içinde toplamıştır. Böyle oluşu, dili daha küçük ama daha etkin kılmıştır. Ruby, gelişmiş kütüphanesi ve kolay sözdizimi nedeniyle, büyük programlarda C++, Java gibi dillere tercih edilen bir dil olmuştur. Java nın ağır sözdizimini yalın duruma getirdiği için, Java programcılarının dikkatini çekmektedir. 1.6 Ruby un Uygulama Alanları Web tabanlı uygulamalar (Ruby on Rails) Ağ GUI (Görsel arayüzler) İşletim sistemi ile ilgili uygulamalar Oyunlar Veri İşleme (veritabanı uygulamaları) İş hayatı için uygulamalar

6 BÖLÜM 1. RUBY NEDIR? 1.7 irb irb ye Etkileşimli Ruby kabuğu (Interactive Ruby, Ruby Shell) deniyor. Hemen her işletim sistemi için var olan kabuktur (komut istemi penceresi) gibidir. irb kabuğu, kullandığınız işletim sisteminin komut istemi penceresinde (kabuk) açılır. Ruby yorumlanabilen bir dil olduğu için, irb de yazacağınız her Ruby komutuna anında karşılık alırsınız. Ruby kabuğu, ondan beklenen her şeyi verir. Komutları akılda tutar (command-line history). Önceden verdiğiniz komutları yukarı aşağı tuşlarına basarak, görüntüye getirebilir, Onları yeniden yazmaya gerek kalmadan, Enter tuşuna basarak çalıştırabilirsiniz. Görüntüye gelen komut üzerinde sol-sağ tularıyla geri-ileri giderek, komutta değişiklik yapabilirsiniz. İş denetimi yapabilirsiniz. Ayrıntılar için Ruby dökümanlarına bakabilirsiniz. 1.8 Ruby Programları Ruby de birden çok satır gerektiren script ya da programları bir editörle yazıp.rb uzantısıyla kaydedebilirsiniz. Ruby programlarını çalıştırmak için, ruby program_adı.rb yazmak yetecektir. Tabii, sisteme ruby nin yerini tanıtmadıysanız, ruby nin ve programın bulunduğu adresleri (path) yazmanız gerekecektir. Unix türevlerinde programın ilk satırı olarak, ruby nin adresini #! /usr/bin/ruby -w biçiminde yazmak, sizi ruby nin bulunduğu adresi yazmak zahmetinden kurtaracaktır. Buna Unix te "shebang" deniyor. Daha iyisi çevre değişkenlerini (environment variables) ayarlamaktır. Bu işin nasıl yapıldığı, işletim sistemine bağlıdır. Ruby web sayfasında her işletim sistemi için çevre değişkenlerinin nasıl ayarlanacağını anlatan ayrıntılı açıklamalar vardır. Burada onları tekrarlamanın gereği yoktur. Unix sistemlerde, kullanıcının, programı çalıştırma yetkisine sahip olması gerekir. Bunun için, mod değiştirme yetkisine sahip olanın, kullanıcıya yetki vermesi gerekir. Bu yetkiyi chmod +x proram_adı.rb komutu ile verebilir (bkz. [14], [16], [11]).