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
 
Start new topic
Odpowiedzi
apohllo
post
Post #2





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

Posty w temacie
- qqrq   [PHP]Czego wam w tym języku brakuje?   8.04.2008, 12:17:01
- - mike   Cytat(qqrq @ 8.04.2008, 13:17:01 ) - ...   8.04.2008, 12:26:42
|- - qqrq   Cytat(mike @ 8.04.2008, 13:26:42 ) Bl...   8.04.2008, 13:04:18
- - Cysiaczek   Mi php pasuje. Ma wszystko, co trzebam aby byc skr...   8.04.2008, 12:52:47
- - bim2   Wielodziedziczenie byłoby fajne. Nie mogę dać clas...   8.04.2008, 18:09:53
- - batman   CytatDo tych inne języki nadają si...   8.04.2008, 18:26:06
|- - empathon   Cytat(batman @ 8.04.2008, 19:26:06 ) ...   9.04.2008, 18:18:18
- - radex_p   - przeciążanie operatorów - przeci...   8.04.2008, 18:33:43
- - qqrq   Cytat(Cysiaczek @ 8.04.2008, 13:52:47...   8.04.2008, 20:47:03
- - batman   CytatPrzypomniał mi się fajny bajer. To tylko baje...   8.04.2008, 21:00:43
|- - mike   Cytat(batman @ 8.04.2008, 22:00:43 ) ...   8.04.2008, 21:28:25
|- - radex_p   Cytat(batman @ 8.04.2008, 22:00:43 ) ...   9.04.2008, 17:25:52
- - gam3r   jak dla mnie to brakuje: - przestrzenie nazw (ok b...   8.04.2008, 21:29:54
- - batman   Cytat(mike @ 8.04.2008, 22:28:25 ) __...   8.04.2008, 21:43:54
- - qqrq   Cytat(gam3r @ 8.04.2008, 22:29:54 ) s...   9.04.2008, 05:20:18
- - Pilsener   Odczuwam brak: - funkcji, która dopisałaby ciąg do...   9.04.2008, 10:54:44
- - dr_bonzo   Cytat- funkcji, która dopisałaby ciąg do początku ...   9.04.2008, 11:24:08
- - mike   Czytam ten wątek i zaczynam rozumieć dlaczego PHP ...   9.04.2008, 11:32:06
- - batman   Cytatwidzisz różnicę? Widzę Zawsze można użyć _...   9.04.2008, 17:34:36
- - AxZx   a jednak nie widzisz chodzi o to zeby nie pisac ...   9.04.2008, 18:02:35
|- - xbitdesigns   Cytat(AxZx @ 9.04.2008, 17:02:35 ) (....   16.06.2008, 02:33:43
|- - radex_p   Cytat(xbitdesigns @ 16.06.2008, 03:33...   16.06.2008, 13:18:40
- - batman   Cytata jednak nie widzisz Teraz dopiero widzę em...   9.04.2008, 18:57:45
- - apohllo   Doprawdy nie spodziewałem się, że z...   13.04.2008, 15:35:08
- - AxZx   apohllo: piszesz tak jakby ktos tutaj pisal ze PHP...   13.04.2008, 16:12:36
- - apohllo   Cytatapohllo: piszesz tak jakby ktos tutaj pisal ...   13.04.2008, 19:00:35
- - Sedziwoj   @apohllo Mówisz że są oferty pracy, mówisz że są s...   13.04.2008, 20:13:02
- - apohllo   CytatCo do bloków, to mi się nie podobają, ale to ...   14.04.2008, 01:05:12
- - dr_bonzo   Tylko zalozenia projektowe jezykow byly inne: - Ru...   14.04.2008, 02:06:41
|- - Jabol   Cytat(dr_bonzo @ 14.04.2008, 03:06:41...   14.04.2008, 08:26:13
- - qqrq   Cytat(Pilsener @ 9.04.2008, 11:54:44 ...   15.04.2008, 14:47:59
- - nasty   Moim zdaniem nie ma sensu zmieniać tak gwa...   15.04.2008, 21:05:59
|- - Sedziwoj   Cytat(nasty @ 15.04.2008, 22:05:59 ) ...   15.04.2008, 21:32:21
- - mike   Idea fluent interfaces powstała dla czytelności. N...   16.06.2008, 13:22:00
|- - radex_p   Cytat(mike @ 16.06.2008, 14:22:00 ) I...   16.06.2008, 13:31:48
- - pyro   Powracając do głównego wątku mnie w PHP brakuje ty...   16.06.2008, 13:22:26
- - mike   Mi brakuje tylko kilku rzeczy: 1. Wątki; 2. Przest...   16.06.2008, 13:24:45
- - lucassus   Największą wadą PHP jest 1. Brak pełnej obiektowo...   17.06.2008, 12:04:02


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: 4.10.2025 - 11:59