JSP czy PHP ?

0

Jak myślicie, który język jest (według Was) lepszy ?

0

Same języki mają zbliżoną charakterystykę, jeśli chodzi o rdzeń.

Oba latają na VM, oba można skompilować do natywnego.

W obu masz dobre wsparcie dla OO, czyli te klasy, dziedziczenia, interfejsy, wyjątki, enkapsulację i reflection.

Oba mają szczątkowe wsparcie dla funkcyjnego w postaci funkcji lambda (chociaż w Javie zapisywane strasznie głośno i naokoło za pomocą obiektów anonimowych).

Typowanie jest inne - dynamiczne vs statyczne. Oba równie dobre.

Na oba masz frameworki wspierające MVC, ORM, i całą resztę cudów-niewidów. Żadne "killer features" mi do głowy nie przychodzą.

Chyba jedyna silna różnica, ale za to różnica ideologiczna głównie to implementacje maszyn wirtualnych. Dla PHP masz jedną jedyną. Implementacji JVM jest więcej.

0

A co jeżeli mowa o JEE ? Słyszałem, że jest bezpieczniejsza niż PHP.

1

Ewidentnie JSP, wszystkie frameworki są lepsze od PHP.

0

winerfresh

Mógłbyś uargumentować to w jakiś sposób ?

0

A konkretnie jsp nie jest językiem, jest tylko "małym frameworkiem" dla molocha jakim jest jee i to wcale nie najlepszym. Zresztą pytanie co jest lepsze, php czy java to bardziej do działu flame.

2
Zaki88 napisał(a)

winerfresh

Mógłbyś uargumentować to w jakiś sposób ?

Mówisz masz (oprócz tego, że już to pisałem n razy i jestem znany z nienawiści do PHP):

  • Brak jakiejkolwiek konwencji nazewniczej w:
  • bibliotece standardowej (raz piszemy z podkreśleniami, raz bez, funkcje biblioteki standardowej (o ile dobrze pamiętam) są nieczułe na kapitaliki, a definiowane przez użytkownika są czułe)
  • nazwach wyjątków (kiedyś udało mi się wywołać wyjątek po hebrajsku)
  • Udostępnienie miliarda funkcji robiących praktycznie to samo
  • Obiektowość w bibliotece standardowej jest chyba tylko na pokaz
  • Jak gdzieś wystąpi błąd to nie rypnie się cała aplikacja jak to w każdym normalnym frameworku tylko ładnie wypisze Ci gdzieśtam i jeszcze będzie radośnie merdać ogonem, że dobrze wykonał pracę
  • Nie znam innego języka, w którym by dało się zrobić takie spaghetti jak w PHP się robi bez trudu
  • Łatwiej przepisać czyjś kod niż go zrozumieć
  • Słabe typowanie zmiennych co powoduje generowanie praktycznie kur... strasznie ciężkich do wykrycia błędów
1

JVM, ale nie JSP. Do Javy polecam Apache Wicket lub GWT - zależnie od typu aplikacji (+ Project Lombok, Google Guice i inne frameworki). Po zaznajomieniu się z pisaniem aplikacji webowych na JVM można próbować innych języków: Scala, Clojure, JRuby, Groovy, etc W tych językach można też pisać na desktopy (Swing, JavaFX), komórki (Android), aplikacje konsolowe, wielowątkowe, rozproszone, itp itd PHP to wybitnie język pod generowanie HTMLa i tyle.

1
Ranides napisał(a)

Oba latają na VM, oba można skompilować do natywnego.

Można, ale czy trzeba? Java traci swoje atuty (przenośność) oraz podupada na wydajności, do tego natywnie skompilowane moduły są niekompatybilne z "pośrednimi", należy kompilować całą aplikację. PHP da się skompilować pośrednio do C++, potem do kodu natywnego, ale nie obywa się to bez problemów (kompilowany jest tylko pewien subset języka). Zyski są niewielkie, zazwyczaj to nie skrypt jest najkosztowniejszym obliczeniowo elementem systemu, 50% krótsze wykonywanie PHP przekłada się na kilka procent wydajności całej aplikacji.

Ranides napisał(a)

Typowanie jest inne - dynamiczne vs statyczne. Oba równie dobre.

winnerfresh napisał(a)
  • Jak gdzieś wystąpi błąd to nie rypnie się cała aplikacja jak to w każdym normalnym frameworku tylko ładnie wypisze Ci gdzieśtam i jeszcze będzie radośnie merdać ogonem, że dobrze wykonał pracę
winerfresh napisał(a)
  • Słabe typowanie zmiennych co powoduje generowanie praktycznie kur... strasznie ciężkich do wykrycia błędów

Między innymi słabemu dynamicznemu typowaniu PHP zawdzięczamy tak wielką ilość podatności w webaplikacjach, http://php.net/manual/en/types.comparisons.php jako przykład, inne języki nie potrzebują takich tabelek, nie zawierają równie nielogicznych konstrukcji. Napisanie == zamiast === może położyć bezpieczeństwo całej aplikacji (dzięki bezsensownym konwersjom niespotykanym w jakimkolwiek innym języku dynamicznie typowanym). Typowy "programista PHP" sadzi === tylko przy sprawdzaniu, czy funkcja zwróciła używalny wynik, czy bool(false), co jest standardowym sposobem zgłaszania błędów w tym języku (nawet przy dzieleniu przez zero). Kolejnym niespotykanym cudem humanistycznej myśli technicznej jest operator @, który blokuje danemu wyrażeniu możliwość wywalenia komunikatu błędu na wyjście (co ochoczo robi niemal każda funkcja mogąca zwrócić bool(false) w charakterze błędu).

Wibowit napisał(a)

PHP to wybitnie język pod generowanie HTMLa i tyle.

PHP to zwykły język szablonów, który w pewnym momencie, zapewne dla żartu, zrobiono Turing-complete.

Ranides napisał(a)

Chyba jedyna silna różnica, ale za to różnica ideologiczna głównie to implementacje maszyn wirtualnych.

Chyba jedyna silna różnica to jakość obu technologii i łatwość strzelenia sobie w stopę. PHP to mix losowych elementów losowych języków (funkcje lambda skopiowano z C++, gorzej się nie dało), realizowany bez planu, niespójny i pełen niebezpiecznych konstrukcji.

0

Czyli zaczęcie od GWT uważacie za słuszne posunięcie ?

0

Jest OK, jeżeli nie wymagasz indeksowalności stron (w innym wypadku lepiej uczyć się Apache Wicket). Szczególnie kombos typu GWT + Android + App Engine wydaje się ciekawy i Google udostępnia gotowe rozwiązania do takiego połączenia (zestaw współpracujących wtyczek pod Eclipse).

0

Na indeksowalności stron mi zależy więc wybiorę zapewne Apache Wicket. Czy znacie jakieś dobre tutoriale sprawdzone przez siebie do nauki tej technologii ?

0

Książka "wicket in action" choć już troche stara.

0

W takim razie zostaje mi http://wicket.apache.org/

0

Jeżeli wybrałeś już Javę zamiast okropnego PHP to polecam na sam początek tutoriale jakie przygotował NetBeans na swojej stronie właśnie dla osób zaczynających swoją przygodę z programowanie aplikacji internetowych.

0

Poznałem już trochę Java SE więc z tego względu chciałbym zostać już w tej technologii, mimo, że PHP też już opanowałem, ale skoro jest gorszym językiem...

0

Dla przemadrego Ranidesa - jest implementacja PHP inna niz ta jedna jedyna ktora znasz. Nazywa sie Quercus, tworzy ja Caucho (ta sama firma ktory tworzy AS o nazwie Resin, pewnie tez nie slyszales) i lazi na JVM. Jest podobno duzo szybsza niz 'normalne' pehape.

0

Polecam PHP.
Dlaczego? Sam zobacz:

No i jest najłatwiejszy - w nim napisanie jakieś stronki to parę minut, przy pomocy tylko notepad++ . Znam Javę, lecz nie lubię w niej pisać. Jedyne co ma dobre, to biblioteki. Ale składnia według mnie jest dziwna - deklaracja typu zmiennych itp. Więcej zajmujesz się "duperelami" niż pisaniem.

Joomla, Drupal, wordpress są pisane w PHP. Więc...
A w Javie? ymm nie potrafię bez google nic wymienić.

2

Nawet jeśli będzie dużo szybsze od "normalnego" PHP, to i tak będzie dużo wolniejsze od czystej Javy. Oraz i tak będzie miało kiepską składnię (bo ma być przecież kompatybilne) i całą odziedziczoną resztę.

up:
PHP to chyba tylko do frontendów. Facebook używa w backendzie C++, Erlanga itp może i Pythona nawet. Mają nawet narzędzie do tłumaczenia PHP na C. Google ma od groma serwisów i generalnie prawie wszystko to C++ + Java. Python jest czasami używany do frontendu, ale raczej rzadko. Allegro i wykop z pewnością używają mnóstwo gotowców (bibliotek) napisanych w C/ C++. Samo PHP po prostu nie nadaje się do pisania rzeczy, które wymagają jakiejś większej skalowalności. A pisząc w np Javie można sobie oprogramować skalowalny serwis od początku do końca.

0

Zauwaz ze nie pisalem nic o Javie. Nie wiem po co o tym wspominasz. Moim celem bylo tylko wskazanie Ranidesowi ze jest cos innego nie 'jedyne prawdziwe PHP'.
Co do JSP - to jest tehcnologia deprecated, przestarzala, ktora odsuwa sie na bok. Np. w JSF 2 zaleca sie scriptlers. Ale co tam sie rozpisywac.

Wibowit napisał(a)

Python jest czasami używany do frontendu, ale raczej rzadko.

Taa, a GAE przez pierwsze miesiace / lata istnienia nie uzywal wcale Pythona do programowania backendu... Pylons, Django i kupa innych to wcale nie frameworki serwerowe...

0

GAE to usługa dla programistów, a nie coś na czym bezpośrednio się Google opiera. Wersja Datastore w GAE jest okrojona w stosunku do tego, co Google używa wewnętrznie (i to chyba jest w dokumentacji GAE wspomniane).

Python z pewnością był łatwiejszy do zaimplementowania niż JVM, ponadto języki interpretowane typu PHP czy Python są dość lekkie jeżeli chodzi o wystartowanie - odpalenie JVMa razem z potrzebnymi JARkami zajmuje powiedzmy kilka sekund, natomiast uruchomienie krótkiego skryptu w PHP czy Pythonie jest niemalże natychmiastowe.

AJAXowe usługi Google oparte są na GWT czyli narzędziu, które tłumaczy kod Javowy na JavaScript i dzięki temu googlerzy mogą pisać całe serwisy w czystej Javie od początku do końca.

0
Wibowit napisał(a)

języki interpretowane typu PHP czy Python są dość lekkie jeżeli chodzi o wystartowanie - odpalenie JVMa razem z potrzebnymi JARkami zajmuje powiedzmy kilka sekund, natomiast uruchomienie krótkiego skryptu w PHP czy Pythonie jest niemalże natychmiastowe.

Prawde mowiac Python moze byc tak samo interpretowany co Java - przy pierwszymuruchomieniu tworzone sa pliki pyc z prekompilowanym bytecodem, ktory jest uruchamiany. To samo co Java, tyle ze prekompilacja jest w locie.

Wibowit napisał(a)

AJAXowe usługi Google oparte są na GWT czyli narzędziu, które tłumaczy kod Javowy na JavaScript i dzięki temu googlerzy mogą pisać całe serwisy w czystej Javie od początku do końca.

Dzieki za informacje, nie wiedzialem co to GWT i co i w czym sie pisze w googole.

0
bordeux napisał(a)

A w Javie? ymm nie potrafię bez google nic wymienić.

Może dlatego, że pisze się w niej poważne rozwiązania dla poważnych firm, a nie stronki internetowe i portaliki dla ekshibicjonistów?

0
bordeux napisał(a)

Polecam PHP.
Dlaczego? Sam zobacz:

Z czego nikt nie jest zadowolony.

Evolution of Code Design at Facebook:

PHP - single-threaded, feature-poor, inconsistent language. FB is stuck with PHP because it was chosen in 2004.

Gdzieś, nie mogę teraz tego znaleźć, podobne zachwyty nad PHP czynił pracownik allegro.

bordeux napisał(a)

No i jest najłatwiejszy - w nim napisanie jakieś stronki to parę minut, przy pomocy tylko notepad++ . Znam Javę, lecz nie lubię w niej pisać. Jedyne co ma dobre, to biblioteki. Ale składnia według mnie jest dziwna - deklaracja typu zmiennych itp. Więcej zajmujesz się "duperelami" niż pisaniem.

Od typowania zmiennych zależy m.in. bezpieczeństwo kodu i szybkość wychwytywania błędów. Najłatwiejszy język:

<?php
function doSomeMath($a, $b) {
	return -($a / $b);
}

function runIt($action, $a, $b) {
	return $action ($a, $b);
}

if (runIt(doSomeMath, "69", true) === -69) {
	echo "wtf?";
}
if (runIt(doSomeMath, 69, 0) === 0) {
	echo "oh shit\n";
}
if (runIt(doSomeMath, 666, "wtf!") === 0) {
	echo "oh shit^2\n";
}
if (runIt("doSomeMath", true, false) === 0) {
	echo "OH SHIT^3\n";
}
?>

Do tego część operatorów jest ewaluowana w sposób unikatowy pośród języków programowania. Silne typowanie i statyczna kontrola typów chronią przed wieloma klasami błędów, PHP to nie język programowania tylko pieprzony backdoor.

bordeux napisał(a)

A w Javie? ymm nie potrafię bez google nic wymienić.

To świadczy wyłącznie o zamknięciu się w jednej technologii.

0

najlepszym potwierdzeniem pehapowej istoty fb jest Cassandra:d

1

Rozmowa o wyższości danego języka programowania nad drugim nic nie daje. PHP ma swoją niszę i idealne ma zastosowanie podczas pisania małych tanich projektów.

Java wybierana jest do bardziej poważnych projektów niż stronka internetowa pana Kazia. Ma ona swoje zalety jak i również wady - chodzi mi zarówno o samą składnię języka jak i również o platformę.
por
Co do PHP to dla mnie jego jedyna zaleta to tani hosting, dość spore środowisko developerów (nie większe niż środowisko Javy). Porażką jest koncepcja samego języka. Wiem że jego autorzy biorą się do roboty ale dla mnie powinni zabrać się na samym początku. Co to jest za nowy wysokopoziomowy język programowania nie posiadający obiektowości w takim stopniu przynajmniej jak Java - dla mnie to jest śmiech. Jeżeli chodzi o interpretowany dynamicznie typowany i NOWOCZESNY język to dla mnie wzorem jest Ruby. Pythona powiem szczerze nie znam ale wiem że są to dwa pokrewne języki.

0

Panowie, zapomnieliście o jednej bardzo ważnej rzeczy - każdy język ma swoje zastosowania i przykładowo porównywanie języka skryptowego (PHP) z językiem kompilowanym (Javą) jest oznaką bezmyślności (skromnie mówiąc).

PHP zostało stworzone tylko i wyłącznie do webdevelopingu, gdzie spisuje się świetnie. W ostatnich latach bardzo wiele zmieniło się w środowisku PHP, w tej chwili 80% aplikacji działa na PHP, najpopularniejsze CMS-y są napisane w PHP (Wordpress, Joomla, Drupal, Magneto - choć to już sklep).

PHP dostępne jest na każdym serwerze współdzielonym, swoja popularnością bije na głowę wszystkie jeęyki jakie są związane z webdevelopingiem (razem wzięte). Z tego też powodu nie ma lepszego języka do pisania aplikacji internetowych (od małych, do średniej wielkości). PHP w obecnej wersji (5.5) działa szybciej niż przykładowo Ruby - Wykop.pl działał początkowo na Rubym, jednak został przepisany na PHP.

I tak, w PHP są nieścisłości, ten język ma swoje wady, jednak to drobne rzeczy, która są ciągle wytykane i wyolbrzymiane przez fanboyów innych języków skryptowych - programistom PHP w żadnej sposób nie przeszkadzają.

Java ma całkowicie inne podejście, tutaj popularność aplikacji nie ma nic do rzeczy. Tutaj w grę wchodzą poważne aplikacje dla poważnych graczy (nie mówię jednak, że poważnych rzeczy nie da się pisać w PHP). Pisanie popularnego systemu CMS, start-upu jakiegoś serwisu, czy tworzenia jakiejś prostej i średnio-wymagającej aplikacji dla klienta w Javie to nieporozumienie. Ten język nie został stworzony do tych celów.

Także na przyszłość radzę pamiętać zawsze o jednym - każdy język ma swoje zastosowanie. Dobrym przykładem jest JavaScript. Gdyby jakiś idiota zaczał porównywać JavęScript do możliwości innych języków, wtedy mógłby powiedzieć, że to nie język, tylko jakieś pseudo-nie-wiadomo-co, mały pikuś, który żyć potrafi jedynie w przeglądarce.
Ale takie jest zastosowanie tego języka i po prostu nikt nie równa się z JavąSript na "jej podwórku".

To samo jest z Javą i PHP - każdy z nich ma swoje "podwórko", na którym nikt inny nie dorównuje im do pięt.

1

PHP zostało stworzone przez amatora, który nie rozumiał Perla, a chciał mieć liczniki i księgi gości na stronce,
JavaScript zostało wymyślone na szybko (10 dni), bo Netscape chciało być pierwsze ze swoimi bajerami (i przez długi czas JS był rozwijany tylko przez jednego cżłowieka),
Objective-C został stworzony przez ludzi, którzy chcieli przemycić Smalltalka do języka powszechnego zastosowania (czyli C); stworzyli firmę, którą przejął Jobs; następnie Apple przejęło Jobsa razem z firmą, no i w ten sposób Objective-C stał się ich podstawowym językiem,
Java była językiem do programowania set-top-box-ów, krótko po tym miała zawojować świat apletami na stronkach,
C# został stworzony jako język wygodniejszy od C++ oraz jako konkurencja dla Javy, ale przenośna tylko pomiędzy wszystkimi wersjami Visty (nawet Windows RT nie wspiera pełnego profilu .NET); mimo wszystko twórcy C# zaczynali dużo później od twórców Javy więc mogli uczyć się na błędach poprzedników,

w tej chwili 80% aplikacji działa na PHP, najpopularniejsze CMS-y są napisane w PHP (Wordpress, Joomla, Drupal, Magneto - choć to już sklep).

Hmm, w takim razie skoro Notepad i Paint są napisane w C++ oraz ich egzemplarzy jest dużo więcej niż blogów na silnikach w PHP to można by stwierdzić, że pracy w C++ powinno być wielokrotnie więcej niż pracy w PHP, no nie?

W czasach cloud computing języki skryptowe mają coraz mniej przewag. Google App Engine spokojnie radzi sobie z Javą i nie trzeba płacić za gigabajty pamięci operacyjnej.

0
DamianKris napisał(a):

PHP w obecnej wersji (5.5) działa szybciej niż przykładowo Ruby - Wykop.pl działał początkowo na Rubym, jednak został przepisany na PHP.

Wiesz czemu? Bo programiści PHP są tańsi, poza tym nie w Ruby. I nie, z tym swoim dziurawym garbage collectorem i niedorobionym interpreterem nie jest szybszy od Ruby i Pythona ;)

DamianKris napisał(a):

I tak, w PHP są nieścisłości, ten język ma swoje wady, jednak to drobne rzeczy, która są ciągle wytykane i wyolbrzymiane przez fanboyów innych języków skryptowych - programistom PHP w żadnej sposób nie przeszkadzają.

Wszystkim, którzy zgadzają się z tym poglądem polecam lekturę artykułu, który niedawno ukazał się promocyjnie na 4p:
http://4programmers.net/Forum/Off-Topic/146203-magazyn_programista_62013_13_-_140_stron_wciagajacej_lektury?p=968124#id968124
Szacuje się, że około 80% aplikacji jest podatnych chociażby na XSS, około 20% na SQL injection, spory odsetek mogą mieć też ataki CSRF.

DamianKris napisał(a):

PHP zostało stworzone tylko i wyłącznie do webdevelopingu, gdzie spisuje się świetnie. W ostatnich latach bardzo wiele zmieniło się w środowisku PHP, w tej chwili 80% aplikacji działa na PHP, najpopularniejsze CMS-y są napisane w PHP (Wordpress, Joomla, Drupal, Magneto - choć to już sklep).

I żaden duży portal (Facebook, Twitter, Reddit, Google) nie stoi na PHP. Obecnie jedyne zastosowanie PHP w kodzie Facebooka to dość bolesna w utrzymaniu proteza. Wcześniej konieczne było stworzenie HipHopa i przerzucenie backendu do innych technologii. Widziałeś takie cuda w sensownym języku?

1 użytkowników online, w tym zalogowanych: 0, gości: 1