Temat: Dlaczego Python
W PHP można pisać i ludzie piszą. Nadaje się na blog, cms, aplikację z raportami (choć nie każdą), galerię itp.
Kod na którym teraz pracuję ma (jak już ktoś zaczął z cat/wc :) ), ponad 150 tys linii kodu, używa sporo różnych/ciekawych wzorców (jak Michał zauważył na używanie wzorców język nie ma wpływu).
Kod w tej chwili to aplikacja e-commerce, obsługująca ok 30 req/s, wykonująca wiele obliczeń i działa.
Przy pracy nad tym (i innymi softami) doszedłem do wniosków:
* php jest cool na blog/galerię/itp (j.w.)
* jeżeli mamy sporo logiki biznesowej, projekt obraca duuużą kasą i jego działanie jest krytyczne to php już drugi raz nie użyję.
Błędy typu notice (jak dla mnie to zwykły błąd, nazwanie tego noticem to proszenie się o sznur).
Jeśli wystąpi taki notice to kod wykona się dalej niszcząć bazę, przeliczając sobie różne kwoty na inne kwoty, kasując przypadkowe pliki i katalogi itp.
Szybkość działania skryptów 'w tle' liczących różne rzeczy na potrzeby widoku kończą się godzinami działania i wieloma mega pamięci cieknącej gdzie się da (zwłaszcza przy używaniu wielu obiektów).
PHP dostarcza typowanie parametrów method/funkcji np. można wymagać interfejsu:
{{{
function imSafe(ISomeInterface $myQlObject) {}
}}}
Niestety w wielu niejasnych dla mnie sytuacjach można tu wrzucić obiekt mający się nijak do obiecanego interfejsu i hulaj dusza, kod leci dalej nie zważając na zniszczenia.
Chaos w nazewnictwie method/obiektów (kilka ich php dostarcza), parametrów wywołań powoduje, że pisząć w PHP od ok 8 lat ciągle muszę zaglądać do manuala, by się upewnić, że naprawdę ktoś wpadł na taki pomysł by tak poukładać parametry (try ftp_put/ftp_get - i oczywiście musiałem sprawdzić w manualu nazwy tych funkcji)
W pythonie cenię sobie czytelność i intuicyjność standardowego środowiska jak i bilbioteki czy też bibliotek zewnętrznych (autorzy po prostu trzymają się otaczających ich standardów).
Kolejność parametrów jest dokładnie taka jaką sam bym użył w danej sytuacji. Nazwy metod i obiektów reprezentują dokładnie to co dzieje się w ich wnętrzu.
Może za dużo napisałem, może jestem sfrustrowany, a może za długo pracuję z PHP :)
Post ten to moje osobiste odczucia, choć starałem się nawiązać jak najbardziej do znanych mi faktów :D
Pozdrawiam.