Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP kontra J2EE
Forum PHP.pl > Inne > Hydepark
dragossani
Od dłuższego czasu szukam platformy, która pozwoliłaby mi tworzenie złożonych aplikacji internetowych tak swobodnie jak np. lokalnych programów w Delphi. Technologii wydajnej, wieloplatformowej od strony użytkownika (wszystkie podstawowe przeglądarki w Windowsie, Linuxie i innych), od strony serwera dającej się wdrażać pod Linuxem.
Przez ostatni rok nie miałem wątpliwości, że php spełnia moje oczekiwania. Jest elastyczny, wieloplatformowy i zwykle nadąża za technologiami. Zacząłem jednak dostrzegać liczne niedogodności związane z php. Podstawową jest to, że komunikacja z użytkownikiem odbywa się na bazie HTML-a. Interfejs jest przez to baaardzo ograniczony (porównajcie z kontrolkami w Delphi). A już prawdziwym przekleństwem programisty jest to, że skrypt wykonuje się, generuje stronę, a potem się wyłącza i traci kontakt z użytkownikiem (HTML to niestety stateless protocol). I jak tu mieć pod kontrolą taką aplikację? Oczywiście prawie wszystko da się obejść, ale jakim kosztem?
Zacząłem więc rozglądać się za alternatywą i natknąłem się na coś takiego jak J2EE. Java to dla mnie na razie czarna magia, ale człowiek uczy się całe życie. :wink: Wybadałem teren od strony serwerowej. Wiem, że kompletną platformę oferuje Oracle w postaci ORACLE 9i. Tyle, że to rozwiązanie za kupę szmalu. Ale jak to zwykle bywa, są też alternatywy. Np. zestaw Postgres + Apache + JBoss. Szczególnie ten ostatni element jest interesujący. Ale przechodząc do rzeczy, po pierwsze: chciałem wiedzieć jaka jest wasza opinia o php, czy spełnia wasze oczekiwania? Po drugie: czy używaliście Javy jako platformy dla aplikacji rozproszonej? Czy wie ktoś jakie są jej wady, a jakie zalety?
Proponuje zajrzeć ca pewną stronę: http://www.esupplychain.pl/polish/technology.html. Przejrzenie jej pozwaliło mi zestawić obok siebie sporo pojęć.
talee
Cytat
... (HTML to niestety stateless protocol). I jak tu mieć pod kontrolą taką aplikację? Oczywiście prawie wszystko da się obejść, ale jakim kosztem? ...


Mam cichą nadzieję, że miałeś na myśli protokół HTTP. A koszty nie są znowu tak wysokie. Wystarczy skorzystać z mechanizmu sesji :wink: .
Seth
Ja przez dluzszy czas pracowalem i parcuje na ASP. Jest to wzasadzie to samo co php ale jest naprawde poteznym srodowiskiem mogacym wpelni kontorlowac kazdy aspekt systemu i odpowiednich programow, po czym przesylac np. wyniki do clienta.

Aplikacje typu Aplety Javy i ActiveX maja jedna wade "instaluja" sie na sprzecie clienta. Podczas gdy statyczna strona wyswietla tylko wynik bez potrzeby dodatkowych modulow po stronie clienta.

Uzycie jezyka server-sidowego czy kontrolek lub apletow zalezy od specyficznych wymagan aplikacji i ciezko powiedziec co jest lepsze. Przykladem moze byc Audiogalaxy. Polaczono tam aplikacje po stronie clienta z serwer-sidowym interfejsem.
GeoS
Cytat
Cytat
... (HTML to niestety stateless protocol). I jak tu mieć pod kontrolą taką aplikację? Oczywiście prawie wszystko da się obejść, ale jakim kosztem? ...


Mam cichą nadzieję, że miałeś na myśli protokół HTTP. A koszty nie są znowu tak wysokie. Wystarczy skorzystać z mechanizmu sesji :wink: .


Co do pomylki, HTML faktycznie nie jest protokolem, tylko technologia smile.gif

Jesli chodzi o kontrole, to chyba nie za bardzo zrozumiales o co chodzilo w tej ironii. php w bardzo ograniczony sposob daje mozliwosc INTERAKCJI z klientem. Taki pierwszy lepszy przyklad - nigdy nie zliczysz w sposob bezbledny czasu usera spedzonego na twojej witrynie!!

W php faktycznie brakuje mozliwosci interakcyjnych z klientem. On przesyla dane i po chwili serwer mu zwraca co nalezy. Nie ma tej warstwy posredniej, dajacej wiele mozliwosci.
I tu kolejny bardzo prosty przyklad - nikt nie napisze naprawde wydajnego czata w php (ktory bylby na poziomie wydajnosci javoskich apletow).

Juz kiedys na forum ten temat chyba byl poruszany. Staralem sie wtedy zasugerowac, ze przyszlosc nalezy do szerokorozumianej Javy biggrin.gif
dragossani
Cytat
Mam cichą nadzieję, że miałeś na myśli protokół HTTP.

Oczywiście racja. :? Palce czasem są szybsze niż odruchy trzeźwości myślenia.

Cytat
A koszty nie są znowu tak wysokie. Wystarczy skorzystać z mechanizmu sesji :wink:.

Nie do końca to miałem na myśli. Sesje ok, ale jak masz np. jakąś drzewkową strukturę danych, gdzie użytkownik musi wypełnić formularz, a jednym z pól jest np. opis samochodu (marka -> przeładowanie modeli z bazy, model -> przeładowanie typów z bazy, typ -> itd.); albo dodanie osoby lub firmy do umowy ubezpieczenia w dowolnym charakterze (przy wielokrotności stron w umowie) i każda firma może mieć oddziały albo dodatkowe adresy itd. to przeładowywanie i nawigacja (zachowanie spójności i hierarchii danych) może doprowadzić do bulu głowy. A np. w Delphim buduje się odpowiedni formularz z otwieranymi modalnymi oknami dialogowymi, a przy zamykaniu eksportuje komplet danych. To zupełnie inny komfort pracy.
Poza tym dane od użytkownika nie płyną nieustannie - chat'a (nie mówiąc już o czymś jeszcze bardziej interaktywnym) łatwo nie napiszesz. Można oczywiście próbować sztuczek ze streaming html (raczej na pewno html :wink: ), ale to już jest właśnie to, co miałem na myśli mówiąc o nieporęczności pewnych mechanizmów.

Cytat
Uzycie jezyka server-sidowego czy kontrolek lub apletow zalezy od specyficznych wymagan aplikacji i ciezko powiedziec co jest lepsze. Przykladem moze byc Audiogalaxy. Polaczono tam aplikacje po stronie clienta z serwer-sidowym interfejsem.

Takie rozwiązanie jest rzeczywiście mniej wygodne. Ja mówię o czymś takim jak np. gra w bilard na yahoo.com (grał ktoś?). Wchodzimy przez dowolną przeglądarkę z konsolą javy (IE, Szkapa, Opera, albo cokolwiek z linuxa - byle był w systemie Java Runtime Enviroment, a domyślnie jest) i mamy grę gdzie widzisz wszystkich uczestników on-line, każdy ruch myszki danego uczestnika. Żadnych pozarzeglądarkowych interfejsów i pełna interaktywność. Po stronie klienta chodzi aplet, a po stronie serwera J2EE, który spełnia rolę ASP (komunikuje się z bazą i systemem) - tyle, że bezustannie. Co wy na to?
dragossani
Cytat
W php faktycznie brakuje mozliwosci interakcyjnych z klientem. On przesyla dane i po chwili serwer mu zwraca co nalezy. Nie ma tej warstwy posredniej, dajacej wiele mozliwosci.
I tu kolejny bardzo prosty przyklad - nikt nie napisze naprawde wydajnego czata w php (ktory bylby na poziomie wydajnosci javoskich apletow).

To właśnie mam na myśli. Próbował ktoś napisać w php program do ćwiczenia prędkości pisania? Tak, żeby user pisząc miał non-stop statystykę? Radzę nie próbować - szkoda czasu.
Mam nadzieję, że nikt nie zacznie mi teraz wytykać "zdrady php". php to świetne narzędzie, ale ma że tak powiem "za ktrótkie rączki". :wink:
hyper
Nie rozumiem w ogóle tej dyskusji. Pytasz się o to, który język jest lepszy,
nie biorąc pod uwagę, że jeden z nich to język działający po stronie serwera,
zaś drugi po stronie klienta. php nie został przeznaczony do budowania
interfejsów użytkownika, to się robi w HTML i JS. Nie zarzucaj php braku
funkcji do obsługi UI, bo nie po to został stworzony. Poza tym wszystkie z
wymienionych rzeczy (może nie licząc czata) da się zrobić używając php,
HTML oraz dynamicznych źródeł danych XML czy też JS.

Wybór jest naprawdę prosty. Jeśli potrzebujesz rozbudowanego i wygodnego menu użytkownika to wybierasz J2EE, jeśli zaś cenisz łatwość i
szybkość pisania aplikacji to wybierasz php.
hyper
Cytat
To właśnie mam na myśli. Próbował ktoś napisać w php program do ćwiczenia prędkości pisania? Tak, żeby user pisząc miał non-stop statystykę? Radzę nie próbować - szkoda czasu.
Mam nadzieję, że nikt nie zacznie mi teraz wytykać "zdrady php". php to świetne narzędzie, ale ma że tak powiem "za ktrótkie rączki".  :wink:


Tak jak pisałem wcześniej, php nie jest językiem działającym po stronie
klienta! Pralka nie służy do gotowania obiadu...

Taki program można napisać np. w języku JavaScript czy też Java.
Seth
Ale kto Ci kaze pisac np. gre w php :?:
php ma sluzyc do wyswietlania dynamicznych stron, a nie ma byc aplikacja po stronie usera.
Dlatego tak jak juz wspomnialem trzeba sie zastanowic nad tym co dana splikacja internetowa ma robic i uzyc odpowiedniego mechanizmu (php/ASP/JSP czy Aplet/ActiveX/Flash).
dragossani
Cytat
Nie rozumiem w ogóle tej dyskusji. Pytasz się o to, który język jest lepszy, nie biorąc pod uwagę, że jeden z nich to język działający po stronie serwera, zaś drugi po stronie klienta.

Przepraszam bardzo, ale chyba ktoś tu nie nie dokońca zna realia. J2EE działa po stronie SERWERA. Proponuję sobie poczytać TUTAJ.
Gdybym mówił wyłącznie o apletach to rzeczywiście nie trzymałoby się to kupy, ale nawet w temacie jest, że mam na myśli J2EE (Java 2 Platform Enterprise Edition). To jest warstwa logiki aplikacji - tak jak php. A po stronie klienta chodzi aplet, który jest znacznie elastyczniejszy niż HTML i do tego utrzymuje stały kontakt z logiką aplikacji po stronie serwera.

Cytat
Tak jak pisałem wcześniej, php nie jest językiem działającym po stronie klienta! Pralka nie służy do gotowania obiadu...
Ano racja. Jak trzeba ugotować obiad to przydałoby się mieć kontrolę i po stronie klienta i po stronie serwera.

Cytat
trzeba sie zastanowic nad tym co dana splikacja internetowa ma robic i uzyc odpowiedniego mechanizmu (php/ASP/JSP czy Aplet/ActiveX/Flash)
Właśnie na skutek zastanawiania się doszedłem do tego, że php/ASP/JSP to za mało i Aplet/ActiveX/Flash to też na mało. Serwer aplikacji działający w sprzężeniu z apletem u klienta byćmoże byłby rozwiązaniem. Stąd ten post.
GeoS
Od siebie tylko dodam, ze Seth i Hyper bardzo sie myla i widac zadko zagladaja na php.net :!: :!: :!: :!: :!: :!: :!: :!: :!:
Panowie, a do czego sluzy php-GTK, jesli nie do tworzenia GUI po stronie klienta :?: :?: :?: :?: :?: :?: :?: :?: :?:
Oj, oj, oj, ... biggrin.gif
kurtz
Cytat
Panowie, a do czego sluzy php-GTK, jesli nie do tworzenia GUI po stronie klienta :?:  :?:  :?:  :?:  :?:  :?:  :?:  :?:  :?:
gdyby jeszcze to narzedzie bylo bardziej userfriendly - w tej chwili przeciez nie da sie budowac aplikacji ktore nie korzystaja z samego php. a bez tego cienko...
Seth
Cytat
Od dłuższego czasu szukam platformy, która pozwoliłaby mi tworzenie złożonych aplikacji internetowych tak swobodnie jak np. lokalnych programów w Delphi. (...)

Jezeli temat jest jeszcze aktualny to polecam ASP.NET. W obecnej chwili tworzenie chociaby formularzy nie odbiega bardzo od tworzenia pul tekstowych czy przyciskow w normalnych aplikacjach. To samo tyczy sie odczytywania danych a nich.
Fo
hmm czyli jesli dobrze rozumiem @dragossani chcesz fkoncu znalezc taka technologie przy ktorej moglbys wygenerowac to co ci sie zywnie podoba - jakby sprzezenie wszystkich jezykow w jeden wielki plac zabaw gdzie ty ustanawiasz zasady i zmieniasz to co ci sie podoba i kiedy (wow - matrix?) - hmm wiec chcesz aby efekt twojej pracy przypominal dwoch kolesi - jeden po jednej a drugi po drugiej stronie szyby, ktorzy caly czas widza dokladnie co sie dzieje - po drugiej stronie tej szklanej i przezroczystej szybki jaka dla mnie jest ekran monitora....

np ja teraz cos sobie pisze a ty widzisz jak ja stawiam kazdy kolejny bajt ?

mam pytanko male - czy Tobie sie moze widzi konkretny juz jakis projekt w wykonaniu o J2EE ?
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.