Bardzo ciekawe, to co mówicie... Zacznijmy od początku.
sobieh:
Cytat
wszystko fajnie ... ładne klasy
tylko ze chyba żaden z was nie bierze pod uwagę faktu
iż te klasy zżerają 3 razy więcej pamięci przy uruchomieniu
niż ten prosty "brzydki" switch.
Czy ktoś Ci każe wszystkie klasy ładować? Jak dobrze pójdzie, to żadna nie zostanie zdefiniowana (patrz: autoloader...). Zobaczymy Twojego switcha przy 50 rodzajach błędów. Switch też zajmuje pamięć, jeżeli tak bardzo się czepiamy...
Cytat
Klasy są dobre ale nie wszędzie.
Dałem typowy przykład na podstawową własność klas, ale tam nie są dobre najwyraźniej. To gdzie?
Cytat
Po co pożerać pamięć na bzdurne plątanie się
w 50 klasach skoro można to zrobić na Switchu który zadziała
3x szybciej i zabierze 3x mniej zasobów.
Lepiej, żeby programista się męczył niż maszyna, która przetwarza kod.
Cytat
Czytelne ... może i tak ale po kompilacji przez silnik PHP ( w odróżnieniu od C ) wyglądają
jak mocno wymieszany i zaschnięty makaron.
A jak wyglądają w C klasy?
Cytat
Czytelność kodu (co w przypadku klas w PHP staje się coraz mniej prawdą)
Jak ktoś nie potrafi napisać czystego kodu, to nie dziwię się, że nawet w klasach ma syf.
Cytat
Klasy są dobre tam gdzie kod MA BYĆ wyraźny i czytelny a tam gdzie nie musi nie powinno się ich stosować.
Tak jak napisał mike. Może przelecimy jeszcze to obfuskatorem, skoro nie musi być czytelny?
Cytat
Poza tym wszystkim nie porównujmy pseudo klas z PHP do klas z C bo nie mają one ze sobą za wiele wspólnego
zaczynając choćby od tego że php nie odróżnia bajtu od słowa uznając wszystko za Z_VAL (VARIANT).
Minąłeś się z celem tej dyskusji. Mnie w ogóle nie obchodzi, czy PHP traktuje wszystko jako Z_VAL czy cokolwiek innego. To jest zadanie dla programistów silnika, a nie aplikacji pisanych w tym języku. Programiści używających języków OOP, myślą na trochę wyższym poziomie abstrakcji niż programiści C.
A tak w ogóle to jakie pseudo klasy z PHP i klasy z C? Po pierwsze w PHP klasy nie są pseudo, bo posiadają wszystko, czego potrzeba, żeby nazwać je klasami. Zawsze myślałem, że w C nie ma w ogóle klas, ale wygląda na to, że się myliłem. Mam nadzieję, że pomyliłeś C z C++, a nie klasy ze strukturami...
Black-Berry:
Po głębszym zastanowieniu, dobry programista zauważa, że konstruktor, metoda query i inne wyrzucają błąd w zupełnie innych kontekstach i nie potrzebuje osobnych klas błędów, tylko wystarczy mu DBException. Bo chyba nie napiszesz po wyrzuceniu przez query wyjątku, że nie mogłeś połączyć się z bazą...
Jeżeli tak bardzo wam zależy, to istnieją rozwiązania, które widocznie usuwają problemy z wydajnością PHP. Na pewno kosztują mniej, niż praca dobrego programisty.
Poza tym o czym my rozmawiamy? Nie podoba wam się wydajność, to nie piszcie... Jakoś inni nie mają z nią problemów. Wszystkie te odśmiecacze i inne bajery stworzone, żeby nie zawracać głowy programiście, w Javie też dają w kość wydajności, ale nikt nie widzi w tym problemu... Ludzie wolą dzisiaj mieć czysty kod, w którym łatwo wyłapać błędy (np. testy jednostkowe), niż super szybki, ale nieczytelny i dziurawy... I to nie jest mój wymysł.
Jakoś wysokopoziomowe języki wciąż królują na polu aplikacji web, więc nie mamy o czym gadać. Tutaj wydajność nie jest tak ważna, jak np. w przypadku pisania systemów operacyjnych...
Pozdrawiam.