Programlama Dillerini Anlamak

Eylül 1, 2009 by mrok · 1 Comment 

Yıllarca forumlarda, usenet ve bilimum mecralarda programlama dillerinin, geliştirme ortamlarının fanatikliğini yapıp, tartışıp durduk. Ruby ve Python taraftarları, C# ve Java müdavimleri ve diğer dil sevdalıları birbirlerini yediler, yüzlerce blog yazıları yazıldı. Bir zaman böyle geçti gitti. Daha sonra sahneye Ruby on Rails açık kaynak web geliştirme framework’u çıkıverdi birden, Martin Fowler dayının P of EAA kitabında bahsettiği pattern’ler bu framework ile birlikte ağızdan ağıza dolaşmaya başladı. İnsanlar 1995 yılından beri sahnede olan Ruby‘nin adını ilk defa duydular. Daha önce tartışmalarda hiç denk gelmemişlerdi halbuki. Rails ile birlikte Java dünyasını kasıp kavuran Struts, Spring gibi framework’ler eleştirilmeye başlandı, Convention over configuration kavramı insanların gönlünü fethetti. Rails’in farklı platformları hedef alan benzerleri çıktı. Güneş batıdan doğmuşdu bu defa, insanlar yepyeni bir akım ile karşı karşıyaydılar.

Bu yeni akım programlama dillerinin bir amaç olmadığını, sadece bir araç olduğunu ifade ediyordu. Nitekim Rails ile, Ruby gibi bir dilin web uygulamaları geliştirilmesine nasıl da yatkın olduğunu ve Ruby ile hızlı bir şekilde nasıl prototip geliştirilebileceğini gördük. C# ve Java kıskacından biraz olsun kurtulduk bu yeni akımla. Sonra blog sayfalarını Google’ın Python kullandığına ilişkin haberler doldurmaya başladı. Evet dünyada arama motoru pazarı birincisi, insanların günlük hayatının vazgeçilmez bir parçası olan Google’dı bu. Nasıl olur da Google Python gibi bir dili kullanabilirdi? Halbuki Python sade ve basit bir dildi, içerisinde öyle kocaman özellikler barındırmıyordu. Yeni yetme programcıların kafası karışmıştı. Fakat sonra anladık ki Python kullanmasını bildiğinde çok kullanışlı, okunabilirliği yüksek ve hızlı öğrenme eğrisine sahip esnek bir dildi. Google, testlerini, test harness’ını yazmak ve sistemsel görevleri yönetmek için bol bol Python kullanıyordu. Aslında eski toprak system administrator arkadaşlar için Python veya Perl çok yabancı diller değildi. Fakat yeni nesil, Python dilini hafızasına kazımış oldu böylece. Django, Pylons ve TurboGears ile Python daha çok pekişti kafalarımızda. Bu gelişmelerle insanlar farklı amaçlar için farklı araçların olduğunu ve uzun zamandır da kullanıldığını net bir şekilde görmüş oldular.

Web servislerinin günlük hayatımıza girmesiyle beraber Flickr, Wikipedia veya Facebook gibi sitelerle tanıştık. Flickr gibi muhteşem bir servisin PHP ile kodlandığını biliyor muydunuz? veya Wikipedia’nın? Evet ikinci sınıf bir dil gibi görülen PHP (şahsen öyle olmadığını düşünüyorum) böyle muhteşem servislerin kodlanmasında kullanıldı ve kullanılmaya devam ediyor. At binenin kılıç kuşananındır prensibiyle asıl dilden daha çok, bu servisleri yazan sağlam geliştiricilere bakmak gerekiyor. Biliyoruz ki bu servislerin arkasında muazzam framework’ler var, bu framework’lerin belirli yerlerinde belirli diller kullanılıyor. Örnek vermek gerekirse Facebook, PHP dilini arayüz kodlamada kullanırken, Erlang‘ı chat altyapısında kullanıyor, Twitter arayüz geliştirmede Ruby (Rails) kullanırken, servis tarafında Scala kullanıyor. Farklı amaçlar için farklı araçlar kullanılıyor yani. Çünkü tek bir dil, framework veya teknoloji her hedefe uymayabiliyor.

Tek bir teknoloji bilmek ve onu iyi bir şekilde kullanmak elbette çok güzel bir meziyet fakat gerçekçi olmak gerekirse tek bir teknoloji, dil veya framework içerisinde sıkışıp kalmak, bize yeterli ufku ne yazık ki sağlayamaz. Hiç görmediğimiz farklı güzellikler bir yerlerde keşfetmemiz için bizi bekliyor olabilir. Bu yüzden sadece önümüze bakmak yerine arada bir etrafımıza bakıp yeni diller yeni ortamlar tanımalıyız. Farklı problemlerle karşılaştığımızda, İsviçre çakısında olduğu gibi uygun aracı (dil, framework vb.) bulup, o problemin çözümünde kullanmalıyız. Böylece hayat bizim için daha kolay olacaktır.

* Sevgili mucit’in yazmış olduğu “Web Programlamanın Şaşkın Paradigmaları” yazısı nedense bende böyle bir yazı yazma isteği uyandırdı :) Hem tarihin tozlu sayfalarını karıştırmış olmak hem de programlama dilleri üzerine bu seriyi devam ettirmeyi istedim.

Haydi Erlang Öğrenmeye

Ağustos 19, 2009 by mrok · 1 Comment 

Erlang programlama dilini bilenler bilir, concurrent programlama için biçilmiş kaftandır. 1986 yılında ilk versiyonu çıkmış olan bu dilin babası bizzat Ericsson ‘dur. Hatta facebook, chat altyapısını bu dille yazmıştır desem yalan olmaz. Bilmeyenler için başlangıç kıvamında hazırlanmış bir web sayfasına düştü bugün yolum. Erlang nedir ne değildir merak eden site müdavimleri, buraya tıklayarak Erlang ‘ın şefkatli kollarına kendilerini teslim edebilirler.