Geçenlerde Önder Eren ile sohbet arasında programlama dillerinin avantajları/dezavantajlarından bahsediyorduk ve bu konuda kesinlikle bir yazı yazmamı tavsiye etti ve tavsiyesi üzerine yazıyorum.
Öncelikle ne tür uygulamalar yazmak istediğinize karar verin. masaüstü uygulaması mı?, yoksa web uygulaması mı?
Eğer sadece masaüstü uygulamaları geliştirmek istiyorsanız benim önereceğim programlama dili JAVA olacaktır. Neden java? En önemli kriteri platform bağımsız(çoğu işletim sisteminde çalışıyor) olmasıdır. İkinci önemli kriter ise .NET'e göre daha çok kaynak bulunabilmesidir.
Hem windows, hem de web uygulaması geliştirmek istiyorsanız, benim önerim kesinlikle .NET platformunda uygulama geliştirmeniz olacaktır.
Peki neden? Bir müşteriniz için windows uygulaması geliştirdiniz diyelim, ardından müşteriniz sizden bir de web sitesi yapmanızı isterse ne olacak? 3 katmanlı mimari ile hazırladığınız windows uygulamasındaki kodların birçoğunu web uygulamasına entegre edebiliyorsunuz ve bu da size en az %50 zaman kazandırmış oluyor(zaman=para). Başka bir örnek daha verecek olursak, windows mobile işletim sistemi yüklü PDA'inize bir uygulama da yazabilirsiniz. Windows uygulaması geliştirirken C#.NET veya VB.NET kullanıyorsunuz, web uygulaması geliştireceksiniz ise Asp.NET kullanıyorsanız, ASP.NETin içinde de C# veya VB kullanarak kodluyorsunuz. Dezavantajı ise geliştirdiğiniz masaüstü uygulamasının, sadece windows işletim sistemi yüklü bilgisayarlarda çalışmasıdır. Ek olarak, C#.NET veya Vb.NET öğrendikten sonra JAVA öğrenmekte sanıldığı kadar zor değildir.)
.NET platformu çok yavaştır, kullanmayın,kaçın" gibi ağızdan ağıza yayılan yanlış bir anlaşılma vardır. Bunu diyen arkadaşların birçoğu da maalesef hayatında .NET ile bir tane bile uygulama geliştirmemiş insanlar oluyor. Kodu eğer optimize bir şekilde yazmamışsanız, hangi platform olursa olsun zaten yavaş çalışacaktır.
"Facebook bile php ile yapılmış, binlerce insan giriyor, site çökmüyor, demekki php iyi" gibi yanlış bir kanıya varanlar da mevcut. Facebook'un kullandığı server sayısı, kullandığı dil herkesin kullandığı türden bir yapıda değildir, kendi geliştirdikleri onlarca classları, kendilerine özel script dilleri(FBML) vardır. Yani böyle bir sonuç çıkarmak amatörlükten başka birşey değildir. Bu dediklerimden php kötü sonucu çıkmasın, php iyidir ama asp veya asp.net'te iyidir. Eğer günde 1 milyon ziyaretçi alan bir site yapmıyorsanız(Türkiye de böyle bir site yok zaten) ve kodunuzu optimize çalışacak bir şekilde yazmışsanız hangi programlama dilini kullanacağız çok bir önemi yoktur. Hayatında 1-2 site yapıpta programlama dillerinin performansını karşılaştırıp kesin yargılara varanlara hep şaşırmışımdır..
PHP=Open Source, Asp.NET != open source" gibi yanlış bir anlaşılma daha var. Bkz. www.codeplex.com
.NET ve MsSQL ikilisini tavsiye etmem(.NET ve MySQL ile henüz tam olarak istenenler yapılamıyor). Php ve MySQL ikilisini tavsiye ederim. Php ve MySQL ile yaptığınız projelerinizi Linux server üzerinde barındırdığınızdan lisans ücretlerinden kurtulmuş oluyorsunuz.
SQL konusuna gelirsek, eğer .NET ile uygulama geliştiriyorsanız MsSQL öğrenirseniz çok kolay ve kısa sürede veritabanı kullanan ufak projeler geliştirebilirsiniz. Yapılan testlere göre performans anlamında MySQL ile aralarında pek bir fark yoktur(saliseleri saymazsak). (Bir de Oracle var ama hiç kullanmadığımdan yorumlayamayacağım.)
Sonuç olarak, hem web,hem masaüstü uygulamaları geliştiren biri olaraktan .NET platformunu seçmenizi öneririm. Microsoft'un son yaptığı ataklarla (Asp.NET MVC, Silverlight vb.) herşey daha kolaylaşıyor. (Not: Eğer bu alanda iş bulmak istiyorsanız, .NET bilen yazılımcı arayan şirket sayısı çok fazla.)
Siz hangi programlama dilini kullanıyorsunuz/tercih ediyorsunuz? Yorumlarınızı bekliyorum..
.