17 Kasım 2009 Salı

Her Gün Bir Yanlış(6. Yanlış): Olaylar Metot Mudur?

Bugün ki hatayı yazmaya başlamadan önce yanımdaki arkadaşa “şu kitabın bir sayfasını aç” diye rica ettim. Arkadaşın açtığı sayfada Event oluşturmaktan söz ediliyordu. Arkadaşın seçtiği sayfa Event’larla ilgili 3. sayfaydı. 2 sayfa geriye gidince aşağıda veriilen cümle ile benzer anlama sahip bir cümleye rastladım:

“Çalıştırılan kod blokların genel adının “Event” olduğunu herkes biliyor”

Az çok program yazmış veya nesneye yönelik programcılık bilgisi olanlar bu cümlenin yanlış olduğunu anında fark ederler. Biz yine de bu metni okuyup ta Event’lar hakkında yeteri bilgisi olmayan arkadaşlar için birkaç cümle yazalım. Olur ya bu cümlenin sahibi bu metni okur da programcılık camiasına artı bir katkı vermiş oluruz.

Yıllar önce yani C++ gibi nesneye yönelik programlama dilleri yaygın değilken programcılar yapmak istedikleri işlemler için fonksiyon ve procedure hazırlayıp bunları kullanıcının taleplerine göre çağırıp işletirlerdi. Bu tür programcılığa procedurel programlama dinilirdi. Derken biraz da Windows’un zorlamasıyla kısa bir sürede procedurel programcılık yerine nesneye yönelik programcılığa geçildi.

C++, Java, C# veya .NET uyumlu Visual Basic gibi programlama dillerinde programcılar kodlarını Class olarak düzenlerler. Class’ların içinde metotlar, özellikler, olaylar, arayüzler vs.. olabilir. Örneğin .NET Framework ile gelen Button sınıfının Click diye bir olayı vardır. Programcı .NET ile gelen bu sınıfı kullanmak istediğinde yani çalışma anında formun üzerinde görünmesini sağlayıp Button nesnesini tıkladığında Click olayı meydana gelir ama bunun kullanıcıya yansıyan tarafı olmaz. Çünkü kullanıcı düğmeyi yani Button nesnesini tıkladığında Click olayı meydana gelir ama bu olay meydana geldiğinde ne yapılacağı belli değildir. Bu nedenle programcı kendi sınıfı içinde yer verdiği Button nesnesinin Click olayı için bir metot yazıp bu metodu Button nesnesinin Click olayıyla ilişkilendirir. Uzatmadan söyleyelim nesneye yönelik programlama dilleri üzerine kitap yazan yazarımız metot ile olayı birbirine karıştırmıştır.

Bazı arkadaşlar itiraz edip söz konusu kitabın yazarı olay ile metotları karıştırmasını dalgınlık sonucu yapılan bir yanlış olduğunu ileri sürebilirler. Keşke yazarımız bu yanlışı dalgınlık sonucu yapmış olsaydı üzerinde durmak gerekmezdi. Yazarımız bu yanlışa bu kitabında daha önceki ve daha sonraki baskılarında aynen devam etmiştir. Üstelik aynı yanlış başka .NET uyumlu dilleri anlatmak kaygısı ile yazılmış kitaplarında da yapmıştır. O zaman sormakta haklısınız "Programcılıkla ilgili en temel kavramlarda bile bu kadar çok yanlış içeren kitabın yazarı tecrübesiz olmadığına göre bu kitap nasıl Türkiye'nin en iyi kitabı iddiası ile yayınlanıyor?" Bu soruya cevabım kısa :Türkiye'de olur.

Bu kadar çok yanlış içeren kitaba kimler kefil olmuş diye merak ettiğinizde, karşınıza köklü bir üniversitenin mühendislik fakültesinin eski dekanı çıkıyor. Bu eski dekanın nazarında .NET, onlarca kitapta ancak anlatılabilinecek bir teknoloji mi yoksa Internet'in yaygın olarak kullanılan kısaltmasının başına yanlışlıkla nokta konulmuş hali midir bilinmez.

0 yorum: