Cytat
Bo jeśli tolerancja błędów i szybkość działania PHP jest do zaakceptowania to tak na prawdę na dzień dzisiejszy nie ma czym go zastąpić.
w firmie w której pracuję, robi się strony www (tzn. stronek jako tako nie klepiemy, ale może to być część większej aplikacji) w technologiach ms (.net, asp.net) a także w javie (jsp itp.).
Aplikacje desktopowe zarówno w Javie jak i c# oraz kilku innych technologiach (niektóre projekty mają już sporo lat, więc są pisane w dość egzotycznych językach).
PHP ma dużą konkurencję jeśli chodzi o technologie (www można robić i w javie i w .net i wielu innych technologiach. Mi osobiście podoba się Grails). Popularność PHP nie wynika z tego, że jest niezastąpiony, tylko z tego, że był jednym z pierwszych - wtedy była to dobra technologia więc się upowszechnił i dlatego jest sporo tanich serwerów obsługujących php, oraz jest dużo tanich klepaczy php. Z punktu widzenia biznesowego, taniej i łatwiej jest znaleźć ekipę PHPowców niż Grailowców czy RORowców. Jakość języka ma tu niewiele do rzeczy.
Cytat
W node czy dart praktycznie jakikolwiek refactoring jest niemożliwy
Za to w javie/c# refaktoring jest znacznie prostszy niż w php. Jak w projekcie są testy jednostkowe, to w czym by nie był napisany, to będzie w miarę ok, ale gdy brak testów, to w językach kompilowanych refaktoryzacja jest znacznie łatwiejsza - przynajmniej dla mnie.
Cytat
. Ja już wolę to strtolower czy strpos, niż wkładanie wszystkiego w objekt i pisanie elaboratów jak w java
Podejrzewam, że po prostu nie potrafisz programować obiektowo, dlatego to dla Ciebie problem.
nie wydaje mi się, żeby str_len($sting) było "fajniejsze" od string.length()
jak chcesz zrobić kilka operacji stringowych to robisz tak
trim(strToLover(substr($zmienna,$parametr1,$parametr2)))
podczas gdy w javie możesz napisać:
zmienna.substr(parametr1,parametr2).toLover().trim()
Który zapis jest ładniejszy ? (to oczywiście pseudokod).
Java jest kobylasta (rozwlekła) - to fakt. O ile JVM to coś fajnego, o tyle sama java jest taka sobie w dzisiejszych czasach, szczególnie porównując do c# (gdzie są różne Taski, lambdy, extension methods czy głupie słówko "var" ) albo scali.
Natomiast rozwklekłość javy nie jest żadnym argumentem dla php, bo ten też nie jest specjalnie zwięzły jak na język skryptowy - polecam zapoznać się choćby z grails (język to groovy - skryptowa java można powiedzieć).
Cytat
Klasy niestety = narzut, referencje, problemy z porównaniem (equals() z javy tongue.gif ?). Lepiej jakby scalary miały swoje metody (były pseudo obiektami), np wszystkie str* do wywołania jako "sdfsdf"->toLower().
Akurat php jest językiem obiektowym i klasy (choćby mysqli zamiast zestawu funkcji mysql_*) istnieją, więc nie rozumiem tej obawy. Groovy o którym wspomniałem (i nie jest on wyjątkiem) jest językiem skryptowym, w pełni obiektowym i działa szybciej niż PHP. Wywołanie o którym napisałeś " "sdfsdf"->toLower() " to przecież jest właśnie obiektówka - traktowanie ciągu znaków jako obiekt - tak to działa w javie/c#. Oczywiście "pod spodem" wcale nie musi to być obiekt, kompilator/interpreter robi tak, żeby było dobrze i optymalnie. Ważne, że programista widzi kod jako obiektowy.
Z tym, że słowo "klasa" nie było tu kluczowe. Po prostu nie widzę sensu wywalania funkcji stringowych i zastępowania ich czymś innym ze względu na kompatybilność - to wszystko. Można tak rozwijać, żeby nie stracić na kompatybilności, bo wyrzucenie jakichś funkcji nie zwiększy wydajności.
PS. Ten post może wydać się "anty PHP" - W rzeczywistości nie uważam go za zły język. Tylko, że pisanie, że jest niezastąpiony, jest mało trafione. PHP się rozwija, jest coraz lepszy... ale nie on jest liderem, on tylko dzielnie goni konkurencję