Cytat
Ostatnio spotkałem kolege ktory od dluzszego czasu pisze w php i zaczal opowiadac mi bajki, ze wielu rzeczy zrobic w php sie nie da... To sie pytam "czego sie nie da?"...
Dać to się pewnie da, ale jakoś perl czy python wydają mi się bardziej zwięzłe i przemyślane. php robi wrażenie (co potwierdzają fakty z jego historii) języka, który w pierwotnej wersji został na szybko stworzony aby zrobić coś małego, a potem się rozrastał bez przemyślenia struktury całości. Przykłady?
Syntaktycznie wszystko jest tu w zasadzie realizowane jako funkcje, a np. takie coś:
[php:1:e65d72ee43]<?php
in_array($skalar, array($elem1, $elem2, $elem3))
?>[/php:1:e65d72ee43]
dużo prościej i czytelniej można by zapisać np. tak:
Kod
$skalar in ($elem1, $elem2, $elem3)
W ogóle zapis listy czy tablicy jest IMHO niewygodny. Zamiast:
[php:1:e65d72ee43]<?php
$a = array($elem1, $elem2, $elem3);
list($elem1, $elem2, $elem3) = $a;
?>[/php:1:e65d72ee43]
lepsze jest np.:
Kod
$a = ($elem1, $elem2, $elem3);
($elem1, $elem2, $elem3) = $a;
Wymieszanie typu listowego i haszowego jest też pomyłką. Spada na tym wydajność i sens istnienia haszy, nie wspominając o bałaganie w tablicach.
Brakuje mi często w PHPie anonimowych bloków kodu, które załatwiałyby różne małe rzeczy. Np. sortowanie po jakimś dziwnym kryterium wymaga w PHPie stworzenia osobnej funkcji która porównuje elementy:
[php:1:e65d72ee43]<?php
function f($a, $
{
return $a * $a - $b * $b;
}
usort($tab, 'f');
?>[/php:1:e65d72ee43]
A tymczasem w perlu robi się to tak:
Kod
$tab = sort { $a * $a <=> $b * $b } $tab;
I jakoś tak wydaje mi się to prostsze.
Wyrażenia regularne (z których często korzystam) też są uwięzione w sztywne ramy funkcji przez co nie można zrobić kilku fajnych trików.
Obiektowość PHPowa jest słaba (w wersji 5 się poprawiło, ale nadal to nie jest to) i do pythonowej się nie umywa. Ciekawe czy w którymś PHPie będzie przeciążanie operatorów?
Podsumowywując, składnia php jest za sztywna, a jednocześnie nie daje możliwości swobodnego rozszerzania. Parę rzeczy jest, prawdopodobnie ze względu na kompatybilność, sztucznie połączona (listy i hasze). Wszystko jakoś tak przypomina mi trochę lispa ze swoimi nawiasami i schematycznością aż do bólu.
W obecnej wersji jest i tak już całkiem dobrze, ale php 3 był nie do strawienia. I nie zgodzę się z tym, że w PHPie nie da się czegoś napisać. Przy odrobinie wysiłku da się większość rzeczy zrobić. Natomiast stwierdzenia, że php jest do kitu w większości są mocno przesadzone i zalatują trochę szpanerstwem, bo podejrzewam, że mało kto pisze projekty, w których wymagania całkowicie wykluczają PHPa.
Jednym słowem, IMHO PHPowi brakuje jeszcze troche do perla i pythona, mimo, że wiele od nich już zapożyczył.
Cytat
To glupie ale rzeczywiscie tak jest, ze php jest traktowane jak cos gorszego. A tak na prawde to pozwala na calkiem sporo. Wystarczy chociazby zajrzec do manuala - chodzi mi glownie o ilosc dostepnych rozszerzen. Moim zdaniem jest calkiem spora...
To zobacz sobie archiwa CPAN. To jest całkiem spora ilość rozszerzeń. php ma ich naprawdę mniej.