Programcı olmak isteyenlere öneriler.
Günümüzde programcılık trendleri web tarafına kayıyor. Hatta kayıyor demek yanlış olur; kaydı bile. Hemen her yeni yazılımcı bu işe girdikten sonra web sitesi ve web tabanlı uygulamalar tasarlayarak geçimini sağlamaya çalışıyor. Çünkü müşterileri onlardan bu tarz uygulamalar talep ediyor. Durum bu olunca kendisini programcılık alanında yetiştirmek isteyen ziyaretçilerime bu alana uygun bir dil seçmelerini önererek başlamak istiyorum. Ancak elbette ki kurulabilir programların devri kapanmadığından bu alanda da çalışabileceğiniz bir dil seçmeniz işin kilit noktası.İkisi bir arada diller
Konu geliştirme olunca da Microsoft’un gölgesini hissetmekteyiz. Aslında gölgesi demek de yanlış olur çünkü günümüzdeki kurulabilir yazılımların yüzde 70’i Windows türevleri için kodlanıyor. Benzer şekilde web tarafında da .NET neredeyse piyasanın yarısından fazlasını himayesi altına almış durumda. Durum bu olunca Microsoft’un geliştirme platformlarına yakın durmakta fayda var. Özellikle .NET çatısı altında hem kurulabilir hem de web tabanlı uygulamalar geliştirebileceğiniz dillerden birisine sarmanız doğru bir hamle olur. Bu noktada her ne kadar yeni nesil Visual Basic’i görsek de Microsoft C#’a yönelmeyi teşvik ediyor. Zaten Visual Studio.NET’in yeni sürümleri bu dile odaklanmış durumda. O nedenle yakın gelecekte Microsoft’un Visual Basic’i bir kenara bırakacağına dair görüşler şimdiden bloglarda dolaşmaya başladı. Bunun bir diğer sinyali de VB geliştiricilerinin hala Visual Basic 6.0’ı kullanmakta ısrar etmesinden geliyor. Çünkü yeni nesil geliştirme platformu ne yazık ki VB geliştiricilerini pek tatmin etmiyor.
C# yükseliyor
Microsoft belki de C#’ın üzerine oynamakla doğru olanı yapıyor. Ne de olsa C# kendisine ait bir dil ve bu dilin hemen her ayrıntısını kendisi tasarladığı için geleceğe aktarması da kolaylaşıyor. Üstelik C# hemen her türden uygulamayı geliştirmeniz için yeterli. Burada “her türden” derken sadece kurulabilir ya da web tabanlı uygulamaları kastetmiyoruz, C# ile işletim sistemi bile yapmak mümkün. Hatta Microsoft bu konuda oldukça yol almış durumda. Microsoft’un maddi manevi desteklediği Singularity kod adlı yeni işletim sistemi Codeplex.com’da indirilebilir test sürümleriyle yerini almış durumda. Tamamen C# ve .NET kullanılarak geliştirilen sistem, C#’ın yapabileceklerini gözler önüne sererken Microsoft’un yazılım lisanslarına olan bakışını da değiştirmeye başladığının gösteriyor. Çünkü Singularity açık kaynak kodlu olarak başlatılmış bir işletim sistemi projesi. Yani yakın zamanda Microsoft çok farklı bir yüzle yoluna devam edecek gibi.
Platform çok sorun değil
Eğer yola C# ve .NET ile başlayacaksanız ama Windows dışında bir platform kullanıyorsanız (MacOS, Linux, BSD ya da Solaris gibi) işletim sisteminizi değiştirmenize gerek yok. Çünkü Microsoft – Novell birlikteliğinden güç alan MONO projesi sayesinde C# ve .NET ikilisini diğer platformlarda da rahatlıkla kullanabilirsiniz. Platformdan söz açılmışken .NET’in de aslen bir platform olduğunun altını çizmek gerek. Yani .NET bir dil değil, bir teknoloji ya da alt yapı diyebiliriz. Üstelik bu altyapı üzerinde C# dışında geliştirme dilleri de kullanabilirsiniz. Bu dillerden birisi de tabii ki yazımın başlarında da değindiğim Visual Basic. Belki de şu an bu yazıyı bir çok kullanıcının bir zamanlar ucundan bucağından bulaştığı Visual Basic son haliyle neredeyse script diline dönüşmeye yüz tutmuş olsa da biraz pratikle eski VB’ciler rahatlıkla .NET platformunda güzel projelere imza atabilirler.
Ölü dillere bulaşmayın
Şimdi yazacaklarımı okuyan bazı okurlar belki de bana biraz bozulacaklar ama iş teknoloji olunca devinime uymak ve ölü dilleri canlılarından ayırmak gerek. Yani şu çağda en büyük değer olan zaman ve “temiz kodlama” olgularını boşa harcamamak gerek. Bu nedenle Pascal ya da Delphi gibi dillere bulaşmamakta fayda var. Seçeceğiniz dili belirlerken ilk kriteriniz kurulabilir yazılımların yanı sıra web tabanlı uygulamalar da geliştirebilmek olsun demiştik. İkinci olarak da temiz kodlama yapabileceğiniz (bu aslen dilin yanında geliştiricinin kullanacağı mantığa da bağlı) ve size hamallık yaptırmayacak, zamandan kazandıracak bir dil olmasına özen gösterin. Buna yeni trend dillerden bir örnek vermek gerekirse Python’a bakabiliriz. Python, günümüzün belki de en iyi çıkış yapan dillerinden biri. Öyle ki, Microsoft da bu çıkışa kayıtsız kalmayıp geliştirme araç ve platformlarına Python’u ekledi. Ve evet, Python ile .NET üzerinde uygulama geliştirebilirsiniz.
PSP ile oynamak
Ara başlığa aldanmayın, el konsolundan bahsetmiyorum. Python Server Page’in kısaltmasından bahsediyorum. Ve yine tahmin edebileceğiniz gibi Python ile dinamik web uygulamaları / içerikleri hazırlayabileceğiniz bir teknoloji bu. .NET’ten farklı olarak kendi sunucu eklentilerine sahip olan bu yapıda sayfalar hazırlamak, kurulabilir uygulamalar hazırlamak kadar kolay bir iş.
Bu arada her ne kadar internetteki kaynaklarda Python için en kolay öğrenilebilen dil dense de hiçbir dil başlangıçta kolay gelmez. Hele ki, yüksek seviyeli ve çok yönlü bir dili web uygulamaları geliştirmek için öğrenmeye başladıysanız bol zaman ve çaba harcayacağınızı aklınızdan çıkartmayın.
Ancak web tarafında Python kullanmak için tek yol PSP değil, son zamanlarda adı sıklıkla telaffuz edilen Django çatısı da bu dili kullanarak web projeleri hazırlamak için kullanabileceğiniz bir yol. Django için birçok kaynak, tema ve örnek bulabilirsiniz. Hatta test etmek isterseniz www.revver.com ve www.ozgurlukicin.com adreslerini ziyaret edebilirsiniz. Hiçbir programlama deneyiminiz yoksa ve yola Python’la (ya da Django’yla) çıkmayı düşünüyorsanız InstantDjango adlı paketi kullanabilirsiniz. Django için ihtiyaç duyacağınız hemen her şeyi tek bir paket içine toplamış olan InstantDjango, crimemap örneğiyle size hızlı bir başlangıç ve bol deneyim kazandırabilir.
PHP biliyorum ama...
Geçmişten bugüne hiç ilgi ve popülerlik kaybına uğramayan PHP, Joomla gibi örneklerin da etkisiyle portalların dili olarak görülmekte. Ancak bu dil de her ne kadar adını geçirdiğimiz diller kadar esnek olmasa da kurulabilir uygulamalar hazırlayabileceğiniz bir dil. Yani eğer PHP’de iyiyseniz Python’a atlayabileceğiniz gibi GTK+ kütüphaneleri yardımıyla kurulabilir yazılımlar da geliştirebilirsiniz. Fakat dediğim gibi bunu sadece PHP’de uzman olan ve başka dillere zaman ayıramayacak geliştiricilere öneriyorum. Hatta Python pratiklerine de ufak ufak başlamalarını tavsiye ediyorum.Son birkaç söz
Elbette ki programlama dünyasına adım atmak için birçok alternatif dil mevcut. Ancak öncelikle ne yapmak istediğinize karar vermeli, web ve kurulabilir uygulamalar arasında muallakta kalmak yerine gerektiğinde her iki tarafa da örnekler verebileceğiniz bir dil seçmeniz faydalı olacaktır. Bunun yanı sıra dilin multi-platform olduğundan ve veritabanı uyumluluklarında sorun çıkartmayacağından emin olun. Son olarak da seçeceğiniz dil için çok fazla örnek ve kaynak olup olmadığına bakın. Bu önemli çünkü bir noktada takılıp kaldığınızda başvuracak çok sayıda kaynağınızın olması sizin yararınıza.