Hafiflik hadisesine gelince, e adam onu da açıklamış... Doğallık demiş, `least surprise`, `tutarlılık` demiş. TV türkçesiyle devam edeyim, kepekli mi buldunuz bu dili? Sizi gidi taş fırın erkekleri sizi... :) Yani sundance`ım, Reha Muhtar topic`li bir başka yorumun altında olsaydı bu `hafiflik` hususunda yazdıklarının altına imzamı gözü kapalı atardım ama buraya uydumu şimdi?
Bu hafiflik konusunda örnek olması için birkaç laf... Mesela dilin `hafif`liğine katkıda bulunması için C++ vb. OOP dillerde varolan çoklu-miras alma özelliği Ruby`de yok, onun yerine `mixins` denilen daha basit bir model var. Ama `perlish` regexp`ler her türlü inceliğiyle destekleniyor. Daha ne istiyonuzzz?
> Beni geliştirmeyen bir şey ise öldürüyor demektir :p (bkz: ehcszteiN)Be hey ölümlü gafil... Zamana niçin kafa tutarsın?
We, mortals, have only limited brain resources. (bkz.)Stroustrup`un argümana gelince... Kendi şartları içinde doğru bulurum. Betik dillerin varlığını hesaba katmadan düz haliyle yorumlandığında Stroustrup`un cümlesi `garbage collector`leri de hedef alacaktır ki gerçek de böyledir, pointer kullanımını kaldırdığınızda ve hatta dili `tipsiz`leştirdiğinizde -performansın yanısıra- bazı önemli olanakları da programcının elinden almış olursunuz. Fakat bu meselede `yorumlanan dil` vs `derlenen dil` ayrımını yapmak durumundayız. (Anketteki bir tartışmaya ithafen `php`nin programlama dili olduğunu da tekrar edeyim :) Zât-ı kanaatimce Stroustrup`un cümlesini RMS`in TCL ile ilgili -biraz insafsızca- yaptığı eleştiriler bağlamında geçen şu cümlesiyle `yorumlanan dillere` adapte etmek daha doğru olur.
The principal lesson of Emacs is that a language for extensions should not be a mere `extension language`. It should be a real programming language, designed for writing and maintaining substantial programs. Because people will want to do that!Beğenirsiniz, beğenmezsiniz o ayrı konu, her dilin potansiyel müşterisine yönelik -sadık takipçileri tarafından çok iyi bilinen slogan/mottolarda spotlaştırılmış- bir dizi tasarım önceliği, felsefesi vardır. Ruby`nin de `principal of least surprise` vb. sloganları mevcut. Fakat bu slaytlarda belirginleşen `less brain power consumption`, `lightweight language` laflarının -en azından Ruby`yi takip etmişliğim kadarıyla- kutsal insan MATZ`in, cemaate yönelik olarak `ulu önderimiz der ki` takdimiyle dillere pelesenk edilmesi amacına matufen kurguladığı kutsal cümleler olmadığını tahmin etmekteyim. Burada şöyle bir arkaplan görmekteyim. Ruby gerçekten yeterince takdir edilmeyen bir dil. Tuhaf bir düşünce gibi algılanabilir ama capon malı Ruby`nin tepki gördüğü bazı çevrelerde (bkz. Bruce Eckel) bir tür anglo-sakson/germen dayanışması koklamaktayım. `Python`s poor bastard` vb. akla ziyan hakaretleri başka türlü tevil etmekte zorlanıyorum. Slaytlarda da bu hissiyatlara -!- yönelik bazı cümleler var. `Be minor, Be cool` böyle meselâ. Sonra bir yerde MATZ`in `Christian mormon` vurgusu vs...
Ruby`yi yeterince kullanmadığım bir başka dille karşılaştıramam ve böyle bir tecrübeye dayanmayan -yani Ruby`yi hiç denemeden yapılmış- eleştirileri de dikkate almam. Bir dilin size hissettirdiklerini ancak ve ancak elinizi kirleterek anlayabilirsiniz. (Tabii bu işi `Hello World`le değil de önceden bir başka dilde çözdüğünüz cevval bir sorunu o dille kodlamanız şartıyla ;) Bir deneyin bakalım yaw...
Sahsen Ruby ve RubyUnit kullanarak kod yazdim; ve hakikaten guzel kodlaniyor. Birim testleri unutmazsaniz yanlis sayisi fazla olmuyor, sadece bir noktada uste-bindirme (overloading) oldugunu deleyici bulamadi ve kafasi karisti. Fakat bu ufak bir ornekti diyebilirim, tamir edildikten sonra hersey calisti.
Saygilar,