Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Czego wam w tym języku brakuje?
qqrq
post
Post #1





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Witam

Do utworzenia tego tematu skłoniła mnie lektura artykułu/kursu pod linkiem http://www.apohllo.pl/dydaktyka/ruby/intro/. Fajnie by było jakby w PHP-ie pojawiły się takie elementy jak metaprogramowanie, czy pełna obiektowość, prawda (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Swoją drogą zawsze w PHP brakowało mi:

- wielokrotnego dziedziczenia (ech te nawyki z C++...) - wiem że w Symfony są mixin-y, ale dla mnie to półśrodek,
- przeciążania operatorów (zdaję sobię sprawę, że przy obecnej metodzie konwersji zmiennych jest to sprawa raczej przegrana) - podobno częściowo zaimplementowane w jakimś rozszerzeniu PECL, ale nigdy mi się nie udało tego w 100% uruchomić,
- właściwości (wiem, wiem, są metody __get i __set, ale to znów tylko półśrodek),
- takiego zaimplementowania uploadu plików, żeby można było bezproblemowo monitorować postęp wgrywania na serwer (znów - kilka rozwiązań krąży w sieci, ale żadnego nie udało mi się uruchomić, może za głupi jestem...),
EDIT: - przestrzenii nazw (zapomniał bym (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ).

A, i koniecznie przeczytajcie jak autor tekstu w w/w linku wypowiada się o swoich "przebojach" z PHP. Ręce opadają! Tak to jest jak się człowiek za coś bierze od dupy strony...
No i jeszcze jedno - nie programuję ani w Ruby-m, ani w Python-ie.

Ten post edytował qqrq 8.04.2008, 12:22:46
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 37)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(qqrq @ 8.04.2008, 13:17:01 ) *
- wielokrotnego dziedziczenia (ech te nawyki z C++...) - wiem że w Symfony są mixin-y, ale dla mnie to półśrodek,
Bleeeee. Wielodziedziczenie to porażka. Już wiedzę te klasy Validator dziedziczące po Db i po Smarty (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Cytat(qqrq @ 8.04.2008, 13:17:01 ) *
- przeciążania operatorów (zdaję sobię sprawę, że przy obecnej metodzie konwersji zmiennych jest to sprawa raczej przegrana) - podobno częściowo zaimplementowane w jakimś rozszerzeniu PECL, ale nigdy mi się nie udało tego w 100% uruchomić,
Wiesz po co jest przeciążanie operatorów? Żeby Cię z pracy nie zwolnili.
Wystarczy że w aplikacji przeciążysz wszystkie i już nikt się w tym nie połapie. Efekty które daje przeciągnie operatorów można bardzo ładnie osiągnąć implementując wszystkie operacji dla klas jako metody.
W Javie jakoś tego nie ma i nikt nie narzeka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Cytat(qqrq @ 8.04.2008, 13:17:01 ) *
- właściwości (wiem, wiem, są metody __get i __set, ale to znów tylko półśrodek),
Ot bajer. Co Ci dadzą właściwości?
Cytat(qqrq @ 8.04.2008, 13:17:01 ) *
- takiego zaimplementowania uploadu plików, żeby można było bezproblemowo monitorować postęp wgrywania na serwer (znów - kilka rozwiązań krąży w sieci, ale żadnego nie udało mi się uruchomić, może za głupi jestem...).
No ale to nie ma związku z PHP. Tak jest skonstruowany protokół HTTP.

EDIT:
Cytat
EDIT: - przestrzenii nazw (zapomniał bym smile.gif ).
Będą w 5.3, czyli za jakieś dwa/trzy miesiące.
Możesz potestować na snapsach.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Mi php pasuje. Ma wszystko, co trzebam aby byc skryptowym językiem do pisania aplikacji www. Do tych inne języki nadają się słabo ze względu na ich wydajność (np. java).
Wielokrotne dziedziczenie to występek przeciwko prawu naturalnemu i moralności - powinien być karany przez Świątą Inkwizycję OOP. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam.
Go to the top of the page
+Quote Post
qqrq
post
Post #4





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(mike @ 8.04.2008, 13:26:42 ) *
Bleeeee. Wielodziedziczenie to porażka. Już wiedzę te klasy Validator dziedziczące po Db i po Smarty (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


Eee tam, ja to bardzo lubiłem w C++. Mogli by to nawet domyślnie wyłączać w php.ini. Taki pomysł. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat(mike @ 8.04.2008, 13:26:42 ) *
Wiesz po co jest przeciążanie operatorów? Żeby Cię z pracy nie zwolnili.
Wystarczy że w aplikacji przeciążysz wszystkie i już nikt się w tym nie połapie. Efekty które daje przeciągnie operatorów można bardzo ładnie osiągnąć implementując wszystkie operacji dla klas jako metody.


Jasne że można. Tak samo można wogóle nie używać klas i tego typu pierdół, nie? Chodzi o wygodę i prostotę. Idą twoim tokiem myślenia można równie dobrze powiedzieć: "Wiesz po co jest PHP? Żeby cię z pracy nie wywalili - napisałeś jakiś gówniany kod i teraz tylko ty umiesz się w nim połapać.". Głupota programistów nie jest dla mnie w tym miejscu argumentem.

Cytat(mike @ 8.04.2008, 13:26:42 ) *
W Javie jakoś tego nie ma i nikt nie narzeka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


A ja se kurna ponarzekam. (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

Cytat(mike @ 8.04.2008, 13:26:42 ) *
Ot bajer. Co Ci dadzą właściwości?


Bo są wygodne, eleganckie, przyjemnie się ich używa...

Cytat(mike @ 8.04.2008, 13:26:42 ) *
No ale to nie ma związku z PHP. Tak jest skonstruowany protokół HTTP.


Nie chodzi mi tutaj o zady i walety HTTP. Chodzi o to, że sam stan pliku uploadowanego jest w PHP tak przetrzymywany, że monitorowanie tegoż stanu jest mooocno utrudnione. W PERL-u jakoś można.

Cytat(mike @ 8.04.2008, 13:26:42 ) *
EDIT:Będą w 5.3, czyli za jakieś dwa/trzy miesiące.
Możesz potestować na snapsach.


Wot, dobre wieści... (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Wielodziedziczenie byłoby fajne. Nie mogę dać
class Plugin_Database extends AdoDb extends Main_Plugin
{
}
Tego mi brakuje, bo ale nic nie poradzisz, zrestzą to osbliwy przypadek i z innymi się nie spotkałem :]

Niczego więcej mi nie brakuje (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Wszystko jest, aby porządnie napisać działającą stronę WWW. No jedynie ten upload plikow, ale jak powiedział Pan Mike nie od php to zależy.
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Do tych inne języki nadają się słabo ze względu na ich wydajność (np. java).

Mylisz pojęcia. Java jest bardzo wydajna, jej wadą jest pamięciożerność.

Cytat
Wielodziedziczenie byłoby fajne

Nie byłoby fajne. Tak jak napisał @mike. Już widzę te potworki, które dziedziczą po czy się da, tylko po to, by w jednym miejscu były wszystkie metody.

Mi brakuje:
- ścisłej kontroli typów,
- deklarowania typu zmiennej przekazywanej do funkcji (teraz jest tylko array oraz nazwa klasy) - nie pamiętam jak się to fachowo nazywa
- przeciążania metod (tak jak w Javie lub C#)
- domyślnego wywoływania konstruktora rodzica
- rzucania wyjątków, zamiast wyświetlania ostrzeżenia/błędu, przez niektóre funkcje wbudowane w PHP

A rzeczy, na które czekam to:
- przestrzenie nazw
- pełne wsparcie dla unikodu

Ten post edytował batman 8.04.2008, 18:26:26
Go to the top of the page
+Quote Post
.radex
post
Post #7





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


- przeciążanie operatorów
- przeciążanie funkcji
- możliwość (ale nie konieczność) konkretnego określenia typu zmiennej
- wielodziedziczenie
- enumy
- struktury (wiem, że klasy to prawie to samo co struktury, ale jednak.)
- przestrzenie nazw

Coś tam jeszcze było. Jak mi się przypomni to edytuję posta (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Chciałbym także, aby zamiast "->" był inny operator, np kropka ("."). Operator -> jest używany bardzo często, a wpisanie go jest stosunkowo trudne

Trochę wymagający jestem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

EDIT:

Przypomniał mi się fajny bajer. To tylko bajer, ale czasem by się przydał. Chodzi o jakąś strukturę (podobną do np. ifów, switchów itp.), która by pozwalała na pracowanie na jakimś obiekcie. Np:

with($ludek){
cos1 = 'test1';
cos2 = 'test2';
cos3 = 'test3';
cos4 = 'test4';
}

by było równoważne z:
$ludek->cos1 = 'test1';
$ludek->cos2 = 'test2';
$ludek->cos3 = 'test3';
$ludek->cos4 = 'test4';

Ten post edytował radex_p 8.04.2008, 19:19:19
Go to the top of the page
+Quote Post
qqrq
post
Post #8





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Cysiaczek @ 8.04.2008, 13:52:47 ) *
Do tych inne języki nadają się słabo ze względu na ich wydajność (np. java).


A Ruby, Python? Ruby jest o wiele lepiej przemyślany niż PHP (fakt że ma składnię, od której oczopląsu można dostać - to mnie do niego na razie zniechęca). A Python - szybcior.

Cytat(Cysiaczek @ 8.04.2008, 13:52:47 ) *
Wielokrotne dziedziczenie to występek przeciwko prawu naturalnemu i moralności - powinien być karany przez Świątą Inkwizycję OOP. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Cytat(batman @ 8.04.2008, 19:26:06 ) *
Nie byłoby fajne. Tak jak napisał @mike. Już widzę te potworki, które dziedziczą po czy się da, tylko po to, by w jednym miejscu były wszystkie metody.


Eee i tak mnie nie przekonacie. (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)


Cytat(batman @ 8.04.2008, 19:26:06 ) *
- przeciążania metod (tak jak w Javie lub C#)


Tutaj półśrodkiem (znowu) jest zmienna ilość argumentów funkcji/metody i brak deklarowania typu zmiennej przekazywanej do funkcji/metody.

Ten post edytował qqrq 8.04.2008, 20:47:42
Go to the top of the page
+Quote Post
batman
post
Post #9





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Przypomniał mi się fajny bajer. To tylko bajer, ale czasem by się przydał. Chodzi o jakąś strukturę (podobną do np. ifów, switchów itp.), która by pozwalała na pracowanie na jakimś obiekcie.


Takie coś można uzyskać dzięki stdClass:
  1. <?php
  2. $obj = new stdClass();
  3. $obj->var1 = 'a';
  4. $obj->var2 = 'b';
  5. $obj->var2 = 'c';
  6.  
  7. echo $obj->var2;
  8. ?>


Przypomniałem sobie o jeszcze jednej rzeczy, która czasami doprowadza mnie do szewskiej pasji. Wywalić funkcje include, include_once, require i require_once. Stworzyć jedną funkcję, która będzie dołączać pliki, a najlepiej jeśli pliki będą dołączanie automatycznie (oczywiście należy tak to sprytnie zrobić, by nie stracić na wydajności (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).
Go to the top of the page
+Quote Post
mike
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(batman @ 8.04.2008, 22:00:43 ) *
Wywalić funkcje include, include_once, require i require_once. Stworzyć jedną funkcję, która będzie dołączać pliki, a najlepiej jeśli pliki będą dołączanie automatycznie (oczywiście należy tak to sprytnie zrobić, by nie stracić na wydajności (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).
__autoload()

Włączanie plików + autoloader
Go to the top of the page
+Quote Post
gam3r
post
Post #11





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 8.06.2005

Ostrzeżenie: (0%)
-----


jak dla mnie to brakuje:
- przestrzenie nazw (ok beda ale na razie nie ma:P)
- troszke bardziej scisla kontrola typow, rowniez przy argumentach funkcji

to co mi natomiast nie podchodzi:
- zbyt duży bałagan jeśli chodzi o nazewnictwo funkcji, kolejność przekazywanych parametrów przy funkcjach z tej samej rodziny (raz trzeba przekazac jaki uchwyt innym razem nie) itp; generalnie niedbalstwo w przejrzystości nazewnictwa funkcji, klas..
- to że standardowe funkcje nie wyrzucają wyjątków tylko WARNINGI, ERRORY itd... skoro zaimplementowano wyjatki to chyba logiczne jest przerobienie dotychczasowych elementów jezyka by je wykorzystywały intensywnie

szkoda ze zbyt czesto phpowcy tłumaczą się "zachowaniem kompatybilności ze starszymi wersjami" np przy poruszaniu wyżej wymienionych przeze mnie zagadnień
Go to the top of the page
+Quote Post
batman
post
Post #12





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(mike @ 8.04.2008, 22:28:25 ) *

Nie do końca mi o to chodziło. Używanie funkcji do ładowania plików wymaga ode mnie napisanie obsługi tego ładowania plików. A mi zależy na tym, by w "czarodziejski" sposób pliki same się ładowały (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Bardzo podoba mi się rozwiązanie zastosowane w ZF, gdzie wystarczy zarejestrować automatyczne ładowanie klas i problem z głowy. Moim marzeniem jest pominięcie tej deklaracji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
qqrq
post
Post #13





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(gam3r @ 8.04.2008, 22:29:54 ) *
szkoda ze zbyt czesto phpowcy tłumaczą się "zachowaniem kompatybilności ze starszymi wersjami" np przy poruszaniu wyżej wymienionych przeze mnie zagadnień


Temat stary jak świat, poruszany chociażby przy okazji tematu "jak podchodzić do zupy tagów". Ale masz rację - ja bym też to pchnął w przód i nie patrzył za siebię.

Cytat(batman @ 8.04.2008, 22:43:54 ) *
Moim marzeniem jest pominięcie tej deklaracji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


A nie przesadzasz troszkę? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jakaś kontrola dołączania plików musi być, a __autoload to bardzo fajne rozwiązanie.

Ten post edytował qqrq 9.04.2008, 05:20:39
Go to the top of the page
+Quote Post
Pilsener
post
Post #14





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Odczuwam brak:
- funkcji, która dopisałaby ciąg do początku pliku (teraz trzeba wczytywać plik do pamięci, co jest niezbyt wydajne)
- czegoś w rodzaju instrukcji goto w VB - żeby można było sobie skakać po kodzie
- żeby funkcją header (albo jakąś inną) można było pzesyłać tablicę $_POST - ułatwiłoby mi to pracę przy skomplikowanych formularzach wieloetapowych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
- nie wiem czy są jakieś funkcje, które mogłyby powiedzieć coś na temat zużywanych zasobów. Fajnie byłoby odpalić funkcję, która zwróci czas ostatniego parsowania, zużycia pamięci, zmiennej która zajeła najwięcej pamięci itp.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
- funkcji, która dopisałaby ciąg do początku pliku (teraz trzeba wczytywać plik do pamięci, co jest niezbyt wydajne)

Sie nie da.

Cytat
- czegoś w rodzaju instrukcji goto w VB - żeby można było sobie skakać po kodzie

Zajeb.... i jeszcze funkcji spagetti_code( $html_file, $php_file ), ktora polaczy oba pliki w jeden

------------

Cytat
Używanie funkcji do ładowania plików wymaga ode mnie napisanie obsługi tego ładowania plików. A mi zależy na tym, by w "czarodziejski" sposób pliki same się ładowały

Straaasznie trudne, raz porzadnie napiszesz i masz (iteratory po katalogach + tokenizer/regexp) i juz.
Go to the top of the page
+Quote Post
mike
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Czytam ten wątek i zaczynam rozumieć dlaczego PHP jest często uważane za śmietnik i piaskownicę dla dzieci.
Przecież część z wymienionych tu rzeczy to pierdoły jakieś.

Programowanie polega na tworzeniu czegoś dzięki istniejącym narzędziom. I to miał na myśli (mam nadzieję) autor wątku.
Tu chodzi o rzeczy związanych z konstrukcją języka.

A Wy walicie .... bo mi jakiejś funkcji brakuje.
Jesteś programistą, napisz sobie!
To zacznie być problem języka wtedy kiedy on Ci na to nie pozwoli. Do tego momentu problemy szukaj w swoich umiejętnościach.
Go to the top of the page
+Quote Post
.radex
post
Post #17





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Cytat(batman @ 8.04.2008, 22:00:43 ) *
Takie coś można uzyskać dzięki stdClass:
  1. <?php
  2. $obj = new stdClass();
  3. $obj->var1 = 'a';
  4. $obj->var2 = 'b';
  5. $obj->var2 = 'c';
  6.  
  7. echo $obj->var2;
  8. ?>


Nie do końca o to mi chodziło.

Zobacz to:

  1. <?php
  2. $obj = new stdClass();
  3. $obj->var1 = 'a';
  4. $obj->var2 = 'b';
  5. $obj->var2 = 'c';
  6. ?>


i to o co mi chodziło:

Kod
with($ludek){
cos1 = 'test1';
cos2 = 'test2';
cos3 = 'test3';
cos4 = 'test4';
}


widzisz różnicę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
batman
post
Post #18





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
widzisz różnicę?


Widzę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Zawsze można użyć __set i __get.
Go to the top of the page
+Quote Post
AxZx
post
Post #19





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


a jednak nie widzisz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

chodzi o to zeby nie pisac zawsze $this
we flashu tak jest (AS)

masz cos takiego
  1. <?php
  2. $obiekt = new Obiekt;
  3. $obiekt->add('nowy');
  4. $obiekt->resize();
  5. $obiekt->save();
  6. ?>


a koledzie chodzilo o
  1. <?php
  2. with($obiekt){
  3. add('nowy');
  4. resize();
  5. save();
  6. }
  7. ?>
Go to the top of the page
+Quote Post
empathon
post
Post #20





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

Ostrzeżenie: (0%)
-----


Cytat(batman @ 8.04.2008, 19:26:06 ) *
- rzucania wyjątków, zamiast wyświetlania ostrzeżenia/błędu, przez niektóre funkcje wbudowane w PHP

http://pl2.php.net/manual/en/function.set-error-handler.php

Odnośnie wydajności Javy: http://www.webhosting.pl/kategorie/program...ie_szybka_jak_c
Go to the top of the page
+Quote Post
batman
post
Post #21





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
a jednak nie widzisz

Teraz dopiero widzę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

empathon
Wiem, że jest taka funkcja, jednak jest to tylko okrętka. Dzięki temu przechwycisz błąd/ostrzeżenie, następnie przemielisz wielką funkcją, rzucisz wyjątek, a dopiero potem go obsłużysz - kiepska perspektywa.
Go to the top of the page
+Quote Post
apohllo
post
Post #22





Grupa: Zarejestrowani
Postów: 0
Pomógł: 0
Dołączył: 13.04.2008

Ostrzeżenie: (0%)
-----


Doprawdy nie spodziewałem się, że zarejestruję się kiedyś na tym forum, ale skoro trochę osób wchodzi z tego adresu na moją stronę, to wypadałoby się przynajmniej pokrótce odnieść do tego, co tu zostało napisane. W szczególności:

Cytat(qqrq @ 8.04.2008, 13:17:01 ) *
A, i koniecznie przeczytajcie jak autor tekstu w w/w linku wypowiada się o swoich "przebojach" z PHP. Ręce opadają! Tak to jest jak się człowiek za coś bierze od dupy strony...


Nie wiem, czy od złej, czy od dobrej strony zabrałem się do PHP. Zadanie polegało na napisaniu systemu CMS w ciągu dwóch, czy trzech tygodni (dodam, że było to gdzieś w okolicach roku 2004), do strony, która była już zbudowana (przez grafika) w oparciu o statyczny HTML i Flasha. Kupiłem więc książkę z Helionu "Zaawansowane programowanie w PHP" (czy jakoś tak - czerwona okładka z twarzami programistów). Może to właśnie ta lektur sprowadziła mnie na złą drogę? Nikt jednak nie wspominał w niej ani o gotowych systemach CMS (całkiem zrozumiałem), ani o frameworkach do tworzenia stron (to już bardziej dziwne), ani nawet o szablonach (całkowicie niezrozumiałem). A przecież PHP jest językiem pomyślanym do tworzenia stron internetowych, czyż nie?


W każdym razie mając mocno ograniczony czas na przerobienie tej strony, nie mogłem poświęcić tygodnia czasu na zgłębianie jakiegoś gotowego CMS-a, czy innego tego typu rozwiązania. Tym bardziej, że nikt przy projektowaniu tej strony nie myślał w ogóle o tym problemie. Summa summarum - stronę napisałem, ale nie było to zbyt przyjemne doświadczenie, w szczególności biorąc pod uwagę fakt, że wszystko musiałem napisać od zera...

Przy kolejnym projekcie skorzystałem z Mambo - jeden z najlepszych systemów CMS napisanych w PHP. Skoro tak - to powinienem się czegoś nowego na nim nauczyć, większość rzeczy powinna być załatwiona automagicznie, czyż nie?
Prawa jest taka, że Mambo "niewiele" różniło się od mojego autorskiego projektu. Oczywiście nie chodzi mi tutaj o stopień jego zaawansowania od strony użytkownika końcowego, tylko o wnętrze - to co ogląda programiasta.

W szczególności - integracja z bazą danych praktycznie niewiele lepsza niż wywoływanie funkcji API (to, że ktoś to upchnął w jednym obiekcie, to żaden postęp); szablony HTML? - chyba nikt o nich nie słyszał - realizacja wzorca MVC polegała na umieszczeniu części kodu w jednym pliku, gdzie była przewaga PHP, a części w drugim, gdzie była przewaga HTML-a; migracje schematu DB - a co to takiego?; wtyczki - integracja z resztą systemu gorzej niż łopatologiczna; etc. etc.

Czy doprawdy zabrałem się za PHP od złej strony? W każdym razie to co oferował wtedy ten język (i nadal oferuje), a także to co powstało przy jego użyciu - raczej mi się nie spodobało...


A co do samego języka, jako języka (a nie platformy budowania aplikacji internetowych) - ma on parę zalet:
- hosting jest wszędzie
- jest w miarę szybki
- uruchomienie aplikacji w PHP jest bardzo proste
- jak ktoś zna nieco C lub Javę, to czuje się (niemal) jak w domu

To chyba wszystko dobrego co na jego temat mogę napisać. Nie chcę pisać nic złego, dlatego jeszcze raz zapytam o takie cechy (które można znaleźć w Rubim i/lub Phytonie):
- bloki (a co to w ogóle jest? po co to komu? apohllo.pl/dydaktyka/ruby/intro/struktury-jezyka)
- obiektowość - przecież jest w PHP! ok...
* ...a dokąd jest wysyłane np. mysql_query? do aktywnej bazy danych, tzn. jest sobie jakaś zmienna globalna (ktoś słyszał o wątkach?), która trzyma tę informację;
* ...a czym jest łańcuch znaków? - co za głupie pytanie, łańcuchem znaków... ok teraz rozumiem, do czego służy funkcja strlen; tablica? - tablicą, hmm, jej rozmiar badamy przez count, a obiekt? - obiektem, ilość jego "właściwości" badamy przez niech zgadę... prop_count, ależ skąd count! WTF?
- metaprogramowanie - nie będę się nad tym rozwodził, napiszę tylko tyle, że dzięki niemu np. dodanie wersjonowania (przechowywania historii modyfikacji stron) w Frameworku Ruby on Rails, sprowadza się do zainstalowania pluginu (jedna linijka w konsoli) i dodania odpowiedniego wpisu w modelu (acts_as_versioned), dodanie komentarzy do strony - jw.; dodanie ocen - jw.; wykorzystanie nowego języka szablonów - jw., etc., etc.

Podsumowując - nie będę mówił, że PHP jest zły, albo Ruby najlepszy, bo nie jest to prawda. Czasami jednak warto zapoznać się z innymi językami programownia (w szczególności polecam: LISP-a, Smalltalka oraz Erlanga), żeby zobaczyć, że pewne rzeczy mogą być prostsze, oczywistsze, przyjemniejsze, bardziej spójne, mniej podatne na błędy etc. etc. niż w naszym ukochanym języku. To trochę tak jak z nauką języków obcych - zawsze można powiedzięć, że polski jest najlepszy, najlepsiejszy, najnasiejszy i najcudowniejszy, ale jednak obecnie najwięcej osób mówi w angielskim, a kiedyś łacina była w powszechnym użyciu. Kiedy zna się te języki, to przynajmniej można spojrzeć na polski z innej strony i odkryć, że nie każdy język jest fleksyjny (vide angielski), a niektóre bardziej ekspresywne (vide łacina)...

Ten post edytował apohllo 13.04.2008, 15:37:15
Go to the top of the page
+Quote Post
AxZx
post
Post #23





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


apohllo: piszesz tak jakby ktos tutaj pisal ze PHP jest najlepszy, ze jest to jedyny sluszny jezyk - nie jest tak, bo tak jak napisales nie jest to najlepszy jezyk... ale da sie na tym zarobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
jezeli beda hostingi ruby to oczywiscie wtedy bedzie mozna sie bardziej zaglebic w ten jezyk. narazie ja przynajmniej traktuje to jako odskocznia od php:)

pozdrawiam
Go to the top of the page
+Quote Post
apohllo
post
Post #24





Grupa: Zarejestrowani
Postów: 0
Pomógł: 0
Dołączył: 13.04.2008

Ostrzeżenie: (0%)
-----


Cytat
apohllo: piszesz tak jakby ktos tutaj pisal ze PHP jest najlepszy, ze jest to jedyny sluszny jezyk - nie jest tak, bo tak jak napisales nie jest to najlepszy jezyk... ale da sie na tym zarobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


No coż z takimi opiniami najczęściej się spotykam, kiedy zaczynam coś mówić ludziom piszącym w PHP o Rubim... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A co do zarobków - zwykla są lepsze niż dla programistów PHP:
- bo ludzi piszących w Rubim jest niewielu
- bo tworzenie systemu w RoR może być znacznie wydajniejsze.
Z ciekawostek warto zobaczyć tę ofertę pracy.

Cytat
jezeli beda hostingi ruby to oczywiscie wtedy bedzie mozna sie bardziej zaglebic w ten jezyk. narazie ja przynajmniej traktuje to jako odskocznia od php:)


w USA i Europie jest już całkiem sporo firm, które hostują Rubiego/Railsy.
W Polsce jest również coraz lepiej. W tej chwili najlepszą ofertę ma chyba megiteam.pl

Ja również pozdrawiam.
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #25





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@apohllo
Mówisz że są oferty pracy, mówisz że są serwery, ale ja do tej pory nie mogę tworzyć na PostgeSQL bo ludzie używają MySQL, więc że są nic nie zmienia, dopóki nie będzie ich mnóstwo. Jak kogoś pociąga ten język niech się go uczy.

Co do bloków, to mi się nie podobają, ale to moja sprawa, tak jak mi brakuje możliwości mocnego typowania przyjmowanych argumentów.
To że obiektowość w PHP kuleje to tez fakt, chociażby wspaniałość (to co ostatnio jedna osoba na tym forum pytała) zwracania zamiast instancji null, czy też nie wyrzucanie wyjątków (a jak już to jednego typu z opisowym opisem).
Co do konsekwencji nazewnictwa to się zgodzę, że go nie ma, ale przykład jest jest nietrafiony, bo to nie C gdzie mamy char*, tu jest to inny typ i powinien mieć swoje (i ma) działania. Co prawda powinni to ubrać w klasy, ale to już inny temat.
Co do wygody, to dobrze zbudowana aplikacja do zmiany, podłączenia plugin'ów wymaga tylko wpisu w konfiguracji... ale sam zauważałeś że darmowy CMS jest do niczego pod względem kodu, tak niestety jest że większość kody to śmietniki, są lepsze projekty, które się na szczęście rozwijają. (moim zdaniem np. Synfony, Propel)
Go to the top of the page
+Quote Post
apohllo
post
Post #26





Grupa: Zarejestrowani
Postów: 0
Pomógł: 0
Dołączył: 13.04.2008

Ostrzeżenie: (0%)
-----


Cytat
Co do bloków, to mi się nie podobają, ale to moja sprawa

Bloki, pośrod wielu interesujacych własności pozwalają znacznie uprościć kod, poprawiając jego czytelność - oczywiście o ile przeskoczy się "barierę bloku" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
tak jak mi brakuje możliwości mocnego typowania przyjmowanych argumentów

To jak wszystko - ma swoje wady i zalety (przy czym rozumiem, że chodzi Ci o statyczne (vs. dynamiczne) typizowanie - akurat Ruby jest silnie (vs. slabo) typizowany). Ale jeśli chcesz wykorzystać je do tworzenia "bezpiecznej" warstwy aplikacji, to możesz skorzystać np. z JRubiego, który pozwala na wykorzystanie w Rubim kodu Javy i vice versa.


Cytat
Co do konsekwencji nazewnictwa to się zgodzę, że go nie ma, ale przykład jest jest nietrafiony, bo to nie C gdzie mamy char*, tu jest to inny typ i powinien mieć swoje (i ma) działania.


Wyjaśnię może o co dokładnie mi chodziło - ponieważ każde z tych wywołań mówi nam coś o rozmiarze czegoś, to najlepiej byłoby, żeby były podobne/takie same. Dodam, że w Ruby można
to zrobić tak:

[1, 2, 3].size - zwraca rozmiar tablicy
"abc".size - zwraca długość łańcucha znaków
object.instance_variables.size - zwraca liczbę zmiennych instancyjnych danego obiektu

Nie trzeba zaglądać do API żeby odgadnąć znaczenie tych wywołań...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #27





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Tylko zalozenia projektowe jezykow byly inne:
- Ruby mial wprowadzac jak najmniej zaskoczenia (LOFA czy jakos tak), i dzialac tak jak myslisz ze bedzie dzialal
- a PHP - byl uproszczeniem Perla do przetwarzania formularzy i widocznie nikt sie za bardzo api nie przejmowal (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Jabol
post
Post #28





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(dr_bonzo @ 14.04.2008, 03:06:41 ) *
- a PHP - byl uproszczeniem Perla do przetwarzania formularzy i widocznie nikt sie za bardzo api nie przejmowal (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

I to wyjasnie wg mnie najwieksza wade php: jest to jezyk totalnie niekonsekwentny! A poza tym tak jak juz ktos wspominal, -> do wybierania elementow obiektu to totalna porazka w jezyku zorientowanym obiektowo.
Natomiast php ma ceche, ktorej wiele jezykow skryptowych nie posiada: mozliwosc typowania zmiennych w parametrach. Java mnie nauczyla jak to jest wazne. Inna sprawa, ze system typow w php to tez totalna porazka (czasem mam wrazenie, ze php dwa type: obiekt i typ elementarny - nie ma rozroznienia pomiedzy roznymi typami elementarnymi).

Ten post edytował Jabol 14.04.2008, 08:27:14
Go to the top of the page
+Quote Post
qqrq
post
Post #29





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Pilsener @ 9.04.2008, 11:54:44 ) *
- czegoś w rodzaju instrukcji goto w VB - żeby można było sobie skakać po kodzie


Mógłbym się w sumie powołać na to co napisałem wcześniej - głupota użytkowników to nie argument, ale... No właśnie, czy naprawdę chcielibyśmy takiej funkcji? Czasem może by i upraszczała kod, ale na pewno śmietnik zwiększyłby się n-krotnie. Poza tym wydaje mi się, że dobrze napisany kod nie potrzebuje tej funkcjonalności (i wcale nie będzie przez to mniej elegancki, czy czytelny) - u nas na studiach stanowczo odradzali używania goto przy większych projektach w C++, a w sumie raczej nie było okazji żeby sobie poskikać. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat(Pilsener @ 9.04.2008, 11:54:44 ) *
- żeby funkcją header (albo jakąś inną) można było pzesyłać tablicę $_POST - ułatwiłoby mi to pracę przy skomplikowanych formularzach wieloetapowych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


W Symfony masz zmienne flash.

Cytat(mike @ 9.04.2008, 12:32:06 ) *
Jesteś programistą, napisz sobie!


Yeah (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)

Cytat(apohllo @ 13.04.2008, 16:35:08 ) *
Doprawdy nie spodziewałem się, że zarejestruję się kiedyś na tym forum


Hehe, chyba moja wina... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat(apohllo @ 13.04.2008, 16:35:08 ) *
Nie wiem, czy od złej, czy od dobrej strony zabrałem się do PHP. Zadanie polegało na napisaniu systemu CMS w ciągu dwóch, czy trzech tygodni (dodam, że było to gdzieś w okolicach roku 2004), do strony, która była już zbudowana (przez grafika) w oparciu o statyczny HTML i Flasha. Kupiłem więc książkę z Helionu "Zaawansowane programowanie w PHP" (czy jakoś tak - czerwona okładka z twarzami programistów). Może to właśnie ta lektur sprowadziła mnie na złą drogę? Nikt jednak nie wspominał w niej ani o gotowych systemach CMS (całkiem zrozumiałem), ani o frameworkach do tworzenia stron (to już bardziej dziwne), ani nawet o szablonach (całkowicie niezrozumiałem). A przecież PHP jest językiem pomyślanym do tworzenia stron internetowych, czyż nie?


Skoczyłeś od razu na głęboką wodę nie mając pod ręką odpowiednich narzędzi. Inna sprawa, że to było dawno - chyba nie było wtedy nawet PHP 5 (sorry jeśli się mylę), albo dopiero raczkowało. Jakbyś się do PHP-a wziął tak jak do Ruby-ego, czyli z porządnym frameworkiem, to sprawa wyglądałaby zgoła inaczej. A co do tych książek, to miałem kiedyś "PHP 5 zaawansowane programowanie" (czy jakoś tak) i to raczej kiepski wybór jeśli chodzi o naukę tworzenia stron w PHP. Autorzy koncentrują się tam raczej na (tytułowym) programowaniu, czyli implementacji niektórych technik programistycznych w PHP. Trzeba było kupić "Kurs tworzenia stron internetowych PHP/MySQL", albo coś podobnego. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat(apohllo @ 13.04.2008, 16:35:08 ) *
W każdym razie to co oferował wtedy ten język (i nadal oferuje), a także to co powstało przy jego użyciu - raczej mi się nie spodobało...


Weź pod uwagę, że trochę wody w Wiśle upłynęło i teraz możesz robić sobie dobrze takimi wynalazkami jak Symfony. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat(apohllo @ 13.04.2008, 16:35:08 ) *
- bloki (a co to w ogóle jest? po co to komu? apohllo.pl/dydaktyka/ruby/intro/struktury-jezyka)
- obiektowość - przecież jest w PHP! ok...
* ...a dokąd jest wysyłane np. mysql_query? do aktywnej bazy danych, tzn. jest sobie jakaś zmienna globalna (ktoś słyszał o wątkach?), która trzyma tę informację;
* ...a czym jest łańcuch znaków? - co za głupie pytanie, łańcuchem znaków... ok teraz rozumiem, do czego służy funkcja strlen; tablica? - tablicą, hmm, jej rozmiar badamy przez count, a obiekt? - obiektem, ilość jego "właściwości" badamy przez niech zgadę... prop_count, ależ skąd count! WTF?
- metaprogramowanie - nie będę się nad tym rozwodził, napiszę tylko tyle, że dzięki niemu np. dodanie wersjonowania (przechowywania historii modyfikacji stron) w Frameworku Ruby on Rails, sprowadza się do zainstalowania pluginu (jedna linijka w konsoli) i dodania odpowiedniego wpisu w modelu (acts_as_versioned), dodanie komentarzy do strony - jw.; dodanie ocen - jw.; wykorzystanie nowego języka szablonów - jw., etc., etc.


- bloki - bardzo fajna rzecz, ogromne uproszczenie,
- obiektowość
* a Propel, a Doctrine?
* eee, jesteś zbyt wygodnicki... (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
- pijesz do możliwości modyfikacji obiektu "w locie"? A dziedziczenie? Czy nie zapewnia nam podobnej funkcjonalności?
Go to the top of the page
+Quote Post
nasty
post
Post #30





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Moim zdaniem nie ma sensu zmieniać tak gwałtownie PHP jak to niektórzy proponują przez dodanie ścisłej kontroli typów; takie właściwości charakteryzują PHP i dzięki nim on jest właśnie wybierany do poszczególnych zadań.

Tylko przydałoby się tylko w php napisać jakiś mechanizm do dzielenia aplikacji na moduły; pojedyncze elementy wykonywalnego pliku, coś w stylu .dll. ale to tylko szczegół... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował nasty 15.04.2008, 21:07:00
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #31





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(nasty @ 15.04.2008, 22:05:59 ) *
Moim zdaniem nie ma sensu zmieniać tak gwałtownie PHP jak to niektórzy proponują przez dodanie ścisłej kontroli typów; takie właściwości charakteryzują PHP i dzięki nim on jest właśnie wybierany do poszczególnych zadań.


Czytałbyś łaskawie ze zrozumieniem, mowa jest o dodaniu możliwości wymuszenia typu przyjmowanego przez metodę (tudzież funkcję) a nie o tym aby to było wymagane. Bo doskonale wiem, że wymuszenie na wszystkich tego jest niemożliwe, ale osoby co piszą bardziej obiektowo mieli by lepsze życie (a możliwość przeciążania metod to było by cudowne, w końcu było by wiadomo co dane metody przyjmują bez dokumentacji)

P.S.
Bo już masz możliwość wymuszenia typu obieków i array, a brakuje typów podstawowych.
Go to the top of the page
+Quote Post
xbitdesigns
post
Post #32





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.04.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat(AxZx @ 9.04.2008, 17:02:35 ) *
(...)
a koledzie chodzilo o
  1. <?php
  2. with($obiekt){
  3. add('nowy');
  4. resize();
  5. save();
  6. }
  7. ?>


Sorry, ze odkopuje.

  1. <?php
  2. $klasa = new Klasa;
  3.  
  4. $klasa->metoda()->metoda2()->pole;
  5. ?>


... albo ...

  1. <?php
  2. class Klasa
  3. {
  4.  public function test(){
  5.  (...) 
  6.  return $this; // zwraca "siebie", ale nie kopie, tylko odwolanie.
  7.  }
  8.  
  9.  public function zrobCosPoTest()
  10. {
  11. (...)
  12.  return $this;
  13. }
  14.  
  15. public function odpalCalosc()
  16. {
  17.  $this->test()->zrobCosPoTest();
  18.  
  19.  // pozamiatane...
  20.  
  21. }
  22.  
  23. }
  24. ?>


Tak sie da. Ale zeby to bylo naprawde cool (tak jak np. u mnie, gdzie odczytuje dane z bazy danych $tabela->id()->imie) trzeba troszke to php jednak znac.

Przy odrobienie checi w php mozna zrealizowac sobie swietne srodkowisko pracy, a i wiekszosc rzeczy o ktorych mowicie jest do zrobienia. Tylko nie trzeba czekac "az zrobia" tylko samemu sprobowac cos wymyslec i wykazac sie nieco ta swoja kreatywnoscia. Moze czasami lepiej sie zastanowic, jak rozwiazac dany problem przy uzyciu zabawek ktore mam, a nie marudzic, ze nie dali gotowych.

Ten post edytował xbitdesigns 16.06.2008, 02:40:15
Go to the top of the page
+Quote Post
.radex
post
Post #33





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Cytat(xbitdesigns @ 16.06.2008, 03:33:43 ) *
  1. <?php
  2. $klasa = new Klasa;
  3.  
  4. $klasa->metoda()->metoda2()->pole;
  5. ?>


No dobra, ale to nie to samo. Mniejsza czytelność.

Co prawda można zrobić tak:

  1. <?php
  2. $klasa = new Klasa;
  3.  
  4. $klasa->
  5. metoda()->
  6. metoda2()->
  7. pole;
  8. ?>


Ale to też nie to samo. Można się pogubić.
Go to the top of the page
+Quote Post
mike
post
Post #34





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Idea fluent interfaces powstała dla czytelności. Nie wiem czego tam nie widzisz ale dla większości to jest bardzo czytelne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
pyro
post
Post #35





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Powracając do głównego wątku mnie w PHP brakuje tylko funkcji, która by mi parzyła kawę ;/ wiec jak widac niewiele
Go to the top of the page
+Quote Post
mike
post
Post #36





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Mi brakuje tylko kilku rzeczy:
1. Wątki;
2. Przestrzenie nazw (to będzie);
3. Blok finally dla try...catch (z tego "wspaniałomyślni" deweloperzy się wycofali a miało być w PHP 6.0)
Go to the top of the page
+Quote Post
.radex
post
Post #37





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Cytat(mike @ 16.06.2008, 14:22:00 ) *
Idea fluent interfaces powstała dla czytelności. Nie wiem czego tam nie widzisz ale dla większości to jest bardzo czytelne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


No pewnie. To jest przydatne i często z tego korzystam, ale to nie ten sam efekt, o jakim myślałem.
Go to the top of the page
+Quote Post
lucassus
post
Post #38





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.01.2008

Ostrzeżenie: (0%)
-----


Największą wadą PHP jest
1. Brak pełnej obiektowości, nie można np. sobie pisać
"Hello World ".trim();

2. Strasznie rozwlekła składnia języka, te
->, nawiasy, klamry, $, itp.

3. przeciążanie metod jest jakieś dziwne, tj. nie mogę sobie zapisać:
class Froo {
function bar(array $v) {}
fundcion bar(int $v) {}
//.. itp.
}

4. Śmietnik w API

5. W porównaniu do Rubiego trzeba pisać bardzo dużo kody, a wiadomo - im więcej kodu, tym więcej błędów.

6. ale największą wadę tego języka jest jego prostota, co niestety działa jak moron magnet :/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 15:16