Ma plusy w postaci szybkości pisania
Jak każdy wyżejpoziomowo słabotypowany język jak Python, Ruby, JavaScript czy inne takie. Więc pod tym względem PHP się nijak nie wyróżnia.
łatwości nauki, prostej składni, sensownych aktualizacji itp.
Again, każdy inny popularny język ma takie same plusy. Więc pod tym względem PHP się nijak nie wyróżnia.
Ekosystem jest spoko, bo masz phpstorm, composer, ormy różne itp.
Czyli masz IDE, system zarządzania zależnościami i biblioteki?
JetBrains udostępnia IDE do bardzo wielu języków, systemy zarządzania zależnościami istnieją do innych (npm
, yarn
, gem
, bundle
, pip
, mvn
, gradle
, etc.). Więc pod tym względem PHP się nijak nie wyróżnia.
Przypomina Javę coraz bardziej, bo wprowadza typowane pola klas, typowane argumenty etc.
Czyli składnia klas? Opisałeś jakiś może 1% tego w jaki języki mogą być podobne do siebie, poza tym może i wprowadza, ale:
- generyków nadal nie ma
- enumów nie ma (dopiero wchodzą)
- typów kolekcji nadal nie ma
- różne miejsca gdzie typ możeb być ustawiony są dodawane w skrajnie różnych wersjach, w różnych majorach nawet
- Polimorfizm w PHP jest skopany (bo nie można zawęzić argumentów albo odwęzić return-typów, tak jak w Javie, c# i każdym innym silnietypowanym języku)
- Nie można jednocześnie wymóc funkcji i jej nadpisać w
trait
cie.
Poza tym nadal są dziwne "smaczki" PHP, np to że string "strlen"
albo array [$this, 'method']
że one oba pasują do typu callable
. Także rozróżnienie czy coś jest string
iem, array
em czy callable
m też jest fajne. Czyli takie "method reference" z Javy, czyli jak widać pomysł ten sam (dobry ;) wykonanie c****.
Porównywanie Javy i PHP pod względem bezpieczeństwa typów to jak porównać komandosa, z 6ciolatkiem który nauczył się rzucać kamieniami.
Jedyny plus jaki widzę w PHP nad innymi językami, to jest na prawdę jedyny, to to że w PHP8 weszły unie, np int|string
, i z tego co wiem to teraz to jest jedynie w TypeScript'cie takie coś (i w type-whispering w Pythonie, ale to nie jest egzekwowane). Także to jest jedyny plus.
Nie uważam go dalej za język marzeń, ale nie jest na szczęście tym, czym był 10 czy 15 lat temu ;)
Tak, 15 lat temu był c****, 10 lat temu był zjebany, teraz jest po prostu bardzo zły. Jest progress.
@Pipes Aha, noi jeszcze klasyk php, czyli to że w PHP prawie wszędzie int 1
jest równy string "1"
.
Spróbuj w PHP napisać kod który odrożni [1 => 'Foo']
od ['1' => 'Foo']
;)
<drapie się po głowie>