Zastanawia mnie skąd wzięła się tak wielka nienawiść do PHP-powców?
Aż tworzą o tym kanały:
Jak byłem na konferencji DNA Conf jedna osoba powiedziała: jestem programistą PHP teraz możecie się śmiać?
Może stąd że PHP rozwija się do PHP: Hypertext Preprocessor
czyli taki procesor htmli. Coś jak XSLT.
Spróbuj na konferencji powiedzieć że jesteś programistą XSLT.
Bo programują w PHP.
Bo PHP nie jest językiem ogólnego przeznaczenia tylko jest DSLem do generowania stron - to z jednej strony. A z drugiej PHP był projektowany jako język ekstremialnie prosty, każdy gimnazjalista/licealista mógł w nim pisać stronki. Jak ktoś mówi że umie Javę czy C# to jednak cośtam musiał zrozumieć żeby napisać program. A w PHP niedokońca, więc jak ktoś mówi że jest programistą PHP to nie ma żadnej pewności że coś umie (co jeszcze nie znaczy że nie umie :P). Poza tym PHP wykończyło Perla za co należy się nienawiść totalna. BTW teraz nowym PHP jest Go - statycznie typowany język bez generyków :D
Bardzo niski punkt wejścia, i biznes to akceptuje, bierze młodych bo prostych chałtur.
Żaden inny język tak nie ma.
Są wyjadacze PHP, ale skąd to wiesz.
Może to być licealista, lub ktoś na tym poziomie.
Ja tam w podobny sposób nienawidzę JavaScriptu. Świat bez nich by był po prostu lepszym miejscem ;)
nie ma żadnej nienawiści, takie tam żarciki z czasów < PHP 3/4 kiedy PHP było naprawdę słabym językiem pełnym niedorzeczności, niespójności, bez elementów obiektowości czy funkcyjności. Prosty język używany głównie przez dzieci (wtedy nazywanymi "dziecmi neostrady") do stawiania stronek domowych z jeden osiem L lecącym w tle i działającymi tylko na IE (wtedy jeszcze PHP się rozwijało do "Personal Home Page").
Kod gdzie zapytania SQL (lub częściej zapis/odczyt do/z plików) przeplatają się z HTMLem, CSSem i kodem PHP, jedno wielkie spaghetti; ciężko było nazwać te dzieciaki programistami - sam byłem jednym z nich.
Teraz to prawie normalny język ale żarciki pozostały (prawie bo wiele elementów zostało dla wstecznej kompatybilności)
A ja w PHP mam zaimplementowany algorytm genetyczny wyznaczający trasy przez różne miasta, tylko po to żeby móc to odpalić na każdym serwerze z PHP jak ktoś twierdzi, że to nie jest prawdziwe programowanie to chyba w ogóle nie wie co to jest PHP. Jest to powolne ale działa i w ciągu 5-10 sekund przetwarzając miliny różnych tras ocenia je i wybiera najlepszą.
Hejt na PHP jest jak swego czasu hejt na Justina Biebera. Mało kto wiedział o co chodzi, ale "ludzie gadali", więc wygodniej płynąć z prądem. Takie pokolenie.
Marcin Marcin napisał(a):
Zastanawia mnie skąd wzięła się tak wielka nienawiść do PHP-powców?
Nienawiść? Raczej współczucie.
Nie mam nic do PHPowców, ich wybór. Natomiast samo PHP jest dla mnie niezrozumiałym tworem (w XXIw, w latach 90tych miał sens). Niby jest DSLem, ale jego przystosowanie polega na tym, że można zagnieżdżać jego kod w kodzie HTML, co ma sens gdy chcesz wstawić jednolinijkowca tu i ówdzie. Jednak jak chcesz napisać większą stronę to wiele na tym nie skorzystasz, dlatego już lepiej nauczyć się języka ogólnego przeznaczenia, który może więcej. Poza tym, debilnie naśladuje z sygile z perla (dolar przed nazwą zmiennych), tylko w nim one są dla picu, nie wiem po co. :p
Wszystko się sprowadza do bezsensownej wojenki, która opiera się na gustach i doświadczeniu konkretnej osoby w danej technologii. Python zły, bo dynamicznie typowany, JavaScript do kosza, bo 1 + '1'
to nie to samo co '1' + 1
(czy jakoś tak). Linux zły, bo nie ma sterowników do Wi-Fi i myszka nie działa. Windows badziewie, bo trzeba klikać w okienka i dużo wirusów. Java to dramat, bo straszna kobyła i legacy, no i to korpo. HTML - jak można programować w HTML?
I w sumie można tak bez końca. A z drugiej strony spróbuj znaleźć dobrego programistę, któregokolwiek z wymienionych języków. Tak naprawdę język, czy system operacyjny nie ma żadnego znaczenia. Dobry programista, łatwiej bądź trudniej, odnajdzie się w każdej technologii i zrobi z niej użytek. Ot, cała prawda. Jakbym się tak kierował opiniami w Internecie, to wciąż bym tkwił w przekonaniu, że w Pythonie zarabia się mało, bo to język do pisania prostych skrypcików.
Tak naprawdę język, czy system operacyjny nie ma żadnego znaczenia.
Całkowita nieprawda. Napiszesz w Javie system operacyjny? Zrobisz w C webówkę biznesową? Gdzie będziesz miał łatwiej o memory leak, w Ruście czy C/C++?
HTML - jak można programować w HTML?
??
Ja nie słyszałem, żeby ktoś nie lubił ludzi kodujących w PHP, ale negatywne opinie o samym PHP już tak. Rozwinę myśl z komentarza w tym wątku https://4programmers.net/Forum/Spolecznosc/354768-skad_wziela_sie_nienawisc_do_php_powcow?p=1790655#comment-739825 . PHP jako język nowy względem Perla (i kilku innych) miał okazję zrobić coś, co w Perlu w tamtych czasach kulało. Klasy są - spoko. Przy okazji jednak podczas projektowania PHP ktoś popełnił kilka niezrozumiałych decyzji:
- brak trybu ścisłego
use strict;
- można bezmyślnie używać niezadeklarowanych zmiennych (o ostrzeżeniach piszę niżej), - poziom ostrzeżeń ustawiany jest przez funkcje a nie przez dyrektywy wychwytywane przez parser (słowo kluczowe
use
) - o niezadeklarowanej zmiennej dowiem się dopiero w czasie działania a nie parsowania, - brak obsługi wyrażeń regularnych na poziomie składni - mimo, że PHP używa PCRE; tu bywa zamieszanie przy dopasowaniu znaków w kodowaniu Unicode. W Perlu można ustawić kodowanie ciągów znaków z poziomu kodu.
Może twórcy języka mieli jakieś założenia i to wszystko jest zgniłym kompromisem. Jednak na rozwój mieli kawał czasu. Perl rozwija się w gałęzi wersji 5.x i rewolucje na miarę Raku nie przechodzą - projekt Perl 6 został przekształcony w zupełnie inny język. To też jest jakieś rozwiązanie. OK, Perl też ma swoje problemy, jednak do ich rozwiązania podchodzi się inaczej.
Odpowiedź jest bardzo prosta... zazdrość :)
Wszyscy javowcy/c-sharpowcy itp itd sio... sio mi stąd. Spadać na fora napisane w waszych językach.
PHP hejtują głównie Ci co nie potrafią w nich pisać. 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.
@vpiotr: Da się, podobnie jak w Brainfuck czy Whitespace
napisz może czego Ci w PHP brakuje i co jest takie uciążliwe, że porównujesz go do BrainFuck?
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.
Da się w PHP napisac aplikację mobilną albo aplikację desktopową? Może ML?
No i to że się da coś w nim napisac to nic nie zmienia. Ziemię pod budowę tez możesz wykopać łopatą, a można użyć koparki...
@katakrowa:
katakrowa napisał(a):
@vpiotr: Da się, podobnie jak w Brainfuck czy Whitespace
napisz może czego Ci w PHP brakuje i co jest takie uciążliwe, że porównujesz go do BrainFuck?
Brakuje mi:
- spójnej biblioteki standardowej z jakimkolwiek globalnym standardem nazewnictwa lub przestrzeniami nazw, przydałaby się też spójna kolejność parametrów
- wydajności
- typowanych tablic
- wskaźników,
- przetwarzania macierzy,
- obliczeń wektorowych (AVX),
- typów zbiorowych
- i... funkcji do przeszukiwania tablicy
<?php
$arr = [
'a' => 'false',
'b' => -1,
'c' => 0,
'd' => 'true',
'e' => false,
'f' => true,
'g' => 1
];
var_dump( array_search( -1, $arr ) );
var_dump( array_search( 'false', $arr ) );
var_dump( array_search( 1, $arr ) );
var_dump( array_search( 't', $arr ) );
$arr = [
'false',
-1,
true,
10
];
var_dump('------');
var_dump( in_array( -1, $arr ) );
var_dump( in_array( 'false', $arr ) );
var_dump( in_array( 1, $arr ) );
var_dump( in_array( 't', $arr ) );
output:
string(1) "b"
string(1) "a"
string(1) "f"
string(1) "c"
string(6) "------"
bool(true)
bool(true)
bool(true)
bool(true)
vpiotr napisał(a):
@katakrowa:
katakrowa napisał(a):
@vpiotr:
Da się, podobnie jak w Brainfuck czy Whitespace
napisz może czego Ci w PHP brakuje i co jest takie uciążliwe, że porównujesz go do BrainFuck?
Brakuje mi:
- spójnej biblioteki standardowej z jakimkolwiek globalnym standardem nazewnictwa lub przestrzeniami nazw, przydałaby się też spójna kolejność parametrów
- wydajności
- typowanych tablic
- wskaźników,
- przetwarzania macierzy,
- obliczeń wektorowych (AVX),
- typów zbiorowych
- i... funkcji do przeszukiwania tablicy
Wg mnie chyba nie rozumiesz istoty języka.
0. ( wydajność ) owszem słaba ale nie do tego go stworzyli. Podobnie jak Java, Python, Javascript ...
- ( typowanych tablic ) Wymaganie typów od języka nietypowanego ( do wersji 7 ) to brak zrozumienia istoty rzeczy ;
- ( wskaźników ) Masz referencje - żaden tego typu język ( javascript, python itp.. nie mają wskaźników );
- ( przetwarzania macierzy ) Ojejku jejku to brak biblioteki a nie kwestia języka - napisz to sobie i będziesz miał.
- j.w.
- ( typów zbiorowych )możesz używać array bez wartości ( same klucze )
- ( funkcji do przeszukiwania tablicy ) jakich konkretnie ?
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.
Sam jestem hejterem PHP, i sam często wstawiam na Programistyczne WTF jakie Was spotkały kwiatki z PHP; ale trzeba przyznać, że żeby znaleźć WTF w języku trzeba się na nim znać. Jeśli nie piszesz w PHP, a hejtujesz, to skąd wiesz że to co Ci się wydaje WTF'em faktycznie nim jest? Bo PHP jest taki słaby? Palnij się w głowę, zanim się wypowiesz. Owszem, WTF'ów w PHP jest mnóstwo, ale nie sądzę że natkniesz się na nie jednocześnie nie pisząc w nim.
95% hejtów tutaj bierze się z niezrozumienia, a nie z faktycznego bycia WTF'em.
Twoja rola jako hejtera PHP wygląda tak:
- znajdź coś dziwnego (to robią wszyscy)
- upewnij się że to faktycznie WTF (tego nie robi prawie nikt)
- postuj na 4p (to też robią wszyscy).
Marcin Marcin napisał(a):
Zastanawia mnie skąd wzięła się tak wielka nienawiść do PHP-powców?
Aż tworzą o tym kanały:
Jak byłem na konferencji DNA Conf jedna osoba powiedziała: jestem programistą PHP teraz możecie się śmiać?
Tu jest spoko post o niekonsystencjach w PHP: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
@stivens: No jak ktos jest glupi i ma 90 IQ to tez jest jego cecha a nie "brak" :P
Java, JavaScript, Python też są tak samo wolne (bo to nie są języki kompilowane do kudu natywnego), a jakoś szanowna społeczność nie hejtuje ich z powodu szybkości. To jak z tym jest?
Z ciekawości zapytam, jakie języki wg kolegów @stivens i @vpiotr są dobre skoro PHP jest "be"?
Po pierwsze wcale nie mowilem o szybkosci. Dla mnie taka cecha porownywalna z 90 IQ jest dynamiczne typowanie. Ale to juz chyba wszyscy zauwazyli bo w Pythonie czy PHP sie wprowadza protezy typowania.
A co do przykladu spoko jezyka to Scala na przyklad. Kotlin tez jest w porzadku. Pythona juz natomiast tez nie lubie. (poza ewentualnie skryptami na 100 linijek :) )
Java, JavaScript, Python też są tak samo wolne ( bo to nie są języki kompilowane do kudu natywnego),
Całkowita nieprawda. Java jest jednym z szybszych języków
Do tego w wielu sytuacja są jego zaletami.
Brak typowania w aplikacjach webowych większych niż przysłowiowy hello world to jest wada. Zaletą może być jak robisz krótkie skrypty automatyzujące albo jakieś skrypty do ML. Tylko wtedy bierzesz Pythona ;]
Sugeruję przywoływać tylko benchmarki z PHP 8.0 lub 8.1, w którym jest JIT; i wtedy porównywać szybkości.
stivens napisał(a):
Po pierwsze wcale nie mowilem o szybkosci. Dla mnie taka cecha porownywalna z 90 IQ jest dynamiczne typowanie. Ale to juz chyba wszyscy zauwazyli bo w Pythonie czy PHP sie wprowadza protezy typowania.
A co do przykladu spoko jezyka to Scala na przyklad.
Być może komfort pisania jest większy ale nie wiem bo języka zupełnie nie znam.
Wiem, że to nie twój zarzut względem PHP tylko @vpiotr 'a ale się odniosę:
Co do szybkości, to działa na JVM więc wydajność jest w kategorii PHP / Python / .NET - nie kompiluje się do natywnego kodu procesora.
Nadal bez wsparcia natywnymi bibliotekami nie nadaje się do poważnych obliczeń.
katakrowa napisał(a):
Co do szybkości, to działa na JVM więc wydajność jest w kategorii PHP / Python / .NET - nie kompiluje się do natywnego kodu procesora.
Między wydajnością PHP/Pythona a Javy/.NET jest wieksza przepaść niż między wydajnością Javy/.NET a C++/Rust. Dynamiczne typowanie kosztuje i to dużo
@ProgScibi: Java jest jednym z najszybszych jezyków programowania. A poza tym jeszcze jest coś takiego jak JIT
Dopóki korzystasz z natywnych i skompilowanych dla danego systemu bibliotek. Jak zaczniesz implementować własne pętle w pętli to do takiego C++ czy Delphi nie porównania. Jest wtedy 10 razy wolniejsza. Doskonałym przykładem na testy są właśnie implementacje wspomnianych algorytmów genetycznych.
Porównywanie sortowania tablic czy funkcjonalności typu array_filter jest bez sensu bo one i tak są skompilowane pod konkretny system i napisane w językach typu C albo C++.