Wątek przeniesiony 2021-09-09 15:01 z Społeczność przez cerrato.

Skąd wzięła się nienawiść do PHP-powców?

5

Tak jeszcze w temacie wydajności - jak już wiele razy pisaliście, duża część hejtu to powtarzanie jakichś rzeczy sprzed X-lat. Co do wydajności - niedawno wprowadzili JiT, pisał o tym chociażby @Adam Boduch na blogu - https://4programmers.net/Mikroblogi/View/71655. Zresztą nie jest to żadna wiedza tajemna, piszą także na oficjalnej stronie PHP - https://www.php.net/releases/8.0/en.php.

I teraz co macie na myśli pisząc o niskiej wydajności - mity powstałe w czasach PHP4, czy jakieś rzeczowe, aktualne benchmarki, wykonane na aktualnych wersjach?

0
cerrato napisał(a):

I teraz co macie na myśli pisząc o niskiej wydajności - mity powstałe w czasach PHP4, czy jakieś rzeczowe, aktualne benchmarki, wykonane na aktualnych wersjach?

Krytykowany już dzisaj benchmark, ale znów wkleję The Computer Language Benchmarks Game.
PHP jest w wersji 8.0.0 i jest sporo wolniejszy od Javy

2

@KamilAdam: Tak, widziałem ten link (był chyba wstawiany gdzieś wcześniej w tym wątku). Nie chcę go podważać, nie mam też czasu żeby szczegółowo przeglądać podaną stronę, ale nie wiem jak PHP było ustawione, czy JiT aktywne itp. Znaczy - nie podważam i nie neguję, ale ponieważ nie znam jego szczegółów, to nie brałbym tego jako prawdy objawionej.

Zresztą sama metodyka prowadzenia testu też ma wpływ na wyniki - jak widać w poniższym linku, ten sam test, ale puszczony różną ilość razy, daje różne wyniki - raz PHP jest wolniejsze od Javy, raz szybsze - https://www.toptal.com/back-e[...]-performance-node-php-java-go

0

Czy hip-hop PHP z którego korzystał facebook nie skończyło się klapą i przepisaniem na jave?

Sam korzystam głównie z Pythona, jest wolny ale zrobiono "kleje" w C/C++ - umożliwia to pisanie w Pythonie a złożone operacje są wykonywane przez kod w C/C++ z bibliotek (numpy)

Czy to prawda, że większość funkcjonalności w PHP jest napisana funkcyjnie i obiektowo? Można sobie wybrać i w zasadzie powstał chlew?

4

@Marcin Marcin: nie kojarzę historii FB, może było w PHP i się przesiedli. Ale to totalnie o niczym nie świadczy. Bo dawanie jako argumentu przeciw językowi w stylu jedna z największych i najbardziej obciążonych stron na świecie zmieniła tą technologię na coś innego to jest coś na zasadzie Widziałem na YT że w Ferrari lubi strzelić pasek rozrządu, więc zostanę przy moim Polo ;) Zupełnie nie ten kaliber, nie ma w ogóle o czym mówić.

1

@Marcin Marcin: Czy hip-hop PHP z którego korzystał facebook nie skończyło się klapą i przepisaniem na jave?

Rzeczywiście argument po chooyou...

@Marcin Marcin: Sam korzystam głównie z Pythona, jest wolny ale zrobiono "kleje" w C/C++ - umożliwia to pisanie w Pythonie a złożone operacje są wykonywane przez kod w C/C++ z bibliotek (numpy)

W PHP można robić tak samo.

Czy to prawda, że większość funkcjonalności w PHP jest napisana funkcyjnie i obiektowo? Można sobie wybrać i w zasadzie powstał chlew?

Jak mieszasz wszystko w jednym projekcie to tak. Poza tym ten chlew póki co zapewnia kompatybilność wsteczną, a w nowych projektach nie musisz go używać.
W każdym języku możesz zaimplementować ciulate biblioteki i potem krzyczeć, że jest chlew.
Także to raczej kwestia programisty czy zrobi chlew czy nie...

1
katakrowa napisał(a):

Wg mnie chyba nie rozumiesz istoty języka.

  1. ( wydajność ) owszem słaba ale nie do tego go stworzyli. Podobnie jak Java, Python, Javascript ...

Wszystkie które wymieniłeś są szybsze od PHP.

  1. ( typowanych tablic ) Wymaganie typów od języka nietypowanego ( do wersji 7 ) to brak zrozumienia istoty rzeczy ;

To po hugo piszesz że

Gdyby potrafili to widzieliby, że jest to kompletny język, w którym da się zrobić wszystko jak w każdym innym sensownym języku.

  1. ( wskaźników ) Masz referencje - żaden tego typu język ( javascript, python itp.. nie mają wskaźników );
  2. ( przetwarzania macierzy ) Ojejku jejku to brak biblioteki a nie kwestia języka - napisz to sobie i będziesz miał.

Pytasz czego mi brakuje a potem "napisz sobie". Nie obrażaj się jak baba, po prostu zaakceptuj że język PHP nie jest idealny i swoje braki ma.

  1. j.w.
  2. ( typów zbiorowych )możesz używać array bez wartości ( same klucze )

OK. Niestety nie działa w czasie kompilacji parsowania.

  1. ( funkcji do przeszukiwania tablicy ) jakich konkretnie ?

Takich które działają zgodnie z oczekiwaniem. Dodałem przykłady kiedy te istniejące nie działają, proponuję się zapoznać.

Z tego co piszesz to najlepiej pisz w C++, Delphi itp.. Wymienione rzeczy to cechy języka a nie braki. Do tego w wielu sytuacja są jego zaletami.

Aha! Czyli to cechy, nie braki. Teraz już wszystko rozumiem.

1

ja nigdy nie spotkalem sie z nienawiscia hehehe ale kazdy jezyk jest taki sam. Każdy jeden, nie ma znaczenia w czym piszesz

4
katakrowa napisał(a):

Wg mnie chyba nie rozumiesz istoty języka.

Gdyby potrafili to widzieliby, że jest to kompletny język, w którym da się zrobić wszystko jak w każdym innym sensownym języku.

W nowym PHP jest typowanie a bez typowania też da się wygodnie pisać. 25 lat piszę w językach typowanych, a około 15 w PHP i nie odczuwam braków ani przy prostych ani przy zaawansowanych projektach. Twierdzenie, że bez typowania nie da się żyć jest zwykłą nieprawdą i nadużyciem.

katakrowa napisał(a):

Pytasz czego mi brakuje a potem "napisz sobie". Nie obrażaj się jak baba, po prostu zaakceptuj że język PHP nie jest idealny i swoje braki ma.

Biblioteki w danym środowisku to nie cecha języka. W C++ na AVR nie ma wielu bibliotek a to nadal C++. Więc to nie jedynie kwestia samego języka ale całego środowiska. Zatem jeśli porównujemy języki to także uważam za nietrafiony argument. Nie w każdym C++ masz te same biblioteki.

Typu zbiorowego nie ma... doprawdy bez tego także da się żyć. Możesz sobie zrobić klasę i posługiwać się polami jest masa alternatywnych metod, które są równie wygodne i wspierane przez niemal każde IDE.

katakrowa napisał(a):

Pytasz czego mi brakuje a potem "napisz sobie". Nie obrażaj się jak baba, po prostu zaakceptuj że język PHP nie jest idealny i swoje braki ma.Aha! Czyli to cechy, nie braki. Teraz już wszystko rozumiem.

Mam przesłanki z Twoich wypowiedzi by sądzić, że właśnie nie rozumiesz.

Można by rzec, że w C++ nie ma funkcji EVAL i nie da się bez niej żyć. Nie można też dynamicznie tworzyć kodu, który się wykona i wielu rzeczy które sąmożliwe w językach interpretowanych a niemożliwe w kompilowanych.

3

@katakrowa: Można by rzec, że w C++ nie ma funkcji EVAL i nie da się bez niej żyć.

  • w sumie to nie można, bo w C++ w zasadzie możesz to zrobić używając każdego języka skryptowego, więc argument akurat nietrafiony.

25 lat piszę w językach typowanych, a około 15 w PHP i nie odczuwam braków ani przy prostych ani przy zaawansowanych projektach.

  • może pomińmy kto ile lat w czym programował, bo ani nie jest to dobry argument ani nie jesteś tu najstarszy stażem.

Twierdzenie, że bez typowania nie da się żyć jest zwykłą nieprawdą i nadużyciem.

  • zgadzam się. Tylko kto tak twierdzi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0