|
"Visual Basic.NET 2005 Express Edition" adında programlama dili mi var?
Bir süre önce sayın Kadir Çamoğlu'nun Visual Basic.net 2005 Express Edition adlı kitabı hakkında yazmayı düşündüğümü söylemiştim. Baktım yazdıklarım uzuyor kitap hakkında ilk yazdıklarımı sizinle paylaşmaya karar verdim. İleriki günlerde buraya aktardıklarıma eklemeler çıkarmalar yapabilirim.
2004 yılı başında VB 6 programcıları veya VB’nin .NET öncesi sürümlerini kullanmış programcıları gözeterek VB.NET kitabımı kaleme aldım. Daha doğrusu ADO.NET kısmı hariç VB.NET’i VB 6 gibi anlattım. Bu sayede VB 6 kullanıcılarının kolayca ve yabancılık çekmeden VB.NET’e geçiş yapmalarını amaçladım. Günümüzde ise şartlar değişti: Artık VB 6 bilgilerini VB.NET’te değerlendirmek isteyen okurların sayısında azalma meydana geldi. Bu düşünceden yola çıkarak sıfırdan yani VB 6 programcılarını gözetmeden VB.NET kitabı kaleme almaya başladım. Yazmayı sürdürdüğüm bu kitapta her şeye Nesneye Yönelik Programcılık penceresinden baktığımdan dolayı ilk VB.NET kitabımdan oldukça farklı oluyor. VB.NET kitabını yazarken Beyinleri Zirvede namlı saygıdeğer yazarlar hariç olmak şartıyla mevcut VB.NET kitaplarının birkaç tanesini inceledim. Beyinleri Zirvede namlı muhterem Nihat Demirli-Yüksel İnan beylerin kitabını VB.NET kitabımı yayıncıya teslim ettikten sonra sizler için inceleyeceğim.
Bu arada elime Pusula Yayıncılıktan çıkmış VB.NET’in Express sürümünü anlatan bir kitap geçti. İşaret ettiğim bu kitabın yazarı Kadir Çamoğlu. Kitap XII + 228 sayfadır. İlk 10 sayfasında VB.NET 2005’in Express sürümünün kurulması hakkında bilgi verilmektedir. Sonraki 22 sayfada ise VB.NET 2005 Express sürümün program geliştirme ortamı anlatılmaktadır. Gelin kitabın bu ilk 32 sayfasını birlikte inceleyelim: İncelemeye bir soru ile başlamak istiyorum: Programcılık kitabı yazarları kitaplarını bölümler halinde düzenlerken nelere dikkat ederler?
Kendim kitap yazarken kitap metnini bölümlere ayırırken sayfa sayısına ve anlatılanların bütünlüğüne bakarım. Örnek vermek gerekirse 2004 yılı başında yayınlanan VB.NET kitabımda değişkenler 26 sayfa yer kaplarken dizi değişkenleri 10 sayfada anlattım. Normal değişkenler 15 sayfa kadar olsaydı normal değişkenler ile dizi değişkenleri tek bölüm olarak düzenlerdim. Ayrıca dizi değişkenler 10 yerine 5-6 sayfa olsaydı, 6 sayfalık bir bölümü tercih etmediğim için normal değişkenler ile dizi değişkenleri ayrı bölüm olarak düzenlemezdim. Başka bir deyişle 800 sayfalık kitapta 10 sayfalı bölümlerin bence olması normaldir. Sanırım kitap metnini bölümlere ayırma konusundaki anlayışım anlaşıldı.
Şimdi Kadir Çamoğlu’nun VB.NET kitabındaki ilk 2 bölümün içeriğine bakalım. İlk 4 sayfada 6 konu başlığı var: “Programlama ve Programların Tarihçesi”, “Visual Basic Programlama Dilinin Tarihçesi”, “.Net nedir?”, “Nesne Tabanlı ve Olay Güdümlü Uygulama Geliştirme”, “Visual Basic .Net 2005 ve Express Edition”. Bana kalırsa madem kitabın sayfa sayısı az 4 sayfa 4 sayfadır deyip kitaba “Bilgisayara neyi ne zaman nasıl yapacağını söylemeye yarayan komut dizilerine yazılım denir” gibi kimseye faydası olmayan cümlelere yer vermezdim.
İşte kitabın başındaki bu 4 sayfadan bir cümle daha: “Bir bilgisayara bir şey yaptırtmak için komut adı verilen deyimler kullanmak gerekir.” Yıllar önce Pusula Yayıncılığın sahibi Mustafa Beyin yöneticiliğini yaptığı dergide Command.com, dolayısıyla “Dir” komutu hakkında uzun uzun yazılar yazmış, bununla yetinmeyip komut nedir?, DOS nedir?, Windows nedir? gibi sorulara “Herkes İçin Bilgisayar” adlı çoksatar kitabında cevaplar vermiş birisi olarak kitabın ilk 4 sayfasına yazılanlar hakkında burada 10 sayfa yazmak mümkün olmakla birlikte bizler işin VB.NET Express Edition kısmı üzerinde duralım.
Geçenlerde bir programcılık forumunda C# ile Visual C# arasındaki farklar nelerdir şeklinde bir soru vardı. Bu çok sık sorulan bir soru olduğu için foruma şu cevabı yazmıştım. “Bu soru çok soruluyor ve şimdiye kadar kaç yerde cevapladığımı hatırlamıyorum. C# esasında Microsoft tarafından geliştirilmiş ve standartlaştırılmış bir dildir. Visual C# ise Microsoft’un ticari ürünüdür. Tıpkı C# Builder ve Turbo C#’ın Borland’ın ticari ürünleri olduğu gibi. Bütün C# sürümleri .NET Framework’ten yararlanmaktadır. Visual Studio 2003 .NET Framework 1.1’i desteklerken VS 2005 .NET Framework 2.0’ı desteklemektedir. Bu sorunun en kestirme cevabı şu olabilirdi: Visual Studio’dan yararlanıp uygulama geliştirmek veya Not Defteri gibi editörle her şeyi kendiniz yapmak.
Bazı fakültelerde bir sömestr boyunca Visual Studio’dan yararlanmadan C# uygulamaları dersleri verilirken başka bir sömestrde ise Visual Studio ile “C# uygulamaları” dersleri verilmektedir. Hal bu ki konu öğrenme ve öğretme olunca bazı konuların konsol uygulamaları üzerinde bazılarının ise Visual Studio ile geliştirilen uygulamalar üzerinde anlatılması veya çalışılması gerekir.”
Aslında aynı şeyler Visual Basic.NET için de söylenebilir. Ne ki “Visual Basic” denildiği zaman eski Visual Basic sürümleri anlaşıldığı için farklı adlandırma yapmak gerekiyor. Şimdi yukarıda verdiğim metni Visual Basic.NET’e uyarlayacağım: Kullandığınız bilgisayara .NET Framework 2.0’ı kurmanız halinde bilgisayarınıza aynı zamanda Visual Basic.NET derleyicisini kurmuş olursunuz. Visual Basic’in kurallarına uyarak yazdığınız programları derleyip EXE’ye dönüştürecek program dosyasını(VBC.EXE) aşağıda görebilirsiniz.
Hazırlayacağınız VB uzantılı dosyaları VBC.EXE dosyasının bulunduğu klasöre kaydetmeli veya Denetim Masasındaki Sistem seçeneği ile ekrana getirilen Sistem Özellikleri diyalog kutusunda Gelişmiş sekmesindeki Sistem Değişkenleri seçeneğinden yararlanmalısınız. Path seçeneğinin içeriğine aşağıda verdiğim satırı ekleyip bilgisayarı yeniden başlatırsanız istediğiniz yerden VB uzantılı program dosyalarını derleyebilirsiniz.
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;"
Buraya kadar yazılanlara bakarak herhangi bir ücret ödemeden derleyici satın almadan ücretsiz dağıtılan .NET Framework 2.0 ile Visual Basic.NET uygulamaları geliştirmek mümkündür diyebilirsiniz. Tabiatıyla Not Defteri gibi editörle Visual Basic.NET uygulamalarını sıfırdan hazırlamak zahmetlidir. Bunun çözümü Visual Studio 2005’i satın almaktır. Visual Studio 2005, Visual Basic.NET uygulamalarını yazarken size kolaylık sağlamaktadır.
Visual Studio 2005 pahalı bir ürün olduğu için Microsoft bazı özellikleri kısıtlanmış ücretsiz Express sürümleri piyasaya verdi. Visual Studio 2005 ile hem Viasul Basic hem C# hem de Web uygulamalarını geliştirmek mümkünken Express sürümler her dil için ayrı olarak hazırlanmıştır. Yani Visual Basic.NET uygulaması geliştirmek isteyenlerin Visual Basic.NET Express Edition’ı, C# uygulaması geliştirmek isteyenlerin ise Visual C# Express Edition’ı Microsoft’un sitesinden indirip kurmaları gerekir.
Sanırım derdimi anlatabildim. Şimdi gelelim sayın Kadir Çamoğlu’nun Visual Basic .net 2005 Express Edition hakkında yazdığı cümleyi birlikte okumaya: “Net ile program geliştirmekte kullanılabilinecek dillerden biri olan Visual Basic.Net 2005 Express Edition özellikle yeni başlayacak olanlar ve acemiler için anlaşılması kolay bir dil olduğundan diğer dillere oranla daha çok tercih edilmektedir.” Arkadaşlar şimdi bu cümledeki hangi yanlışı düzelteyim, ne bahane bulmalıyım ki yazarımız Kadir Çamoğlu’nu temize çıkarayım?
Kitabın 4. sayfasının sonunda Kurulum Öncesi Hazırlıklar konu başlığı bulunmaktadır. Kadir bey bu konu başlığı altında Visua Basic .Net 2005 Express Edition’u kurmayı anlatmadan önce donanım gereksinimlerini tablo halinde vermiş. Şimdiye kadar yazdığım bütün kitaplarda “kurma” adında bölüm mutlaka vardı. Örneğin Herkes İçin Bilgisayar kitabımda DOS’un nasıl kurulduğunu kısaca anlatırken Network konulu kitabımda ise uzun uzun Netware’nin kurulumunu anlattım. Çünkü ağ işletim sistemlerinde “kurma” önemlidir. Benzer şekilde Visual Studio 2003’ün temel alındığı C# kitabımda Visual Studio 2003’ün kurulmasına 8 sayfa ayırmışken C# 2.0 kitabımda Visual Studio 2005’in kurulması için ayırdığım sayfa sayısı yalnızca 2’dir. Çünkü Visual Studio 2005’in kurulması daha basit ve sorunsuzdur.
Kurma işleminin kaç sayfada ve hangi ayrıntıda anlatıcağına elbette yazar karar verir. Ancak gelin görün ki sayın Kadir Çamoğlu kitabında kurma hakkında bilgi vermeden önce okurlarına şunu söylemektedir: “Eğer bilgisayarınıza Visual Basic.Net 2005 Express Edition yada SQL Server 2005 Express Edition’ın daha önceden yüklenmiş sürümleri mevcutsa öncelikle bunların tamamını kaldırın.” Yani yazarımız açıkça diyor ki bu kitabı almadan önce Microsoft’un sitesinden indirip kurduğunuz VB.NET 2005 Express Edition düzgün çalışıyor olsa bile “sayılmaz” mutlaka silip yeniden kurmalısınız. Kitabı edinen kişi bilgisayarına daha önceden bir şekilde Visual Basic.NET 2005 Express Edition’ı kurduysa ve sorunsuz çalışıyorsa tekrar kurun denilir mi? Kadir bey okurlarına veya tabii ki bana “daha önceden bilgisayarınıza Visual Basic.NET 2005 Express Edition’ı kurduysanız bu sayfaları atlayabilirsiniz” deseydi ben de cümleri kaleme alıp buraya aktarmak durumunda kalmazdım.
Kadir bey kitabının 13-20 sayfalarında VB ile en basit şekli ile nasıl proje hazırlandığını anlatıyor. Anlatım şekline hiçbir itiraz ve yorumum yoktur. Ancak bu sayfaları kendim kaleme almış olsaydım Console uygulamasına yer vermezdim. Yukarıda işaret edildiği şekilde 8 sayfada Visual Basic.NET 2005 Express Edition’a başlangıç yapıldıktan sonra “Yazılım Geliştirme Ortamı” adlı bölümde Visual Basic.NET 2005 Express Edition’nın IDE’si hakkında bilgi bulunmaktadır. Bu bölümde yazılanlar kişisel görüşüme göre yeterlidir. Ancak bu bölümdeki bir konu başlığına itirazım var: Varolan Bir Projeyi Başlatmak. Yazarımız burada aslında mevcut projeleri açmaktan söz ediyor. Dalgınlıktan olsa gerek projeleri “açmak” demek yerine “başlatmak” denilmiş. Bazıları çıkıp bunun ne önemi var; ha başlatmak ha açmak, her ikisi de anlaşılır şeyler diyebilirler.
Kitabın 4. ve “Visual Basic.Net ile Programlamaya Giriş” adlı bölümde konsol uygulamaları üzerinde değişkenler anlatılmaktadır. Şimdi size bu bölümden, başka bir deyişle Kadir Çamoğlu beyin kaleminden çıkmış ve Pusula Yayıncılığın onayından geçmiş bir paragrafı sizinle paylaşmak istiyorum. “Visual Basic.NET 2005 Express Edition ile geliştirilebilecek uygulama türlerinden biri olan Console, komut satırında konsol üzerinde işlemler yapmamızı sağlar. Windows’un kaynak gerektiren pencere, kontrol, grafik unsurlarını taşımadığından daha hızlıdır ve daha çok az kaynak tüketir. Ancak Windows programlarındaki gibi olaylarla çalışmaz.” Daha önce az çok program yazmış olanların bu paragrafa bir itirazları olmayabilir. Çünkü yazılanlar insana doğru ve tutarlı görünüyor. Tabii ki “olaylarla çalışmaz” yorumunu görmemezlikten gelmek şartı ile.
Kitabın 33. sayfasından itibaren 15 sayfada değişkenler, operatörler hakkında bilgi verildikten sonra sıra blok kontrol ve program akış kontrolü konularına gelmektedir. Böylece kitabın 63. sayfasına gelindikten sonra dizi değişkenler ve koleksiyonlar toplam 7 sayfada anlatılmaktadır. Benim C# kitabımda bu 2 konu yani dizi değişkenler ile koleksiyonlar toplam 62 sayfadır. Şimdi kitabın işaret edilen 30 sayfası hakkında bir şeyler söyleyelim: Programlama dilini anlatmak kaygısı ile yazılan kitaplarda bozuk cümlelerin bulunmasının nedeni ne olabilir diye soracak olursanız aklıma birkaç cevap gelir. Birincisi; anlatılan konu hakkında yeteri bilgi sahip olmamaktır. Eğer tecrübeli bir yazarsanız bilmediğiniz veya emin olmadığınız konularda yuvarlak cümleler kurarsanız. Kadir Çamoğlu’nun VB ve .NET uyumlu programlama dilleri konusundaki bilgisinin yetersiz olduğunu söyleyemem. Elbette ki değerlendirmem elimdeki kitap bağlamında olacaktır.
Kitaplarda bozuk cümlelerin olmasına kaynaklık edecek 2. bir neden bence Türkçe bilgisinin yetersizliği ve anlatma, hikâye etme becerisinin azlığıdır. Eğer hikâye etme veya anlatma becerinizin iyi olup olmadığını merak ediyorsanız herhangi bir TV’de magazin programını izleyip sonra oturup izlediklerinizi bir magazin gazetesi için haber yapmaya çalışın. Magazin gazetesi için yazdıklarınızı beğendiyseniz yazma becerinizin olduğuna kanaat getirebilirsiniz. Bu kadar zamandır bilgisayar yazarlığı yapıyorum rastladığım çok az programcının anlatma becerisi vardı. Çünkü kod yazmak ile “kodu” anlatmak birbirine taban tabana zıt eylemlerdir. Sina Hakman şimdiye kadar tanıdığım programcılardan anlatma becerisi en yüksek programcıdır.
Programcılık kitabının kötü cümle içermesinin 3. bir nedeni özensizlik ve acele yazmaktır. Biz yazarların en büyük sıkıntısı budur. Çünkü hızlı yazmak ve yazdıklarınızı hemen yayınlamak zorundasınız. Örneğin 1000 sayfalık bir kitabı gözden geçirmek ve yazım hatalarını düzeltmek nereden baksan en az 20 günlük çalışmayı gerektirmektedir. Şimdi bu konu bağlamında Kadir Çamoğlu’nun kitabından bir cümleyi buraya alacağım: Programlama içinde değerlerin tutulması için değişkenler kullanılır.
Bu cümlenin yorumunu sizlere bırakıyorum. Çünkü yıllar önce bir Edebiyat dergisinde öyküsü yayınlanan bir edebiyat öğretmeni arkadaş ile öyküsüne bakıyorduk. Öyküdeki bir cümleyi işaret edip bu cümle bozuk dedim. Neredeyse kavga edecektik. Cümledeki aksaklık o kadar netti ki.. Buna rağmen edebiyatçı arkadaş cümlesinin gayet düzgün olduğundu ısrar etmeye devam etti.
İşte Kadir Çamoğlu’nun kitabından bir cümle daha: Bir değişkenin tipi onun için ne kadar önemliyse, değişkenin var olabilmesi için bir ada sahip olması da o kadar önemlidir. Biz yazarlar bazen dolgu cümleleri kullanırız. Dolgu cümlelerine en çok pembe dizilerde rastlanılır. Aslında Kadir beyin yukarıda verdiğim cümlesi bir bakıma dolgu cümlesidir. Ne ki bu cümlenin okuru yorma gibi bir işlevi var. Bu cümle bir bakıma rahmetli Kemal Sunal’ın “gelirsem gelmişimdir” türündeki cümlelerine benziyor.
Kadir bey değişkenler hakkında net ve doğru bilgiyi bir sonraki cümlede vermektedir: Toparlarsak, bir değişken tanımlayabilmek için bir değişken adına ve veri tipine ihtiyacımız olduğunu söyleyebiliriz. Her ne kadar bu cümlede küçük yazım hataları olsa bile programcılık bakımından net ve doğrudur. Keşke Kadir bey dolgu cümlesi olarak gördüğüm cümleyi kitabına almamış olsaydı. |