Programcıların Hayırsever Hocasının Son Fetvasına İtirazımdır(*)

Hocam programcılar için elinizden geldiğince hayır işlemeyi adet eylediğinize bütün programcı camiası şahittir. Binlerce programcıya uzaktan algılama teknikleri ile Ankara’nın tepelerinden yaptığınız yardımlar herkesin malumudur. Ama hocam son fetvanızla elimizi kolumuzu bağladınız. Muhterem hocam bir kısmını aşağıda arz ettiğim dertlerimizle ilgilenirseniz bütün programcılar size minnettar kalacaklardır.
 
Dert 1: Hocam bu elin gavurları önce Windows diye bir işletim sistemi çıkardılar. Sonra da insanları sürükle bırak tekniği ile bir şeyleri bir yerlerden başka bir yere sürükleyerek taşımaya alıştırdılar. Yani bu gavurlar insanımızı tembel yaptılar. Eskiden yani Windows yokken DOS veya Unix yüklü bilgisayarlarda ne güzel Copy gibi komutlarla dosya kopyalıyorduk, CD komutuyla klasörlerin yani dizinlerin arasında keyfimizce dolaşıyorduk. Hocam tembelliğe meyilli milletimiz muhasebe gibi programlarda bile her şeyi sürükleyip bırakarak yapmaya başladı. Sizden feyz almış programcılar bu mecburiyetten dolayı sürükle bırak tekniğini her yerde kullanmaya başladılar. Hocam son fetvanızda gavurların drag-drop adını verdikleri sürükle-bırak tekniğini kullanmaktan biz programcıları men etmişsiniz. Hocam ne yapacağımızı şaşırdık. Gavurlar bu işi o kadar kolaylaştırmışlar ki sürükle bırak işlemi için 3 satır kod yazmak kolayımıza geldiği için birçok yerde kullanıyoruz. Hocam son fetvanızda sürükle bırak tekniğinden yararlanma hakkını sadece bir programcıya vermişsiniz. Hocam elinizi ayağınızı öperiz ne olur sürükle bırak tekniği olmasa bile bari yalnızca sürükleme işlemini serbest bıraksanız olmaz mı?
 
Dert 2: Son fetvanızda Selection Sort algoritması ile sıralama yapılırken kullanılan i ve j gibi değişkenleri kullanmanın caiz olmadığını, suç teşkil ettiğini beyan etmişsiniz. Ama hocam Microsoft ürünü Visual Studio’da kod penceresinde iken for yazıp tab tuşuna basıldığında otomatik olarak hazırlanan for kalıbında döngü değişkenin “i” olduğu varsayılmaktadır. Muhterem hocam bu durumda her seferinde i yerine başka bir harfi kullanmak zaman israfı olmaz mı? Hocam bu konuda lütfen bize bir güzellik yapın. En azından Microsoft’taki dostlarınız vasıtası ile for döngüsündeki i yerine başka bir değişkenin yazılmasını sağlayabilirsiniz. Hiç olmazsa geçerli kullanıcının adı döngü değişkeni adı yapılabilir. Hocam Microsoft’a bir mail göndermeniz yeterli olur. Onlar için yama çıkarmak çocuk oyuncağı gibi bir şeydir.
Hocam ta FORTRAN IV günlerinden bildiğiniz Selection Sort algoritması ile sıralama yapılırken iç içe 2 for döngüsü kullanılmaktadır. Haydi ilk döngünün kontrol değişkenine “i” dedik ama ikinciye j, üçüncüye k adını verme alışkanlığını insanlara aşılayan sizler değil misiniz? Yoksa bu değişkenleri kullanmak öğrenciler için serbest mi? Hocam hiç olmazsa askerliğini henüz yapmayanlara, 2’den fazla çocuğu olanlara i ve j değişkenlerini kullanmayı serbest bıraksanız.
 
Dert 3: Hocam Microsoft’un başımıza bela ettiği .NET Framework ile gelip ADO.NET adı altında gruplanan OleDbDataadapter ve SqlDataAdapter sınıflarının Fill() adında bir metodu vardır. Bu metot, söz konusu xxxDataAdapter nesnesinin SelectCommand özelliğine adı aktarılan Command nesnesinin SQL kodunu işletip çektiği verileri kendisine parametre olarak verilen Dataset veya Datatable nesnesine aktarmaktadır. Hocam fetvanıza göre Fill() metodunu kullanmak caiz olmadığı için kara kara düşünmeye başladık. Kendim xxxDataAdapter benzeri bir sınıf hazırlamak istedim ama Microsoft’un programcılarının hazırlayıp .NET Framework ile birlikte ücretsiz verdikleri sınıf kadar sağlam olmadı. Bu durumda ne yapmamı önerirsiniz? Bir taraftan fetvanıza uymak istiyorum bir taraftan da veritabanlarından Dataset’lere zahmetsiz veri çekmek istiyorum. Hocam lütfen bu derdimize bir çare.
 
Dert 4: Hocam biliyorsunuz Visual Studio ve Delphi gibi programcıları tembelliğe alıştıran IDE’ler programcıların sık kullandıkları düğmeler, Metin Kutuları ve Liste Kutuları için metot hazırlamayı kolaylaştırmaktadır. Her ne kadar sizler derslerinizde IDE kullanmayın kodunuzu kendiniz yazın diye bizlere akıl vermiş olsanız bile bazılarımız gösterdiğiniz doğru yoldan sapıp Toolbox denilen araçtan yararlanıp Button’ları, Textbox’ları bana mısın demeden formlara, sayfalara yerleştirdik. Keşke program yazmak eskiden Cobol ile Pascal ile kod yazdığımız günlerdeki gibi olsa. Neyse hocam başınızı daha fazla ağrıtmayayım son fetvanızda Microsoft ürünü Visual Studio kullananları kınamışsınız ve demişsiniz ki tembellik edip forma Button nesnesi yerleştiriyorsunuz sonra da bu nesnelere ad seçerken bile tembellik yapıp basit isimler veriyorsunuz. Hocam Button, ListBox gibi nesnelere ad seçmeyi şairane bir faaliyet olarak görme temenninizi bütün programcılar takdir ediyor. Macar notasyonu gibi gavur icadı yerine Hayırsever Hocanın kodlama prensiplerini kendimize rehber etmeliyiz. Ama hocam ne olur fetvanızdaki bu emri hemen uygulamaya koymasanız. Bilakis Button nesnelerine Button1, Button2; TextBox’lara TextBox1, TextBox2 gibi adlar vermeye alışmış biz programcıların nesnelere hemen şairane isimler bulmaları kolay değildir.
 
Dert 5: Hocam malumunuz olduğu üzere SQL Server gibi veritabanlarında SQL kodlarını Stored Procedure olarak saklamak adeti bulunmaktadır. Tabii bu Stored Procedure’lerin çoğu veritabanından veri çekmek amacıyla kullanılıyor olsa bile bazı kendini bilmez programcılar veritabanındaki tablolara kayıt girerken kullandıkları SQL kodu içinde INSERT INTO deyimine yer verip sonra da bu SQL kodunu Stored Procedure olarak veritabanına kaydediyorlar. Hocam fetvanıza göre Stored Procedure’ler sayesinde tablolara kayıt girmeyi yasakladığınız için ne yapacağımızı şaşırdık. Hocam hiç olmazsa bu fetvaya geçici madde koysanız.. Hani sürücüler trafik suçu işlediklerinde ceza puanı alırlar ve puanları 100 olduğunda ehliyetlerine bir süreliğine el konulur ya; fetvanızın Stored Procedure’ler ilgili bendine böyle bir ekleme yapsanız olmaz mı? En azından Stored Procedure kullanıp tablolara kayıt girme illetinden kurtulana kadar arada sırada kullanabilsek daha iyi olmaz mı?
 
Dert 6: Hocam bilirsiniz Microsoft ne yapıp edip neredeyse her bilgisayara Word ve Excel programlarının kurulmasına muvaffak oldu. Bu nedenledir ki kullanıcılar bazen verilerini Excel tablosuna aktarmak, bazen de Excel tablosundaki bilgileri uygulama programları içinde kullanmak istiyorlar. Her ne kadar bu işlemi programcılar ODBC sürücüleri ile yıllardır yapabiliyor olsalar bile Microsoft’a ait Microsoft.Office.Interop.Excel adlı namespace’teki Application sınıfı ile yapmak zahmetsizdir. Ne var ki hocam bu Class programcıları tembelliğe gark eylediği tarafınızdan fark edilmiştir. Hocam programcılara hitabeden verdiğiniz son fetvanızda .NET uyumlu programlar dahilinde Microsoft.Office.Interop.Excel’deki Application sınıfının örneğini alıp Excel’i başlatıp çalışma kitabı hazırlamanın memleketin hayrına olmayacağını düşünerek yasaklamışsınız. Hocam hiç olmazsa fetvanızın bu maddesi daha önce yazılmış programları kapsamasın ve 2009 yılının 3.çeyreğinden itibaren geçerli olsun.
 
Dert 7: Hocam biz programcılarda dert çok. Başınızı fazla ağrıtmamak işin son bir derdimi arz etmek istiyorum. Hocam malumunuz olduğu üzere Japon mali hesap makinelerinde önce 5 sonra bölü(/) devamında 0 tuşuna basıldığında hesap makinesi Casio olsa bile ekranına Error yazıyor. Yani kısa boylu Japonların yaptığı hesap makinesi tek haneli bile olsa bir sayıyı sıfıra bölemiyor. Hocam elin gavurunun yaptığı hesap makinesi bir yana bilgisayar programlarının güçleri sayıları sıfıra bölmeye yetmiyor ve benden bu kadar deyip çalışmasını sona erdiriyorlar. Bu durumda hocam sizin taktiklerinize sarılıp kullanıcının sayıları sıfıra bölmesinin önüne geçmeye çalışıyoruz. Ama hocam son fetvanızda programcıların sıfıra bölme hatasının önüne geçmek için hata yakalama bloğu hazırlamalarına icazet vermemişsiniz. Hocam bu fetvanız elimizi kolumuzu bağladı. Bir süre önce Microsoft ve Intel firmalarına mailler gönderip bu derdimize çare bulmalarını talep ettim ama henüz bir netice alamadım. Elinizi öpüp ayağınıza kapıldığım hayırsever hocam insafa gelip fetvanızı azıcık gevşetseniz de sayıları sıfıra olmasa bile en azından 00’a bölmemize izin verseniz?
 
* Bu metinde geçen herşey hayalidir, gerçek kişi ve kurumlarla bir ilgisi yoktur.