Jaką technologię wybrać, ASP.NET czy PHP?

July 30th, 2008,

Stoję przed trudnym zadaniem wyboru technologii, w której zostanie utworzony nowy serwis i zapewne następne. Dlaczego w ogóle nad tym się zastanawiam?

Obecny szkielet chordsów powstał w sierpniu 2004 roku. Napisany jest w PHP językiem strukturalnym, nie używałem żadnego frameworka, smarty itp. Dla serwisu o stosunkowo małej oglądalności i jednego programisty to wystarczyło. Problem zaczyna się, gdy myślę o chordsach jako o coraz większym serwisie. O serwisie, który być może będzie musiał udźwignąć znacznie większy ruch. O serwisie, który będzie stale rozwijany przez kilku programistów.

Którą technologię wybrać mając takie warunki wstępne?

JSP odpada, bo nie znam i nie lubię Javy :-) W grę wchodzą PHP lub ASP.NET. Poszperałem w sieci o porównaniu obu technologii, wziąłem pod uwagę również własne doświadczenia i wiedzę. Poniżej lista zalet i wad obu języków.

ASP.NET – Zalety

  • Jest częścią potężnej platformy Microsoft .NET Framework
  • Duże serwisy korzystają z tej platformy
  • Platforma .NET jest stale rozwijana i promowana przez Microsoft
  • Darmowe narzędzia (Web Developer Express, MSSQL Express)
  • Wiele języków programowania (VisualBasic, C++, C# – ja wybieram C#)
  • Oddzielenie warstwy prezentacyjnej od kodu
  • Przyspieszenie czasu kodowania przez edytor wizualny, świetny edytor kodu
  • Wbudowana obsługa AJAX
  • Lepsza wydajność
  • Hosting jest już w takiej samej cenie co php (home.pl)
  • Rozbudowana dokumentacja online, webcasty, prezentacje, e-learning

ASP.NET – Wady

  • Mniej popularny
  • Trudniejszy do opanowania, szczególnie gdy wcześniej programowało się w PHP

ASP.NET – Problemy

  • Brak w ofercie home.pl odpowiednika mod_rewrite, własnych stron błędów i zabezpieczenia dostępu jak w .htaccess – Jeszcze zasięgnę języka u home.pl

PHP – Zalety

  • Duża popularność i znajomość – łatwo znaleźć wykonawcę
  • Łatwy do nauczenia
  • Wiele gotowych skryptów dostępnych w sieci
  • Dokumentacja online
  • Duży rynek usług hostingowych

PHP – Wady

  • Przede wszystkim język strukturalny a nie obiektowy. Jest to istotne gdy myśli się o stałym rozwoju serwisu.
  • Wiele osób zna, ale szczątkowo. Ich wiedza opiera się na zastosowaniu gotowego skryptu.
  • Słaba wydajność przy dużych obciążeniach
  • Problemy z oddzieleniem prezentacji (html, css) od logiki (kod php)

PHP – Problemy

  • Znalezienie odpowiedniego frameworka, np. Symfony, Zend czy CakePHP.

Jaki wniosek? Skłaniam się ku środowisku .Net Framework jako kompleksowe rozwiązanie dostarczone przez profesjonalnego dostawcę i za darmo. Problemem do rozwiązania jest migracja z serwera Apache na IIS.

To porównanie nie jest jakoś specjalnie profesjonalne. Mogę mylić się w niektórych sprawach, proszę mnie poprawić. Poza tym jest zrobione pod moje konkretne wymagania, o których napisałem na początku. Proszę o tym pamiętać.