Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JAVA vs PHP
Forum PHP.pl > Inne > Hydepark
Stron: 1, 2
kilab
Co jest więc powodem powolnego (żadne mity, żadne benchmarki, po prostu subiektywne odczucie) działania większości aplikacji napisanych w javie, których używałem? Kiedys Azureus, ostatnio Eclipse, NetBeans. Dwa ostatnie działają drastycznie wolniej w odróżnieniu od na przykład QtCreatora, który w javie nie jest napisany.
Pytam z ciekawości o co w tym chodzi, co jest przyczyną powolnego działania aplikacji desktopowych napisanych w javie ;-)
solificati
Multiplatformowość. Biblioteki do UI są kiepskie to po pierwsze. Po drugie JVM jest tylko wspólnym mianownikiem między systemami. Takie rzeczy jak obsługa wielu wątków na systemach jest całkiem inaczej rozwiązane i używając wirtualnych maszyn nie masz dostępu do granularnych prymitywów systemu tylko do pewnego podzbioru i to jeszcze poprzez skomplikowane abstrakcje. No i niebanalny wpływ ma fakt, że są uruchamiane na domyślnej instancji jvm.
!*!
Cytat
Co jest więc powodem powolnego ... działania większości aplikacji

Cytat
Multiplatformowość.


Przez tyle lat nikt się nie połapał, że trzeba coś z tym zrobić? Ten argument jest po prostu śmieszny w dzisiejszych czasach. Jest od groma języków które są przenośne, lub istnieją w formie nakładek na obecne, a jakoś tego problemu nie mają lub występuje on w bardzo minimalnym stopniu, praktycznie niezauważalnym.

Ciekawi mnie jak to w końcu działa... java jest taka och niach, pełen profesjonalizm, obiektowość, język stojący poziom wyżej od PHP, a nie radzi sobie z prostymi rzeczami? Dlaczego Java ma z tym problem a np. PyGTK/Qt czy phpGTK/Qt już nie...
solificati
Porównuj jabłka do jabłek. Jakie języki rozwiązują te problemy co Java i są wydajniejsze?

Po drugie - nie ma interesu w wieloplatformowych aplikacjach desktopowych.
Damonsson
Szczerze mówiąc, pisząc mój 1. post w tym temacie, byłem pewien, że się mylę i ktoś mi napisze, że np. najnowszy Need For Speed zostanie napisany w JAVA.

A tu jest jakieś wyszukiwanie na siłę aplikacji, gdzie jakaś ich mała część jest napisana w JAVA. Co do Salesforce, JAVA to tam jedynie Jetty i Resin. O czym piszą twórcy w komentarzach pod artykułem.

Ktoś wyżej pisał, że

Cytat
pisanie, że "Java to appki na androida i ewentualnie mój powolny Eclipse" mija się z celem...


A czym innym jest powolne działanie, ale wsparcie wieloplatformowości? Właśnie tym. Działa wolno, ale wszędzie (nawet na android).

Cytat
Jakie języki rozwiązują te problemy co Java i są wydajniejsze?

Assembler wink.gif A tak na poważnie, dobre zdanie, bo fakt, broni JAVA w 100%.
solificati
Cytat(Damonsson @ 21.12.2013, 14:02:57 ) *
Szczerze mówiąc, pisząc mój 1. post w tym temacie, byłem pewien, że się mylę i ktoś mi napisze, że np. najnowszy Need For Speed zostanie napisany w JAVA.

A tu jest jakieś wyszukiwanie na siłę aplikacji, gdzie jakaś ich mała część jest napisana w JAVA.

Nie na siłę. Jest mnóstwo aplikacji w Javie, ale owszem pisanie gier AAA w Javie to średni pomysł. Gry to krótkoterminowe produkty, tam się chodzi na skróty i w takim wypadku faktycznie łatwiej używać C i skryptów. A tym co definitywnie skreśla Jave z gier to GC. Gra musi utrzymywać fpsy a GC powoduje dropy ramek. Jeśli mam program, który ma coś policzyć w jakimś czasie to mnie nie obchodzi czy on przez połowę czasu nic nie robił tylko liczył referencje a potem pracował z największą prędkością - w grze tak być nie może.
PrinceOfPersia
Cytat(solificati @ 21.12.2013, 11:20:25 ) *
Po drugie - nie ma interesu w wieloplatformowych aplikacjach desktopowych.

Dlaczego niby nie ma? Zawsze to kilka razy mniej pracy...

Tylko, ze rzeczywiscie Java jest za wolna. Nawet utilsy linii polecen(!) sle slimacza. Skrypty w pythonie czy w Javascripcie smigaja, a byle kompilator w javie odpala sie z predkoscia slimaka..
solificati
Cytat(PrinceOfPersia @ 21.12.2013, 17:54:25 ) *
Dlaczego niby nie ma? Zawsze to kilka razy mniej pracy...

Bo nie ma zbytu. Linuxowcy za nic nie płacą a na Maca to modne są aplikacje za kilka dolarów z AppStore.

Cytat
Tylko, ze rzeczywiscie Java jest za wolna. Nawet utilsy linii polecen(!) sle slimacza. Skrypty w pythonie czy w Javascripcie smigaja, a byle kompilator w javie odpala sie z predkoscia slimaka..

Bo pewnie przy każdym poleceniu jest startowana wirtualna maszyna, zwykle z defaultowymi ustawieniami. Tak, jak chcesz odpalić pierdołę w lini poleceń to lepiej napisać skrypt. Skrypty po to są.
Dark Smark
Cytat(!*! @ 19.12.2013, 12:21:11 ) *
I właśnie o to chodziło. FB jest napisany w PHP i wykorzystuje Jave, ale nie można powiedzieć że jest napisany w Javie ani tym bardziej, że jest to przykład aplikacji wysoce wydajnej.

Jakby się trzymać takiego toku myślenia, to ten skrypt z "newsów" phpos, byłby systemem operacyjnym, bo przecież jest w PHP, a te jest pisane w C.

Jeśli chodzi o przykład czegoś w javie... pamiętacie polchat i firmę livechat (teraz chyba GG Network).

Co do php i facebooka to dodatkowo: http://pl.wikipedia.org/wiki/HipHop_for_PHP


Dla mnie nie ma co porównywać PHP i Javy, można i PHP zestawić z perlem i przegra wydajnościowo staaaaaaaaanowczo, ale to są tylko święte wojny fanatyków. Piszmy w czym się wygodnie NAM pisze i w czym jesteśmy dobrze i dobrze się czujemy. Wybieranie technologi patrząc na perspektywy jest głupie, bo każdy DOBRY developer zarobi DOBRE pieniądze jeśli się znajdzie w odpowiednim czasie i miejscu.
JohnnyB
Wszystko rozbija się o wydajność i koszty. Programy, które wymagają najwyższej wydajności pisze się w C, a nawet daje wstawki w asemblerze. Ale to jest bardzo kosztowne i łatwo o pomyłkę. Z drugiej strony większość "aplikacji biznesowych", które zwykle stanowią jakieś pochodne CRM, nie wymaga dużej wydajności - wtedy wybiera się takie środowisko, w którym najłatwiej zrealizować dane zadanie. A duże aplikacje biznesowe najłatwiej zrealizować w Javie, jedyne porównywalne środowisko to .net, jednak .net, jako młodszy, ma zdecydowanie mniejsze "zaplecze". Z kolei przy mniejszych projektach, gdzie nie potrzeba aż takiego "powera", wygrywają języki interpretowane jak PHP, Python, Ruby jako łatwiejsze do nauki i wdrożenia a w konsekwencji tańsze.
Co do wydajności, to Java jest wrażliwa na ilość pamięci, jeśli jest jej zbyt mało to wydajność faktycznie może nie powalać. Poza tym jak to w VM, dodatkowa warstwa robi swoje, zwłaszcza w interaktywnych aplikacjach.

Tu jest porównanie szybkości różnych frameworków, wg którego Java wygląda całkiem dobrze:
http://www.techempower.com/benchmarks/
solificati
Cytat(JohnnyB @ 24.12.2013, 22:09:10 ) *
Programy, które wymagają najwyższej wydajności pisze się w C, a nawet daje wstawki w asemblerze. Ale to jest bardzo kosztowne i łatwo o pomyłkę.

Wydajne programy pisze się w Fortranie - LAPACK, LINPACK, BLAS. Zaletą C jest kontrola nad pamięcią i jak mówisz, jest to trudne.

Cytat
Co do wydajności, to Java jest wrażliwa na ilość pamięci, jeśli jest jej zbyt mało to wydajność faktycznie może nie powalać.

Z tym jest różnie. Faktycznie, podstawowe generyczne kontenery mają duże narzuty, ale w Javie można bez problemu operować na unboxowanych strukturach, albo wręcz tablicach bajtów - tak robi Cassandra.
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.