Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czego nie ma w PHP?
Forum PHP.pl > Inne > Hydepark
escaflowne
Ostatnio naszło mnie takie pytanie: co mają inne języki programowania, czego nie ma w php, a byłoby miło, gdyby php to miało?
kubatron
Hmm temat chyba dużo razy był ale powiem smile.gif
C++,Java,C,C# mają typy tzn. smile.gif
Kod
int value = 0;

Co powoduje że zmienna value będzie tylko i wyłącznie int, nie będzie mogła być stringiem a w php tego nie ma, jest możliwośc rozpoznawania czy to string czy array ale to nie to co deklaracja typów smile.gif A mogliby zrobić deklaracje typów smile.gif
patrycjusz
trampek z czerwonymi sznurówkami, wina , niebieskich kolczyków, jajek z pieczątkami UE i hmm,... coś jeszcze miałem na myśli hmmm... smile.gif
aaaa wiem smażonych kurczaków smile.gif takich kubełków jak sa w KFC smile.gif
spenalzo
Wydaje mi sie, że php brakuje obsługi wątków - czasami, rzadko ale zawsze, były by przydatne.
anas
Hej.

A mi brakuje takiej obiektowosci jaka oferuje np. C++ - chociazby sprawa dziedziczenia. Ja patrze na to w nastepujacy sposob, ze kazdy jezyk ma swoje zastosowanie i w wielu przypadkach wole stosowac php niz C++ i na odwrot.

anas
shima
Cytat(serafin @ 2004-12-14 17:15:24)
Poza tym kontrola typow to jest chyba najmniej lubiana przez programistow rzecz winksmiley.jpg Wie o tym kazdy kto programuje chociazby w c++ ze rozne typy sprawiaja rozne mniejsze lub wieksze problemy

Akurat w tym punkcie pozwolę sobie nie zgodzić się z przedmówcą. Kontrola typów jest niezwykle przydatna, a co do uczuć programistów... Wolisz niejawną konwersję? Kontrola typów nie jest częścią składni w celu uprzykrzania życia.
sf
Moim zdaniem najgorszym pomysłem jest zaczynać programować od php czy HTML. HTML to jest bałaganiarstwo, piszę się jak się chce, a przeglądarki i tak jakoś to wyświetlą. Natomiast w php nie ma kontroli typów co powoduje, że jak ktoś potem przechodzi na poważniejszy język to ma problemy. Dlatego najlepiej zacząć od C++, a potem przejść na php i HTML. C++ uczy by pisać z głową, a jak ktoś nie pisze z głową to kompilator jest świetnym nauczycielem. "Napiszesz cały kod poprawnie, albo idź na grzyby tongue.gif".
scanner
Zanim zaczniesz w czymkolwiek programowąc, musiałbyś sie nauczyć przynbajmniej podstaw algorytmiki.
Co do typów to się zgadzam. JUż bardzo tęsknię do dawnych czaśów gdy w innych językach widziałem komunikat "Type mismatch in line...."
hawk
To nie takie proste.

@Kubatron i inni:
Owszem, mi też brakuje ścisłej typizacji (nie kontroli typów). Jak pewnie większości ludzi którzy zaczynali od języków z taką typizacją. Ale po pierwsze, php nie będzie miało ścisłej typizacji i kropka. Twórcy języka zdecydowanie stwierdzili, że uważają to za zaletę i nie będą zmieniać. Bo wiele ludzi właśnie preferuje taki styl. A po drugie, pamiętajmy że wiele bardzo poważnych języków też ma luźną typizację i dobrze sobie radzą. Np. Smalltalk. I co? I dzięki temu implementacja wzorców jest w nim łatwiejsza. Trudno. Ścisłą kontrolę typów można mieć w Javie; w php - nie.

BTW, Java 1.5 właśnie wprowadza np. autoboxing, aby osłabić kontrolę typów... chociaż to akurat w specyficznym kontekście.

@serafin:
throws w php nie będzie. Raz że to ma też swoje wady. Dwa że w php się nie da. Jak engine ma sprawdzić czy metoda trzyma się specyfikacji throws? Zwłaszcza jak w środku są include, eval, itd. Nie da się. A w trakcie wykonania to nie ma sensu. Co ma zrobić, jak ktoś próbuje rzucić wyjątek bez podania throws? Rzucić CannotThrowExceptionException? Kretynizm.

@anas:
Jakiej obiektowości ci niby brakuje? Dziedziczenie w php jest... Nie ma wielokrotnego dziedziczenia, i dobrze, bo wady takiego rozwiązania są powszechnie znane. Nie ma dziedziczenia publicznego/prywatnego, bo bez dziedziczenia wielokrotnego jest to bezużyteczne.
bela
Cytat
bo to jezyk czysto obiektowy wiec nie ma co nawet gdybac

a czy Smalltalk nie jest czysto obiektowy ?
shima
Cytat(serafin @ 2004-12-16 17:57:59)
A co do typow to nie mowcie mi ze kazdy z was lubi jak mu w c++ przy uzyciu banalnych funkcji wyrzuca ze typ powinien byc (void *) const itp tongue.gif

To nie jest kwestia "lubienia". Lepiej mieć ostrzeżenie niż niejawną konwersję i błąd, którego szukasz 3 dni.
M4chu
@bela: Zabrzmialo jakby tylko smalltalk byl czysto obiektowy a jest wiecej takich jezykow smile.gif
@shima: moze ktos wlasnie 'lubi' sobie szukac bledow smile.gif
anas
Hello.

@hawk:
Brakuje mi wielu rzeczy - co do obiektówki to rzeczywiście dziedziczenie wielokrtone jest krytykowane przez wielu znanych i szanowanych programistów, ale też w wielu przypadkach jest przez nich wskazywane jako jedno z rozwiązań. Co do dziedziczenia po public, private to mylisz dwie kwestie bo nie ma tego w php, a tyczy to się nie dziedziczenia wielokrotnego, a wielopokoleniowego które w php z kolei występuje.

Kolejne to np. przeciążenia(chociaż w PHP5 zostały przygotowane do tego specjalne funkcje takie jak __call() - to i tak uważam to za wadę i traktuję jak by ich nie było), funkcje zaprzyjaźnione, itd.

Można by się tutaj doszukiwać naprawde wielu wygodnych rozwiązań w innych językach, tylko pytanie po co - nie zmierzałem do tego żeby skrytykować php jako języka programowania, bo ciągle go używam i wydaje mi się czymś doskonałym na potrzeby rozwiązań sieci www i pochodnych. Jest co najważniejsze prosty w użyciu, darmowy(bo jeśli chcemy pisać aplikacje pod win32 to nie będzie korzystać z czystego C++ a specyficznego kompilatora - Visual C++, czy Borland Builder C++) i daje w miare duze mozliwosci. To chyba tyle.

pozdrowka

anas
hawk
Co do przeciążania to faktycznie, trochę tego w php brakuje. Ja w każdym razie bym chciał. Ale znowu w języku bez ścisłej kontroli typów nie da się tego dobrze zrobić, bo rozróżnianie przeciążonych metod po typach parametrów odpada.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.