escaflowne
14.12.2004, 15:53:21
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
14.12.2004, 16:27:31
Hmm temat chyba dużo razy był ale powiem

C++,Java,C,C# mają typy tzn.

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

A mogliby zrobić deklaracje typów
patrycjusz
14.12.2004, 20:23:45
trampek z czerwonymi sznurówkami, wina , niebieskich kolczyków, jajek z pieczątkami UE i hmm,... coś jeszcze miałem na myśli hmmm...

aaaa wiem smażonych kurczaków

takich kubełków jak sa w KFC
spenalzo
14.12.2004, 22:19:29
Wydaje mi sie, że php brakuje obsługi wątków - czasami, rzadko ale zawsze, były by przydatne.
anas
16.12.2004, 12:46:22
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
16.12.2004, 13:10:05
Cytat(serafin @ 2004-12-14 17:15:24)
Poza tym kontrola typow to jest chyba najmniej lubiana przez programistow rzecz

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.
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

".
scanner
16.12.2004, 13:59:27
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
16.12.2004, 14:46:03
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
16.12.2004, 18:18:32
Cytat
bo to jezyk czysto obiektowy wiec nie ma co nawet gdybac
a czy Smalltalk nie jest czysto obiektowy ?
shima
16.12.2004, 18:26:41
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

To nie jest kwestia "lubienia". Lepiej mieć ostrzeżenie niż niejawną konwersję i błąd, którego szukasz 3 dni.
M4chu
16.12.2004, 18:28:36
@bela: Zabrzmialo jakby tylko smalltalk byl czysto obiektowy a jest wiecej takich jezykow

@shima: moze ktos wlasnie 'lubi' sobie szukac bledow
anas
16.12.2004, 19:20:51
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
17.12.2004, 11:10:06
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.