![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na początek prośba do moderatorów by rozdzielić wątek na dwa.
Cytat Chodzi ci o JEE czy nie trafilem, jesli mozesz opisz na co sie przerzuciles z jakich powodow jakie ma wady i zalety w poprowaniu do php twoje nowe narzedzie Osobiście jestem w trakcie "przesiadki" na JEE i w żadnym wypadku nie można moich wypowiedzi traktować tutaj jako wypowiedzi kogoś kto ma z tą platformą spore obycie. Prosiłeś o wypisanie wad i zalet tej platformy względem PHP tak więc i takie zestawienie znajdziesz poniżej, miej jednak na uwadze, że jak już wspomniałem JEE (a nawet i wiele elementów JSE) nie jest mi tak dobrze znaną technologią jak PHP, które znam od dobrych kilku lat. Na pewno z wielu wad/błędnych rozwiązań nie zdaję sobie nawet sprawy (brak wystarczającego doświadczenia), a jest ich na pewno cała masa - jak w każdym języku/platformie, szczególnie takiej która swoje początki miała w połowie lat 90 i dbała o wsteczną kompatybilność (to akurat zaleta) kosztem pewnych decyzji/rozwiązań (np. typy generyczne będące na dobrą sprawę jedynie lukrem składniowym). Subiektywna lista: Język:
Platforma:
Tych punktów mogłoby tutaj być więcej. Ale PHP nie jest wcale jakimś niewyobrażalnym badziewiem. Jak każdy język ma spore możliwości, a w dobrych rękach można w nim stworzyć na prawdę świetne projekty. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
wszystko juz chlopaki napisaliscie, i to jest wszystko prawda niestety. Ja od siebie bym dorzucil brak standardowego class Loadera. metoda __autoload powoduje ze autoloader w kazdym fw/projekcie dziala inaczej. PSR-0 istnieje, BA! Nawet bez PSR-0 istniała konwencja nazewnictwa klas. Będziesz ganić język za programistów, którzy w nim programują? Poza tym "standardowy" autoloader jest: Symfony ClassLoader, niedługo SplClassLoader a także loader z Composera. Biblioteka PHPUnit nie jest w stanie odnalezc zaleznosci miedzy klasami i klasy nie chcą się ładować, i tego co juz napisalem nie moge testowac jednostkowo. Musze robic sztuczki typu wydzielenie kodu logicznego do innej klasy poza projektem, tam stestowac , i opakowac w obiekt juz nalezacy do projektu. Przeczytaj co to jest "bootstrap" w testach jednostkowych i tam zaimplementuj swojego autoloadera. Wraz z wprowadzeniem namespacow (ktore sa troche nieudane - brak mozliwosci zaimportowania calej namespace - porazka. Bez aliasowania trzeba uzywac nazw typu orzech\myproject\mymodule\myclass() - jeszcze wieksza porazka.) mogli by wprowadzic standardowy class loader tak jak jest w javie i juz. Przepraszam - "standardowy class loader" w javie? Nie znam Javy na tyle, ale class loader? W języku kompilowanym? WTF? no i idiotyczne operatory. operator obiektowosci -> . Operator namespace \ . Operator konkatenacji . (kropka). To jedyny jezyk ktory znam, ktory nie stosuje kropki jako obiektowosci\namespace oraz plusa jako konkatenacji. Brak overloadingu - przeciazania metod. Kwestia znaków to kwestia umowna. Zobacz jak to wygląda w innych językach. To, że znasz troszkę jave, c++, javascript to wcale nie znaczy, że w innych językach jest tak samo. Spójrz na Prologa. Spójrz na wszystkie inne języki, które umożliwiają przeciążanie operatorów (C++, Ruby, Scala itd) to widzisz, że może to wyglądać jeszcze gorzej. natomiast PHP za kazdym razem includuje wszystkie pliki, odczytuje konfiguracje (define są dosc wolne jak na zwykla deklaracje stałej, ok 200 stałych to u mnie 10 ms), oblicza tysiac durnych rzeczy i dopiero wykonuje te kilka linijek kodu ktore mamy w naszym kontrolerze. Prawda ze to marnotrastwo? Choc trzeba przyznac ze php ma o polowe mniejsze zuzycie pamieci niz java. APC Twoim przyjacielem. w najnowszej wersji net. frameworka wprowadzono typ zmiennej dynamic, jest to typ zmiennej oparty na takim typowaniu jak ma php. Jednoczesnie sam net.framework jest statyczny. Daje to nam mozliwosc uzywania typow tam gdzie jest potrzebna bezblednosc oraz uzywania zmiennych bez typów tam gdzie nam wygodniej. I tak to rowniez powinno dzialac w php. co prawda są typy proste w php5.4 jednak nim on sie upowszechni to wieki miną. To nie jest żadna nowość. Dynamiczne typowanie istnieje w wielu językach ActionScript Kod var zmienna:*; Scala Kod var zmienna:Any; // js, php itd... Fanboye JS jako jedną z wielu "zalet" javascriptu przedstawiają brak typowania. Co prawda są idiotami ale wbrew pozorom prawdziwy sens użycia dynamicznego typowania jest bardzo rzadki i często podyktowany błędem projektowym/upośledzeniem języka. PHP nie miał być ani najszybszym, ani najładniejszym, ani najwydajniejszym językiem. Miał po prostu być łatwy dla początkujących programistów oraz ułatwiać wykonywanie prostych czynności z poziomu kodu i tak jest! Ta dyskusja niestety nie przyniesie więcej niż stałe, niezmienne argumenty przewijające się od lat pomiędzy programistami klasy Enterprise a i parę głupich argumentów nie zabraknie choćby jak ten: Cytat brakuje mi tego zeby wszystko bylo obiektem i method chaining Błagam ludzie. Rozróżnijcie biblioteki od semantyki języka. To kompletnie 2 różne rzeczy.
Powód edycji: [wookieb]: [wookieb]: [wookieb]:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 06:12 |