Hangisi acaba, PHP mi ASP.NET mi ?

PHP ve ASP.net arasındaki farkları karşılaştırabilmek için uzun süre iki platformu kullanmak gerekir. Ayrıca bu konuda birçok yabancı makale okudum, dünya hangisini tercih ediyor anlamaya çalıştım. Genelde objektif gözle bakan geliştiricilerin yazdıklarını okumaya dikkat ettim. Çünkü bir platforma alışan diğerini bilmediği için kendi kullandığını övüyordu. Ben tamamen objektif olmaya çalışacağım.

Bildiğiniz gibi PHP, herhangi bir firmanın ürünü olmayıp, ücretsiz olarak sunulan Açık Kaynak (Open Source) alt yapısına sahip bir sistemdir. PHP genelde diğer açık kaynak ortamlar olan Linux işletim Sistemi, MySQL veritabanı, Apache Web Sunucu ile çok anıldığından literatürde bu ortama LAMP(Linux, Apache, MySQL, PHP-Perl-Phyton) deniyor. Bazı iş ilanlarında detayı girmeyip, direkt LAMP ile iş ilanı kısaca özetleniyor.



















ASP.NET ile Microsoft şirketi tarafından geliştirilen ücretli bir platform. Visual Studio Express gibi geliştirme ortamları ücretsiz verilip, programcılar teşvik edilse de ASP.NET sadece Windows sunucular üzerinde çalıştığından ve Windows sunucular da ücretli olduğundan ASP.NET ortamı tamamen ücretli.  ASP.NET ortamında geliştirme yapanlar yine Microsoft üretimi olan SQL Server ve Access veritabanlarını kullanıyorlar. Zira Visual Studio geliştirme oramı tamamen ASP.net ile SQL Server'i kullanmayı kolaylaştırıyor, birçok hazır kütüphane ile kısa sürede kod geliştirebiliyorsunuz.

Biraz farkları açıkladık, biraz daha farkları belirginleştirelim. PHP, tüm işletim sistemlerinde çalışabiliyor, Linux, MacOSX, Windows, Solaris, FreeBSD gibi birçok ortamda kodlama yapmak mümkün. ASP.net sadece Windows sunucularda çalışıyor.

PHP ile ağırlıklı MySQL veritabanı beraber kullanılıyor, çünkü MySQL ile PHP arasında iletişimi hızlandıran birçok fonksiyon mevcut. PHP ile PostgreSQL, ORACLE, SQL Server, FireBird gibi diğer veritabanlarında da kodlama yapabilirsiniz. PHP, Microsoft SQL Server gibi ücretli veritabanlarıyla çalışabilse de  Açık Kaynak felsefesi gereği genelde ücretsiz veritabanları seçiliyor. Tabi ki, Microsoft SQL Server mecburen Windows ortamında çalıştığından, SQL Server Linux'de çalışmadığından, Windows Sunucuya ücret ödeyeceksiniz. Bu nedenle PHP ile birlikte Linux üzerinde çalışan veritabanları tercih ediliyor. Tabi ki şunu da uutmamak lazım, Linux üzerinde çalışan herşey ücretsiz değil. Örneğin ORACLE, ağırlıklı Linux üzerine kullanılmasına rağmen ücretli bir veritabanıdır. Benim tercihim PHP ile MySQL. Belki duymuşsunuzdur, ORACLE şirketi MySQL'i de satın aldı ama ücretli yapmadı. Birçok PHP programcısı bu nedenle MySQL yerine PostgreSQL'e bazılar daha hafif bir veritabanı olan SQLLite'a geçtiler.

Gelelim ASP.NET'e. ASP.NET klasik ASP'den sonra .NET Framework ile 2003 yılında büyük çıkış yaptı.  2005, 2008, 2012 ve 2013 yıllarında .NET altyapısı sürekli değiştirilerek bugüne geldi. .NET altyapısında Şifreleme(Kriptografi), Ses İşleme gibi birçok kütüphane hazır geldi, bütün veritabanlarıyla bağlantı ve birçok programlama diliyle çalışabilme gibi yenilikler geldi. Örneğin Visual Basic ile de,  C# ile yazdığınız kod,  ortak bir ara dile (MSIL - Microsoft Intermediate Language) dönüştürülüyor. ASP.NET ile birçok dil kullanılsa da C# artık piyasanın tek hakimi. Türkiye'de bir ara Visual Basic .NET kullananlar ve C# kullananlar vardı ama şimdi tamamem C#. Microsoft, J# gibi diller çıkarsa da bunlar pek tutmadı. Kanımca, C# nesne yönelimli yapısından dolayı tercih edildi, çünkü VB.NET de Nesne Yönelim Yapı biraz saçmaydı. C# daha çok C++ ve Java'ya benzeyen yapısıyla tercih nedeni oldu.

Peki, PHP ile Nesne Yönelimli Programlama yapılmıyor mu? Tabi ki yapılıyor, PHP 5 ile birlikte tamamen OOP(Object Oriented Programming) yapıya kavuştu, zaten PHP 5, OOP olmasaydı piyasadan silinirdi. Daha sonra birçok Framework(Çatı) geliştirildi. Zend gibi paralı olanların yanında Yii, CodeIgniter, Symphony, Laravel gibi ücresiz çatılar sayesinde PHP profesyonel projelerde tercih edilmeye başlandı. PHP 3 ve PHP 4 ile Yapısal yani Structural olarak yazılan  uygulamalar artık yerini OOP'ye bıraktı.

Kod yazım tekniğine değinmişken ASP.net'de HTML kodları ile C# kodlarını ayrıştırıldığını söyleyebiliriz. Bazı makalelerde PHP ile kod geliştirenlerin eski usul PHP-HTML karışımı Spagetti kod yazdığını söyleyenler oluyor. Aksine PHP ile MVC (Model View Controller )yapısı kullanılarak tamamen HTML ve PHP kodları ayrıştırılıyor. ASP.net de bu noktadan hareketle MVC3, MVC4 ve MVC5 sürümleri çıkardı.

Türkiye'de Yazılım Şirketleri hangisini tercih ediyor?
Türkiye'de Kariyer.net deki iş ilanlarına bakacak olursak, makaleyi yazdığım 20.06.2014 tarihindeki verilere göre ASP.net ile günde 309-400 iş ilanı varken, PHP için 184-250 civarı iş ilanı ile karşılaşıyoruz. Kurumsal firmalar ASP.net'e yoğunlaşmış durumda. İş ilanlarında dikkat çeken nokta, PHP ile mutlaka bir framework'un isminin geçmesi. Zend, CodeIginiter ve Laravel popüler olanlar. 

PHP'yi büyük yazılım şirketleri de tercih ediyor, örneğin kullandığınız FaceBook tamamen PHP ve MySQL ile yazıldı. Öte yandan Türkiye'deki bankaların web siteleri ağırlıklı olarak ASP.net, C#, Oracle teknolojileri kullanılarak geliştirildiğini görüyoruz. PHP'nin Wordpress, Joomla, OpenCart, Presta gibi açık kaynak yazılımlarda lide olduğunu söyleyebiliriz. ASP.net ile bedava blog uygulamaları yazılsa da çok tutmadı.

Sunucu Gücü ve Verim
LAMP(Linux, Apache, MySQL,PHP) ortamı çok fazla sunucu kaynağı tüketmiyor ama ASP.net için aynı şeyi söyleyemem. Gerek Windows Server 2003-2008, gerek SQL Server kuracağını bilgisayar çok sağlam bir işlemci gücüne ve RAM'e sahip olmalı. Kişisel bilgisayarınızda bile PHP uygulaması geliştirirken çok iyi bir bilgisayara ihtiyacınız yok, ama Visual Studio ve SQL Server kuracağınız bilgisayar, verimli çalışma için  en az 4 çekirdek olmalı. Son zamanlarda Laptop'ların fiyatlarındaki düşüşle 1500-2000 TL arası bir yatırımla alacağınız en az i5 veya i7 işlemcili, minimum 8-12 GB belleğe sahip bir bilgisayar gerekli.

Maliyet
Maliyet açısından gerek yazılım, gerekse donanım olarak Microsoft platformu olan ASP.net'e daha çok yatırım yapmalısınız. LAMP ortamı ise tamamen ücretsiz. FaceBook gibi günde 300 milyar defa sayfalarınız görüntülense mecburen PHP kullanmak zorunda kalırdınız.

Öğrenme Kolaylığı
Aslında bana sorarsanız iki dilin de öğrenme kolaylığı aynı. ASP.net ilk başta hazır kontrollerden dolayı daha basit ve anlaşılır görünse de, orta ve ileri seviyede ASP.net programcısı olabilmek için birçok kontrolün nasıl kullanıldığını ve ihtiyaca göre nasıl ddeğiştirileceğini bilmeniz gerrekiyor. PHP'nin ilk öğrenme aşaması daha sıkıcı olsa da zamanla, ASP.net kadar esnek ve pratik bir ortam olduğunu anlıyorsunuz.  
 
E-ticarette hangisi tercih ediliyor?
E-Ticaret piyasasında iki programlama dili başa baş gidiyor. AkareSoft gibi birçok e-ticaret şirketi PHP-MySQL-Linux kullanıyor. Hepsiburada.com, HızlıAl.com gibi birçok şirketin de tercihi ASP.net.
Özellikle piyasaya giren Presta, OpenCart gibi Açık Kaynak E-ticaret yapıları tamamen PHP-MySQL kullanıyor. 

Oğuzhan TAŞ - 2014 Bookmark and Share
Dil Değiştir(Change Language)