REBOL bir isyankar

ArticleCategory: [Choose a category for your article]

Software Development

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to tr:Erdal Mutlu

AboutTheAuthor:[A small biography about the author]

Georges uzun süredir bir UNIX (ticari ve serbest) kullanıcısıdır. Kendisi Rebol'un başından beri bir tutkunudur. Eğer, Fransızca biliyorsanız, Rebol hakkında iki yıl önce yazdığı yazıyı http://www.amiganews.com/ANN/ no117/rebol.shtml adresinden okuyabilirsiniz.

Abstract:[Here you write a little summary]

Diyelim ki REBOL bir mesajlaşma dilidir (HTTP, FTP, SMTP, POP, NNTP vs gibi ağ protokolleriyle saydam bir ağ bağlanabirliği sunmaktadır.). Aslında REBOL bundan çok daha fazlasını sunmaktadır. Ancak, daha çok İnternet bağlantılarına adanmıştır.
REBOL'un açılımı Relative Expression-Based Object Language (Göreceli İfade Tabanlı Nesne Dili) dir.
http://www.rebol.com adresinden Rebol/Core'un 2.3 sürümünü yaklaşık 40 farklı ortam için indirebilirsiniz. Rebol, her ne kadar ilk sürümleri olsa da, çeşitli Linux dağıtımlarıyla birlikte gelmektedir.
Haberlerden biri de Rebol/View dur. Onun 0.9 (4.1) beta sürümünü indirebilirsiniz.
Bu sonuncusu Rebol üzerinde yapılmış çok büyük bir geliştirmedir. Bu yazıda Rebol'un özelliklerini ortaya koyacak kısa bir gözden geçirme yapacağız.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Giriş

Rebol'un altında yatan düşünce insan dillerine yakın basit bir programlama dili yaratmaktır. Rebol'un kurucularından Carl Sassenrath Apple, Commodore, HP vs. gibi şirketlerdeki çalışmalarıyla bilgisayar alanında iyi tatnınmış kişilerdendir. Sözgelimi, Amiga topluluğu ona çok şey borçludur.
Amiga'dan neden sözediyoruz? Amiga işletim sisteminin en önemli özelliği boyutudur. İşletim sisteminin en son sürümünün (3.5) boyutu 20 MB'den azdır. Bu, 200 ila 600 MB olan işletim sistemleriyle çalışmaya başlamış olanlar için biraz garip gelebilir.
Bunu söylememin nedeni, gelişmeler ile birlikte insanların küçük boyutları unutmaya başlamalarındır. Varolan araçların sayısı oldukça fazladır ve betik dilleri de oldukça yararlıdır. Ancak, bunlarla yapmak istediğiniz ne olursa olsun, yazmanız gereken satır sayısı oldukça fazla olmaktadır. Genellikle bu diller özel işler için yaratılmıştır. Perl veya Rexx sözgelimi, sistem yöneticileri tarafından beğenilen dillerdendir. Perl gibi dillerle ağ yönetimininden fazlasını yapabilirsiniz tabii.
Herneyse, versatility ve boyuttan sözedersek, Rebol bir model oluşturmaktadır.
Rebol ile herşeyi yapabileceğinizi söyleyebiliriz. Sınır, dilin kendisinden değil, sizin hayal gücünüzden kaynaklanmaktadır.
Hadi kılavuzlu bir tur yapalım.

Sunum

Daha önce de söylediğimiz gibi Rebol 40 ortam için vardır.
Bu asıl program olan Rebol/Core'u için geçerlidir. Rebol/Core'un favorisi İnternet olmasına karşın, sundğu araçla her türlü uygulama geliştirilebilir.
Rebol/Core ile sanaldoku, ftp, e-ileti haberleşmeleri ve cgi betikleri yazılabilir. Metin, html vs işlenebilir. Aynı zamanda sistem komutları veya daha karmaşık programlar yazılabilir.
Programın şu andaki sürüm numarası 2.3 tür ve sıkıştırılmamış olarak belirtilen ortamda 350/400 KByte'tır. rebol.r ve user.r olmak üzere iki yapılandırma dosyası ile bir çalıştırabilir dosyadan oluşmaktadır. user.r dosyası arşivi indirdiğinizde henüz ortada yoktur. Programın ilk çalıştırmasıyla yaratılmaktadır. Programın yüklemesi hakkında söylenecek bir şey yok, çünkü yapmanız gereken tek şey, dosyaları sözgelimi rebol adlı bir dizine yerleştirmenizdir.
Genelde yarattığınız dizini işaret eden bir çevre değişkeni atamanız gerekecektir.
Arşivde bir kaç dosya daha bulacaksınız: 2 betik ve 2 html belgesi. Betiklerden biri görüş bildirimde bulunmak (feedback) için, diğeri ise, html biçiminde belge (anahtar kelimeler) oluşturmak için kullanılabilir. 2 html dosyası yükleme bilgileri ile notları içermektedir. Daha fazla bilgiyi Rebol'un sitesinde bulabilirsiniz.
Daha sonra Rebol/View uygulamasını indirebilirsiniz. Kısaca söylemek gerekirse bu, Rebol'un kullanıcı grafik arayüzüdür (KGA, İngilizcesi GUI). Bunun hakkında daha sonra çok şey söyleyeceğiz!
Yazının yazımı sırasında Rebol/View sadece Amiga, FreeBSD, Linux ve Microsoft işletim sistemleri için vardı. BeOS R5, Irix, HP-UX, AIX, Solaris Sparc sürümleri yazılmakta ve çok yakında ortaya çıkarlar.
Rebol/View, Rebol/Core büyüklüğünde tek bir çalışabilir dosyadan oluşmaktadır. Bir de, uygulamanın henüz beta sürümünde olduğunu (0.9.9 yayım no 4.1) size söylemeliyim.
Programı istediğiniz yere koyduktan sonra, ilk çalıştırmanızda ağ parametrelerinin ne olduğunu size soracaktır. Rebol'un sitesinde bununla ilgili belgeler ve sıkça sorulan soruları bulabilirsiniz.
Rebol/Command ve Rebol/Apache olarak iki ürünün daha var olduğunu bilginize sunuyorum.
Rebol/Command DLL, uygulamalar ve veritabanlarına erişmek amacıyla yakında ticari bir ürün olarak yayımlanacaktır.
Rebol/Apache Apache'ye bir ek yazılım (plug-in) modülü olacaktır.
Pek iyi, şimdi bununla ne yapabiliriz?

Rebol/Core

Eğer, Rebol'a yeni iseniz (veya değilsinizdir!), yapılacak en iyi şey örnek betikleri indirmektir. Bunların sayısı yaklaşık 200 dür!
Betiği nasıl çalıştıracağınız işletim sistemine bağlıdır. Kabuk veya benzeri ortamı olan sistemlerde "rebol test.r" benzeri bir komut yazmanız gerekir. .r eki bunun bir Rebol betiği olduğunu belirtmektedir. Denemek isterseniz, "do %test.r" yazabilirsiniz.
MacOS (MacOS X değil tabii!) gibi kabuk veya komut ortamı olmayan işletim sistemlerinde betiği, Rebol'un çalışabilir ikonu üzerine sürükleyip bırakmanız yeterlidir. Herşey bu kadar!
Bu, sözgelimi Microsoft'larda da çalışmaktadır.
Şimdi canavarın kalbine doğru yaklaşalım!
İşte Rebol örneklerinden olan mailsend.r betiği.

REBOL [

Title: "Email Message Sender"
File: %mailsend.r
Date: 10-Sep-1999
Purpose: {A very simple way to send an email.}
Note: {
The TRIM function below is used to remove the blank
lines from the head of the email, so that the first
line of text gets used as the subject.
}
Category: [email net 1]
]
send luke@rebol.com trim {
Hi there.
Just wanted to send you an email message from REBOL.
-Friend
}

Aslına bakarsınız bu betikte bir satır kod vardır!
REBOL ile başlayıp kapanış "]" parantezine kadar olan kısmı her nekadar her Rebol betiğinde olması gerekse de, başlık sayılır.
Son kısım mesajın içeriği olup, daha sonra aşağıdaki Rebol kodu gelmektedir:
"send luke@rebol.com trim"
"note" kısmında yazılanlar betiğin notunu oluşturmaktadır.
Eğer, bilgisayarınız düzgün yapılandırılmışsa, bu kadarı e-ileti göndermeye yeterlidir.
Eğer, bu işi daha kısa yapmanın yolunu biliyorsanız, bize de söyleyin!
Rebol betikleri yorumlanıp bağlantı noktaları (ports) aracılıyla biraz da Rexx gibi haberleşmektedir ve boyutları küçük olduğundan, sonuç oldukça hızlı elde edilmektedir.
Rebol'un başından beri bilen birisi için bu bir süpriz sayılmaz.
2. sürümden sonra ürüne daha fazla özellik ve fonksiyon eklenmiştir... Gelişmeleri görmek için örnek betiklere bakmak yeterlidir.
Ftp, web ve e-ileti haberleşmeleri ile ilgili herşeyi Rebol ile çok basit olarak yapılmaktadır. Birkaç satır kodla ftp sunucusundan dosyalar indirebilir, sanaldoku sayfalarını bir yerlere çekebilirsiniz...
Metin ve html gibi dosyaları işleyebilirsiniz. 2083 byte'lık bir örnek, metin dosyasını html dosyasına çevirmeyi göstermektedir.
Cgi betikleri de işlenebilir. Sözgelimi, bir cgi formu ile html dosyası oluşturabilirsiniz.
Diğer bir özellik de, Rebol betiğini betik etiketi ile html dosyası içerisinde kullanabilmektir. Ancak, bu etiketi çok az internet tarayıcısı tanımaktadır. Ara çözüm olarak Rebol'un, cgi kullanarak dinamik içerik oluşturması düşünebilir.
Nefeslerinizi tutun, 1827 byte'lık bir örnek, bir sanaldoku sunucusu yaratmaktadır!!!
Cep telefonları olmadan yaşayamayanlar için, GSM telefonuna mesaj atan bir betik de vardır.
Rebol ile dosyaları sıkıştırabilir, sıkıştırılmış olanları açabilir ve dosyaları kriptolayabilirsiniz. Hatta sıkıştırılmış dosyaları otomatik olarak açabilirsiniz. Bunun için autoextract.r ve encrypt.r betiklerine bakabilirsiniz.
Farkettiğiniz gibi bu örnekler bir altın madeni gibidir. Onları incelemenizi öneririm. Zamanınız boşa gitmeyecektir. Yazı içerisinde hepsinden sözetmek olası değildir.
Rebol'un harika bir ürün olduğunu söyleyebiliriz! Rebol/Core gelişmekte olan ve sürekli güncellenen ve denemeye değer bir üründür.
Rebol/View'u düşünecek olursak, gelişmeden değil devrimden sözedebiliriz! (Yoksa ona Rebol devrimi mi desek?)

Rebol/View

Rebol/View'u tanımayanlara oturup rahatlamalarını öneririm!
Rebol/View ile Rebol/Core ile elde ettiğiniz özelikklerin aynılarını ve hatta fazlasını elde edeceksiniz.
Konuyu özetleyen bir sözcük : İNANILMAZ!
İsterseniz bir örnekle başlayalım.
İşte size lftest.r adlı bir betik.

REBOL [

Title: "New way to access LF languages"
File: %lftest.r
Date: 28-Jul-2000
Purpose: {Shows how easy to create buttons.}
Category: [view VID 1]
]
view layout [
title "LF the multilingual magazine"
across
button "English" button "Français" button "Castellano" return
button "Deutsch" button "Nederlands" button "Italiano"
]

İşte sonuç:

lftest.jpg

LF'nin dillerine ulaşmanın yeni yolu olabilir...

Devam edelim... 1413 byte'lık betik grafik bir metin işleyicisi yaratmaktadır!!! İnanmıyor musunuz? İşte size ispatı:

texted.jpg

Betik programı budur.

Daha fazlasını mı istiyorsunuz? image-sort.r betiği resimleri gösterme ve sıralama işlevi görmektedir. Üstelik boyutu da 3443 byte'dır. İşte bakın:

imed.jpg

Bu resim NeXTstep(TM) sistemiden alınmıştır.

Şu ana kadar Rebol/View'un müthiş özellikleriyle küçük boyutlu programlarını gösterdik.
Akla şöyle bir soru gelebilir: "Bunu başka bir programlama diliyle ve bu kadar az kod yazarak yapabilir misiniz?" Dahası, bunu, frenleri olan bir kaplubağı kullanarak derlemek zorunda da değilsiniz... (JIT adındaki bu şeyi biliyorsunuzdur!) Kızmayın şaka yapıyorum... Aslında, pek de değil, bu benim düşüncem tabii o yüzden de paylaşmak istedim! Benim takipçim olan Atif'in herzaman söylediği gibi : TIMTOWDI (Bir işi yapmanın birden fazla yolu vardır.)... ama onun anadili Perl'dir!
Şimdi bayanlar ve baylar, tamamen yeni bir şey.
80'li yıllarda bizler BBS'lere, kullanılan işletim sistemine göre daha çok veya daha az gelişmiş araçlar ile bağlanmaktaydık. 90'lı yıllar bize tarayıcıları verdi. Bu grafik tarayıcıların boyutları büyüdükçe büyüdü ve şimdi bunlar gaz fabrikaları gibi (En azında 'en ünlüleri'.) oldular. Sanaldoku siteleri gün geçtikçe daha fazla Java kullanmakta ve günümüz hızlı bağlantılarına karşın internette dolaşmak gittikçe bir kabus haline gelmektedir. Tabii bunun hepsi hem bilgisayarınıza, hem bağlantınıza ama hem de tarayıcınıza bağlıdır.
Şimdi 21. yüzyıl sanaldoku sitelerini dolaşmanın yeni yöntemi gelmektedir... ya da Reb'i gezmek mi desek?
Rebol/View ile reb'i (web veya sanaldoku sitelerini) tarayıcı olmadan dolaşabilirsiniz!!!
Rebol/View ile bazı sitelere bağlanabilir ve bir tarayıcı ile yaptığınız dosya indirme, sitede gezinme ve yazılımları güncelleme gibi işleri yapabilirsiniz.
Dahası, sanaldoku yöresinin sizin tarayıcınızı veya bir 'ürünün' bir sürümünü desteklemediği ya da daha kötüsü, sizin işletim sisteminizi desteklemediği için sorununuz olmaz!
Herneyse, konuşmaktansa bir örnek vermek daha iyi olacaktır.

connex.jpg

Bu gerçekten bir İnternet bağlantısıdır! Reb sitelerine Rebol/View ile bağlanmayı kendiniz deneyin.
Başka bir örnek. Aşağıdaki, LF'nin Temmuz sayısı içeriğidir. Betik 2197 byte'lıktır ve çalışan bir örnektir. Yani, tuşa basarak ilgili yazıya, tarayıcı açılarak ulaşıyorsunuz.

lfissue.jpg


Bu yazıları Rebol/View ile görüntelenebilir duruma getirmek biraz zaman alabilir. Eğer, denemek isterseniz, işte size bir örnek.
Eğer, Reb sitelerini Rebol/View ile gezerseniz, her örnek için olan kaynak kodu indirebilirsiniz. Böylece bunların nasıl çalıştığını öğrenmiş olursunuz.
Yararlı bilgi elde etmenin bir yolu da Rebol'un oluşturduğu herkese açık olan dizindir. Yapılan her bağlantı URL adında bir alt dizin yaratmaktadır. Bu alt dizinde kaynak kodları, resimleri vs elde edebilirsiniz.
Bu masalımsı araç hakkında söylencek çok şey var tabii. Bunun için bir yazı değil, bir kitap yazılmalıdır. Daha önce de söylediğimiz gibi, Rebol ile yapabileceklerinizin sınırları hayal gücünüzle ölçülmektedir.
Birkaç not: Bu yazı için Rebol/Core'u AmigaOS 3.5, BeOS 5, MacOS 7.1 (Afedersiniz, elimde sadece bu vardı da!) , Solaris Sparc 2.6, Irix 6.5.7, Sonlandırmamış 4.0 (NT) ve tabii ki Linux (RH 6.2) denendi.
Rebol/View AmigaOS, NT ve Linux altında denendi. Deneysel sürümleri de Irix, BeOS 5 ve Solaris 2.6 denendi.
Betikler ve ekran görüntüleri Linux'ta yapıldı, ama 6 ortamda denendi.
Betiklere gelince, denenen tüm ortamlarda aynı şekilde çalıştılar (Rebol/View'un bazı deneysel sürümleri dışında tabii. Ancak, bunu da anlayışla karşılarsınız sanırım.)
Tek fark hızda ortay çıktı, eee kullanılan bilgisayarlar 25 Mhz den 400 Mhz arasında deyişiyorsa olacak o kadar! Her nekadar işlemci hızı funnel yasasına göre herşey demek değilse de. (Takipçilerimden büyük filosof Javi'ye teşekkür ederim, her nekadar onun savını biraz değiştirmiş olsam da!)
Bu bay Intel, 1GHz işlemciyi 100 MHz veya hatta 133 MHz veriyolunda kullanılırsa, funnelin küçük kısmı daha da küçülmektedir.
Tansiyonu artırmamı bağışlayın!!!
Rebol/View'a geri dönecek olursak, onun gerçekten çok hızlı olduğunu söyleyebiliriz. Reb'i Rebol/View ile gezmek sanaldoku yörelerini alışılmış tarayıcılarla gezmekten daha hızlıdır. Rebol'u uygulama geliştirme aracı olarak kullanmak da oldukça etkileyicidir.
Eğer, bu harika yazılım parçasını denemeyi düşünmüyorsanız, pek meraklı birisi değilsiniz demektir!

Gelecek

İlk olarak Rebol/View'un 1.0 sürümünü bekleyebiliriz. Daha önce de sözünü ettiğimiz gibi başka birkaç ürün üzerinde de çalışılmaktadır. Ama, 'henüz gelecek' olandan söz etmedik. Rebol şu aralar büyük, ama çok büyük bir ürün olan Rebol/Express üzerinde çalışmaktadır. Bu tamamiyle haberleşmeye adanmış, ticari bir ürün olacaktır. İsmini İnternet yazılımı koyabiliriz. Ürün hakkında daha fazla bilgiye http://www.rebol.com/products.html adresinden ulaşabilirisiniz.
Rebol/Express, Backweb veya Marimba'ya rakip olabilecek bir ürün olacaktır. Bekleyin ve görün!
Rebol'da çalışan kişilerin etkinliklerini gözönünde bulunduracak olursak, harika bir yazılım bekleyebiliriz.
Eğer, fark ettiyseniz, ürünün lisansı konusundan hiç söz etmedik. Bilginiz olsun diye söylüyorum, Rebol/Core parasızdır, ancak GPL lisanslı değil.
Dahası, Rebol'dakiler ürünleri gibi, harika insanlar!
Görüşlerinizi herzaman dikkate alıyor ve hatta görüş bildirmenizi kendileri arzu ediyor. Sorularınıza yanıt veriyor ve size belge ve sikça sorulan sorular belgeleri sağlıyorlar. Ve bunların hepsi BEDAVA!
İşlerindeki sürekli gelişmeye de güvenebiliriz.
Gelecek birkaç yıl içerisinde haberleşme alanında Rebol'un önemli oyunculardan olacanağına inanıyorum.
Size tek söyleyebileceğim: Rebol ürünlerini deneyin ve geri kalmayın!
Sadece müthiş bir zamanda yaşamıyoruz, zaman daha da iyiye gidiyor!