Cumartesi, Ocak 13, 2007

Cygwin, betik dilleri ve Gebze yolculukları...

Ulusoy ile yapılan Gebze yolculuklarının her birinde isteyip de bakmaya zaman bulamadığım teknolojiler (oyuncaklar) ile oynama fırsatı veriyor bana. Malum 5 saat git, 5 saat gel. 10 saat de güzel bir mesai :). Ben uzun zamandır Total Commander fanıyım. Total Commander, Norton Commander, Windows Commander geleneğinin son temsilcisi olan bir file browser. Windows Explorer'a göre üstünlükleri saymakla bitmez. Kesmesi, yapıştırması, arama yetenekleri, multi rename'i ile yıllardır gönüllerimize taht kurdu. Zannedersem üç sene oldu, iş yerinde bir proje vesilesi ile ilk kez yıllarını unix'e vermiş, unix shell'lerinde harikalar yaratan, vi'da kod yazan, shell'den debug eden insanlar ile tanıştım. Unix dünyasının scripting'e -betik dillerine- olan yetenekleri beni çok etkilemişti. O zaman bu zamandır, ufak ufak ben de bulaşmaya başladım betik işine. Önce biraz shell scripting, bash olsun cshell olsun derken geçen sene miydi biraz da Python bakmıştım. Sonra gene bir proje vesile ile beraber çalıştığımız başka bir kurmdan arkadaşların Windowslarında unix shell'leri kullandıklarını farkettim. Cygwin. Evet dedim artık Windowsumdan vazgeçmeden unix'in gücünden faydalanma günün yakındır Umut. Evet Total Commander muhteşem ama bir yaptığını bir daha yapmak istediğinde senin için yapıvermiyor. Ama bu tekrar tekrar yaptığım işler için betikler yazarsam bunları müteakip seferler rahat rahat kullanabilirim. Laptop'a kurdum Cygwin'i. Gel zaman git zaman üç beş bash betiki yazdım, anlıyorum iş ilgi istiyor. Hem betik dillerinde rahat olacaksın, hem yazdıkça elinde birikecek kod ki copy paste ile daha kolay hızlı yeni işler yapacaksın. Dedim Umut fırsat bu fırsattın, bash cshel l iyi hoşta bak alem Python diyor, Perl diyor, Ruby diyor, bunlara bir baksan. Bu Gebze seyahatimi fırsat bilip bu dillere baktım. Örnek kodlar yazım hanginin benim ağız tadıma uyduğuna karar vermeye çalıştım.
Burda uzun uzadıya bu dillerin karşılaştırmasını yapmak istemiyorum ama kısaca üçü de hemen hemen (ortalama bir kullanıcı için) aynı yeteneklere sahip. Geriye de ağız tadı, estetik falan kalıyor. Perl'e şöyle bir baktım, tam hacky. Karman çorman bir syntax'i var. Anladım ki C++ için yanıp tutuşanların pek seveceği bir betik dili. Benim hastalığım ise C++ değil ADA95 ki ADA95 okunmak için tasarlanmış bir dildir. Yazdığım her ADA koduna hayran oldum şu ana kadar. Çok güzel, çok okunaklı geldi bana. C++ ile kodlamaya ADA'dan sonra başladım. C++ bir çok yönüne hayran kalmak ile birlikte hala syntax'ini sevemedim. Bu durumda Perl bana göre değil. Geriye Python ve Ruby kaldı. Ruby pure object oriented bir dil. Python'a göre daha yetenekli gözüküyor ama ben sadece altı üstü 20-30 satırlık betikler yazabileceğim, sonradan baktığımda anlamak için zorlanmayacağım bir dil arıyorum. Dil de yetenekleri arttıkça beklendiği üzere öğrenmesi zorlaşıyor. Karmaşıklaşıyor. Python hem biraz daha okunaklı olması hem prosedürel programlamaya izin vermesi nedeni ile benim birincim oldu. Tabi kararımdaki en büyük etki duygusal. Üçünde de ufak kodlar yazdım, kendimi en çok Python yazarken rahat hissettim. Şimdi sıra dile biraz daha haim olmaya geldi. Yolda ADA kodlarını okuyup, kod metriği toplayan betikler yazdım. Yok efendim kaç satır kod var, kaç satır comment var, yok kaç tane if var. Çalışmaya (yeni oyuncağımla oynamaya) devam.

2 yorum:

Samil Korkmaz dedi ki...

Güzel. Çalışmalarının yılmaz takipçisiyiz.

Script'in karşılığı olarak kullandığın "betik" ne demek? Bilgisayar alemi dışında bir işlevi var mı?

Rahmi Lale dedi ki...

Aabi,
SAGE çalışanlarına yıldıran Ankara-Gebze-Ankara yolculuklarında başarılar diliyorum.
Nedir bu çektiğiniz. Yok mudur bu toplantıları net üzerinden yapmanın bir yolu?
Yoksa bir fiil füzelerin vidalarını mı sıkmanız gerekiyor?
Selametle...