mmofacts.com

PHP vs. Java

gepostet vor 18 Jahre, 8 Monate von MichaelB
Hi,
gibts hier jemanden, der ein Webgame in Java geschreiben hat?
Ich schreibe derzeit ein Browserspiel fürn Apache- Tomcat Webserver. Derzeit halt nur, weil ich demnächst in den Beruf einsteige und mich mal ordentlich mit Datenbanken und Webprogrammierung beschäftigen muss.
Da mir die Arbeit am Spiel Spass macht, verbinde ich halt das Nützliche mit Spass. Wenn das Spiel aber mal wirklich fertig werden sollte, will ichs vielleicht auch online stellen.
Bisher habe ich hier nur zum Thema PHP gelesen, gibts denn überhaupt jemanden, der ein Spiel in Java schreibt, oder es mal angefangen hat? Was waren eure Erfahrungen? Bisher finde ich, dass Java einem mehr Freiheiten läßt als PHP (wobei ich zugeben muss, dass mein PHP- Wissen minimal ist), dafür gibt es schon viele fertige Lösungen für die Standard- Sachen, die man auf ner Seite braucht.
Ich bin an euren Erfahrungen interessiert, welche Bibliotheken habt ihr verwendet? Mit welchen Problemen habt ihr zu kämpfen gehabt? Welche Lösungen gab es? (Das fängt schon damit an, dass nur ganz weniger Hoster Tomcat- Webserver stellen)
Gruß Michael
gepostet vor 18 Jahre, 8 Monate von Kapsonfire
naja man kann auch browsergames mit flash programmieren
meines wissens hat das blizzard mit wow gemacht *artikel raussuch*
ich persöhnlich mag java nicht
deswegen benutze ich php
*edit*
WOW Browsergame (GN Artikel)
*/edit*
gepostet vor 18 Jahre, 8 Monate von MrMaxx
Browsergameworld...
Dein Kommentar tut einfach nur weh.
Mehr darf ich dazu einfach nicht sagen.
MrMaxx
gepostet vor 18 Jahre, 8 Monate von TheUndeadable
BGW: Das war ein Aprilscherz
@Topic:
Java als Websprache zu nutzen ist keine schlechte Idee. Mich persönlich wundert es auch, warum nicht mehr Programmierer auf ASP.Net oder wie du auf Java setzen.
Wäre schön, wenn du hin und wieder mal schreiben könntest, was du so gerade machst.
Der Hauptgrund liegt einfach daran, dass viele Programmierer mit PHP die erste Programmiersprache für das Web kennengelernt hatten und diese Sprache ja zwar etwas ungeordnet ist, aber keinesfalls schlecht.
Ich persönlich nutze ASP.Net, der Konkurrenz zu Java und bin da mehr als zufrieden.
Maxx kann evtl was zu Java und Web schreiben.
gepostet vor 18 Jahre, 8 Monate von gorgo
öhm ... das war ein Aprilscherz
Es gibt zwar andere Beispiele für Flash, aber ich glaub das die Frage dennoch eine ganz andere war. Es geht meines Erachtens um Erfahrungen Browsergame <-> Java.
gepostet vor 18 Jahre, 8 Monate von Kapsonfire
natürlich war meins nicht ernst gemeint -.-
ich selber nutze java nicht sondern wie undeadable asp
gepostet vor 18 Jahre, 8 Monate von MrMaxx
ich ich
Allerdings sind wir noch nicht so sonderlich weit gekommen.
Falls du interessiert bist, können wir ja mal ne Runde quatschen. Am besten versuchst du mich im #galaxynews channel auf Gamesurge mal zu bekommen.
Wir haben uns für Spring Framwork als MVC Framework entschieden und gegen struts. Der Grund ist eigentlich, das Spring neuer ist und wir struts schon kennen...kA was jetzt besser.
Dependecy Injection, das ja bei Spring so gross beworben wird werden wir vermutlich nicht gross verwenden, aber es ist schonmal schön ein weiteres BuzzWord verstanden zu haben
Hibernate tickt als OR Mapper (bisher nur in unserem "Proof of Concept"-Testprojekt) und ist in Verbindung mit XDoclet einfach GENIAL zu konfigurieren.
Falls du vorhast AJAX zu verwenden kann ich nur [URL]https://ajaxtags.sourceforge.net[/URL] empfehlen. Mit dieser taglib kannst du eigentlich alles an AJAX machen, was einem so einfällt.
Also...falls du ma lust hast zu klönen, komm ins IRC, oder schreib mir ne PM
Und zu der Entscheidung....genau die richtige. Die Java Welt liefert dir für eigentlich jedes Problem die richtigen Werkzeuge, so dass du dich aud das eigentliche Konzentrieren kannst : deine Core-Funktionalitäten.
In PHP habe ich gut dokumentierte Frameworks und APIs einfach vermisst. Es gibt sie bestimmt, aber ich habe sie nie wirklich entdeckt.
Bis denne ...
Maxx
gepostet vor 18 Jahre, 8 Monate von Drezil
Original von MichaelB
Bisher finde ich, dass Java einem mehr Freiheiten läßt als PHP (wobei ich zugeben muss, dass mein PHP- Wissen minimal ist), dafür gibt es schon viele fertige Lösungen für die Standard- Sachen, die man auf ner Seite braucht.

Jein.. ich finde - gerade seit PHP5.1 und der verbesserten ObjektOrientierung - PHP einfach besser, da mir in Java einige programmiertechnische Dinge "auf den Sack" gehen. Es ist um einiges einfacher sich in PHP die passenden funktionen zu suchen, anstatt in Java in dem Klassengemenge die richtigen zu finden (ja.. mit erfahrung kann man das wett machen..). Außerdem vermisse ich in Java einige Feinheiten wie z.B. Operatoren-Überladung.
Aber mal davon abgesehen finde ich, das sich beide Techniken nicht viel nehmen. Es hängt primär vom Programmierstil ab, ob ein Spiel nachher vernünftig auf Server X läuft. Da würd ich nicht behaupten A oder B ist per se besser.
Ich würde die Entscheidung der Programmiersprache (Tschuldigung .. schlagt mich .. PHP ist natürlich nur eine scriptsprace *sülz*) rein nach persönlichen Vorlieben aussuchen (sofern es nciht anforderungen gibt wie: das muss aber am effizientesten laufen .. da kann ich gleich c++ nehmen und schreib mir nen eigenen apace ..).
Und wenn jetzt kommt: die Java-Servlets liegen aber kompilert in Binärdateien vor, dem kann cih nur sagen: eAccelerator macht in PHP genau dasselbe. Also wenn man sich die passenden "zusatztools/-programme" sucht, dann sind beide nahezu äquivalent.

gepostet vor 18 Jahre, 8 Monate von TheUndeadable
> Aber mal davon abgesehen finde ich, das sich beide Techniken nicht viel nehmen.
Ich denke schon, dass die Programmierung von JSP/ASP.Net und PHP sich massivst in einem Punkt unterscheidet:
Der Ablauf.
PHP läuft mehr oder weniger von oben nach unten ab. Du musst mit den Request-Variablen den Zustand der Buttons, der Inhalte und der Formulare abfragen.
Unter ASP.Net (unter Java ist es AFAIK genauso) schreibst du folgendes:
in einer anderen Datei:
function Bla_OnClick (...) { // Tue irgendwas }
Dieser ereignisorientierte Ansatz zwingt dich zu einem ganz anderen Denkmodell.
gepostet vor 18 Jahre, 8 Monate von Störti
Für mich ist so eine ereignisorientierte Sprache bei BG's aber fehl am Platze, die Scripte von BG's laufen nunmal von oben nach unten ab, man muss nicht auf Ereignisse des Users reagieren oder so. Bei Javascript auf der Clientseite sieht das Ganze natürlich anders aus, aber Serverseitig ist sowas nur verwirrend (zumindest hat es mich verwirrt, als ich mir mal ASP angeschaut habe).
Durch verbessertes OOP in PHP5 und den eAcclerator steht PHP in Sachen Effizienz Java kaum hinterher.
gepostet vor 18 Jahre, 8 Monate von gorgo
Also ich hab mich mit Java noch nicht so auseinandergesetzt (also das ich damit Programmiert habe), aber hinkt der Vergleich PHP <-> java nicht schon bei der tatsache, das man mit java eigendtlich schon einen Clienten programmiert mit dem man komplett anderst mit Datenströmen umgehen kann als mit PHP ?
Mit java kann ich mich doch eigendtlich von allen HTML/Javascript/css Tricksereien verabschieden (ausser um das java applet zu verpacken) und mich auf das reine Programmieren konzentrieren.
Für mich persöhnlich ist dann der schritt zu einem echten Clienten (also warum nicht gleich komplett auf den Browser verzichten) nicht mehr so weit, weßhalb ich für mich "Browsergame" nur als Spiele definier, die nur Techniken einsetzen die man ohne Plugins etc. Spielen kann. (wie gesagt nur meine Ansicht ..darüber müssen wir net streiten )
java einzusetzen um eine Spiel zu entwickeln, was man auch mit PHP-Mitteln auf die beine stellen kann halt ich dagegen schon für Unfug (kanonen und spatzen und so ). In dem sinne find ich das sich die Frage solange nicht stellt, ob man PHP oder java einsetzt, solange man nicht beim Konzept zu dem Schluss kommt das dies mit PHP nicht, schlechter oder mit nicht unerheblichem Mehraufwand machbahr wäre.
gepostet vor 18 Jahre, 8 Monate von Sarge
das was du erzählst wäre vielleicht richtig wenn es hier im java applets auf clientseite ginge ... aber davon redet ja hier kein mensch
Es geht darum Java auf Serverseite z.b. über tomcat zu nutzen. (prinzipiell spricht auch garnichts dagegen komplett java server zu schreiben... )
Und es macht durchaus Sinn das in Java o.a. "richtiger" Programmiersprache zu schreiben.
Ich denke php wird vorallem bei den meisten verwendet weil php so schön "fehlertolerant" ist und somit so schön "einfach" .. Typen? watn dat und so.. einfach drauflos schreiben und sich um nichts kümmern müssen... und somit die meisten der einstieg in die programmierung viel einfacher fällt als bei klassischen sprachen wo man auf soetwas achten muss und demensprechend der Frust von anfängern ziemlich hoch ist.
Und was der Bauer nicht kennt, das frisst er nicht deswegen bleiben die Schuster bei ihren Php-Leisten. Aber wozu auch dann wenn das schön funktioniert.
gepostet vor 18 Jahre, 8 Monate von Kampfhoernchen
Hm. Also Java ist wohl denkbar ungeeignet.
PHP, Ruby oder ASP sind da erheblich schönere Lösungen.
Von Ruby habe ich zugegebenermaßen nur gehört.
ASP ist ereignisgesteuert, das mag man positiv oder negativ sehen, ichs sehs für ein BG eher positiv. Man ist halt nach wie vor (fast) an Windows gefesselt.
PHP verleitet zu unsauberem Programmieren, aber das schlägt sehr schnell wieder zurück. Wenn man PHP professioniell betreibt, so hat man damit eine Plattform, die so gut wie alle benötigten Funktionalitäten bereitstellt. Die "Typenlosigkeit" kann man verfluchen oder vergöttern, bei mir wieder letzteres (Usereingaben etc.).
MVC ist für PHP eine denkbar ungeeignete Struktur, stattdessen setze ich auf "Module", die die "Remote Datas" (geparste $_REQUESTs) verarbeiten, jedes Modul stellt 2 Funktionen bereit: display() und process(), sollte ja klar sein was die machen.
Die Module greifen über eine Datenbankabstraktionsschicht (einzelne Objekte, die als Relationen in der Datenbank liegen und Object-Handle, die "Listen" von Objekten darstellen) auf die Datenbank zu.
Die Ausgabe erfolgt mittels Template-Engine oder XML-Builder.
gepostet vor 18 Jahre, 8 Monate von gorgo
Original von Sarge
das was du erzählst wäre vielleicht richtig wenn es hier im java applets auf clientseite ginge ... aber davon redet ja hier kein mensch

ah ..dann zieh ich alles zurück was ich geschrieben hab
gepostet vor 18 Jahre, 8 Monate von MrMaxx
Kampfhörnchen...jetzt erzahl mal, warum Java denkbar ungeeignet ist. Du hast nicht mit einer Silbe erwähnt warum es das sein soll.
Bei ASP wiederholst du nur, was dir TheUndeadable vorgelegt hat.
Bei solch einer Argumentation kommt leicht der Eindruck auf, das die entsprechende Person keine Ahnung hat, wovon sie redet.
Zu dem ereignisorientiern Ansatz...falls du den möchtest, musst du nur JSF benutzen (Java Server Faces).
Falls du Java prozedural benutzen willst, wie viele es von php4 gewohnt sind (so richtig ohne Objektorientierung), dann kannst du das auch machen, indem du JSPs schreibst die nur über Scriplets Java Code benutzen.
Falls du Java sauber benutzen willst, dann wählst du dir ein feines MVC Framework aus und schreibst drauf los.
Ich denke das die wenigsten hier auch nur annähernd wissen was die Java Welt zu bieten.
Anders kann ich mir solche Aussagen nicht erklären.
Java ist vieles (vor allem Vielseitig), aber eines bestimmt nicht: "denkbar ungeeignet".
Bis denne ...
MrMaxx
gepostet vor 18 Jahre, 8 Monate von Kampfhoernchen
Hatten wir ja grad im IRC.
API, nicht durchgezogene Exceptions, Multithreating, manchmal unlogisches Typecasten (mal macht ers, mal wieder net), 2000 Klassen um nen Pfurz zu lassen ...
gepostet vor 18 Jahre, 8 Monate von knalli
Wieso castet Java unlogisch.. da gibt es doch feste Regeln, was automatisch gecastet wird und wann nicht?
gepostet vor 18 Jahre, 8 Monate von Amun Ra
Das einzige was mich zur Zeit an PHP stört, ist das es sich nicht so
toll zur Programmierung von Daemonen eignet...
Ich fänds gut dazu direkt dann auch die selbe Sprache zu nehmen,
an statt auf Perl, andere oder cron zurück zugreifen.
gepostet vor 18 Jahre, 8 Monate von Kampfhoernchen
Also möglich ist es, ich find nur dass PHP dafür nicht wirklich geeignet ist. Wer auf eine Oracle Datenbank zurückgreifen kann, sollte sich für Hintergrundjobs auf jeden Fall SQL+ ansehen.
gepostet vor 18 Jahre, 8 Monate von Wulf
Wir haben uns fuer Java entschieden.
Ich wollte Typen und Objektorientierung und hatte im Laufe meines Studiums am meissten mit Java programmiert, sodass die Entscheidung relativ einfach viel.
PHP und C++ kamen noch in die naehere Auswahl.
Ich finde das programmieren in Java (subjektiv) angenehmer als in PHP oder C++. Wobei PHP natuerlich fuer ne schnelle kleine Web-Entwicklung geeigneter ist als Java, weil man mit wenig Aufwand schnell zu Ergebnissen kommt.
gepostet vor 18 Jahre, 8 Monate von MichaelB
@ Kampfhörnchen
Reden wir beide von dem selben Java?
Ich kenne mich mit php zu wenig aus, um dazu was gescheites zu erzählen, aber ich weiss genug über Java, um zu sagen, dass ihr da im IRC Quatsch verzapft.
Das Casting ist vielleicht nervig, vor allem, wenn man viel mit Collections arbeitet, aber bestimmt nicht unlogisch. Seit Java 5 braucht man es so gut wie gar nicht mehr...
Viele Klassen gibt es tatsächlich in Java, die sind aber eher ein Feature. Man kann auch weiterhin 2.000 Zeilen Code schreiben, um einen Furz zu lassen, aber die Klassen machen vieles leichter. Ich lerne auch noch oft genug neue Klassen kennen und ärgere mich dann, dass ich früher etwas viel zu kompliziert gemacht habe, anstatt gleich die richtige Klasse zu verwenden. Aber das ist doch nicht doch kein Fehler an der Sprache.
Das Argement, dass php einfacher ist, lasse ich auch nur gelten, wenn man beides nicht kennt. Ich hatte ja geschrieben, dass ich mein Spiel anfange, um überhaupt mal eine anspruchsvolle Webapplikation zu schreiben. Aber auch sonst hätte ich mich für Java entschieden, weil ich bei php bei Null anfangen müsste.
Zu deinen anderen Stichworten will ich lieber nix schreiben, weil ich mich dann vom Thema entfernen würde.
@ Topic
Ich bin mir sicher, dass Java vom technischen her php zumindest ebenbürtig ist. Das Problem sehe ich eher darin, dass Java von Webhostern nicht so unterstützt wird, wie php, und es gibt für php mehr vorgefertigte Standardlösungen.
Gibt es für Java ein fetriges Forum? ein Gästebuch? Newsverwaltung?
Vor allem ist Java bisher eher für das Erstellen von "seriösen" Business- Andwendungen entworfen worden. Da das ganze Klickibunti ausserhalb des Servers passiert, sollte das eigentlich kein Problem sein, aber vielleicht gibt es doch Sachen, die eine "unseriöse" Klickibunti- Seite braucht, die von Java- Servern nicht unterstützt werden.
@ Maxx
Viel zu schreiben gibt es zu meinem Projekt noch nicht. Die letzten Tage und Wochen habe ich damit verbracht Hibernate wirklich zu durchdringen und dann die ersten paar Spielfunktionen umzusetzen.
Mein Hauptproblem ist momentan, dass mein bisheriges Verständnis objektorientierten Programmierens jetzt nicht mehr zieht. Bis jetzt hatte ich immer meine Objekte, die irgentwelche Daten gehalten haben, irgendwie hierarchisch angeordnet waren und bei Bedarf ihre Daten verändern konnten. Bei Datenbank- Webgeschichten habe ich nur eine Ansammlung von Tools, die Daten aus der Datenbank ziehen, verändern und zurückschreiben, irgendwie ohne Struktur.
Ansonsten setze ich mich gerade mit Struts auseinander. Das war das einzige Framework, das für mich in Frage kam, da Struts auch in dem Betrieb, wo ich meine Diplomarbeit schreibe benutzt wird, da kann ich dann auch immer mal Fragen stellen.
Ajax kommt erst mal nicht in Frage, da ich mit Hibernate, Struts, log4j (ok, das ist einfach) und dem Aufbau einer Struktur genug zu tun habe. Bald kommt sicher auch noch ein Ausflug in Javascript dazu, das muss erst mal langen an neuen Techniken.
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Original von Kampfhoernchen
Hatten wir ja grad im IRC.
API, nicht durchgezogene Exceptions, Multithreating, manchmal unlogisches Typecasten (mal macht ers, mal wieder net), 2000 Klassen um nen Pfurz zu lassen ...

OK nochmal ... hab grade einen ewig langen antwortpost geschrieben und der was nach einem klick dann weg ... aber mir wurde noch gesagt, das ich einem falschen Link gefolgt wäre
Das Exceptionshandling in Java ist durch seine verschiedenen Exceptionklassen sehr differenziert und gibt dem Programmierer eine gute Möglichkeit auf erwartete Fehlerquellen zu reagieren. Die Exceptions, die geworfen werden sind eigentlich sebsterklärend (speaking code). Es zwingt dazu seine Fehler zu behandeln, was bei strikter Befolgung dieses Konzepts dazu führt, das der Code sehr sauber und besser wartbar ist. Falls allerdings try{ ...} catch (Exceptione){} im Code vorkommt und der catch Block leer oder ungenügend gefüllt ist oder Exceptions bis zum Benutzer durchgeworfen werden darf man sich nicht über ein schlechtes Exception Handling beschweren.
Die Unterteilung in Exceptions und Errors ist eine sehr durchdarchte, auch wenn das von dir als unsinnig abgetan wurde. Exceptions sind erwartete Ereignisse, Errors sind unerwartet. Errors sind die Fehler, auf die nur schlecht oder garnicht reagiert werden kann. Sie werden meist von der VM selbst und teilweise auch aus der API geworfen. Ein gutes Beispiel ist z.B. der OutOfMemoryError...kein Memory mehr = aus die Maus.
Das Multithreading ist eine traditinelle Stärke von Java (weil schon immer dabei war) und kann sehr leicht verwendet werden. Allerdings verstehe ich den Einwand hier nicht, denn es geht ja eigentlich um Java vs PHP. Also wie funktionert Multithreading nochmal in PHP .... ????
Wie starte ich eine Funktionalität nebenläufig?
Java nr1:
Meine Klasse heisst DoSomething.java und implementiert Runnable. start(),stop(),init(),destroy() und run() müssen implementiert werden. Richtig wichtig ist dabei für sehr einfach Aufgaben meist nur run(). In dieseer Methode implementieren wir unsere Funktionalität.
Thread myThread = new Thread(new DoSomething());
myThread.run();
Startet dann den Thread und führt unser Runnable aus.
Wie viel einfacher muss es denn noch gehen ?
Vielleicht so (Java nr.2) ...
DoSomething.java erbt von Thread und implementiert einfach nur run() (da kommt wieder die Funktionalität rein). Da Java keine Mehrfachvererbung kann (zum Glück !!!) kann meine Klasse nun nicht mehr von einer anderen erben, aber wenn sie es soll kann ich immernoch Weg 1 nehmen.
Thread myThread = new DoSomeThing();
myThread.run();
Führt den ganzen Kram dann aus.
Java bietet dir auch ausreichende Möglichkeiten zur Sperrsynchonisation durch snchronise Blocks. Sollte dir das zu wenig sein, sind in java.util.concurrent z.B. Semaphoren und anderes definiert.
unlogisches Typcasten...
Vielleicht meinst du damit das total unkomfprtable Autoboxing, das primitive Datentypen in ihre Objekttypen "einpackt" und diese auch "auspacken" kann, damit ich z.B. das folgende machen kann:
Collection myCollection = new LinkedList();
myCollection.add(5);
for(Integer aValue : myCollection)
log.info(aValue+9);
Na Fällt was auf? Ich werfe da ein int-Value rein, obwohl er ein Integer haben möchte.
Das normale Typcasten ist natürlich auch total doof, weil ein SubTyp immer nur in Richtung seiner SuperTypen gecastet werden kann...kaum merkbar ist das.
Java ist eine streng typisierte Programmiersprache und das ist ein wahrere Segen.
PHP hingegen ist schwach typisiert. Es ist egal, ob meine Variable nun grade ein Array, oder ein String, oder ein int ist. Das ist wunderbar und gibt einem einen grossen Grad an Freiheit. Besonders Einsteigern fällt das Lernen daher sehr einfach, weil es so wenige Regeln gibt im Umgang mit Variablen.
Wenn ein Projekt allerdings eine gewisse Grösse überschreitet, dann kann sich dies ganz schnell ins Gegenteil wandeln. gleiches gilt auch für C++...ich sage da nur void Pointer. Tolle Freiheit...aber eine Pest beim debuggen.
Ich sehe streng typisierte Sprachen als Vorteil, der allerdigs erlernt werden muss.
2000 KLassen benutzen um einen furz zu lassen
Die API ist DER Grund warum Java so viel verwendet wurde/wird.
Sie liefert die eine Menge an Werkzeugen, die du einfach verwenden kannst. Ich muss nicht jedes Mal das Rad neu erfinden.
Java ist eine Objektorientierte Sprache und muss auch als solcheine benutzt werden. Wenn man sich darauf nicht einlassen kann, wird man niemals an Java Freude finden.
Dieses schliest ein, das man Abläufe wie in der realen Welt auch als eine Interaktion von Objekten betrachtet, die jedes für sich eine Menge an Funktion haben und diese nach Aussen zur Verfügugn stellen.
Es gibt keine Funktionsbibliotheken, wie ich sie in meinen ersten Tagen mit Pascal benutzt habe (und dann später in php, weil ich es nich besser wusste).
PHP bietet mir sehr schnelle und einfache Möglichekeiten bestimmte Vorgänge zu lösen. Nehmen wir z.B. eine Mail verschicken.
mail($emailaddress, $emailsubject, $msg, $headers);
Das ganze kostet mich einen einzigen Aufruf.
Eine Mail in Java zu scheiben beinhaltet mehrere Klassen und ist nicht so einfach (weil die Funktionalität eben logisch auf Klassen verteilt wird, die miteinander agieren). An diesem Beispiel sieht man sehr schön, wo die Stärken liegen. PHP liefert diesen einfachen Weg zum Ziel (der besonders für Anfänger schnelle Resultate zeigt).
Die Java Mail API hingegen...hat einen anderen RIESIGEN Vorteil. Sie kann so ziemlich alles und ermöglicht es mir mit einem relativ geringen Aufwand z.B. einen Mail-Client zu schreiben, der imap, pop, smtp kann...von miraus auch mit ssl und verschieden Authentifiaktionen. Ich habe also ein Werkzeug in der Hand, das mir viele viele Möglichkeiten offen lässt (kaum jemand will einen email-Client schreiben, aber denkt euch selbst aus, was ihr damit machen könntet).
Aber auch in Java schreibt man sich genau EINMAL eine Klasse, die die MailFunktionalität kapselt und hat dann in der eigentlichen Anwendung auch nurnoch den einzelnen Aufruf...ganz wie in php.
Anderes Beispiel das genau den gleichen Vorgang beschreibt ist das Schreiben von Inhalten auf die Festplatte mit java.io.*!
Wenn ich als Projektleiter eines WebProjektes, das eine gewisse Komplexität und Grösse überschreitet, die Entscheidung über die verwendete Sprache treffen müsste (die Fähigkeiten ders Teasm mal ausgeblendet), ich würde nicht PHP verwenden.
PHP ist eine Sprache, die wunderbar für die ersten Schritte im Web geeignet ist (was nicht heist, das nur Anfänger sie benutzen). Ich würde PHP auch jederzeit für normale Internetseiten verwenden(alles andere ist mit Kanonen auf Spatzen geschossen). Verdammt ich verwende es beruflich für Internetseiten.
ABER...
Moderne Enterprise Architekturen bestehen nicht nur aus normalen Webabläufen sondern immer mehr aus schwergewichtigen und rechenintensiven Anwendungen, die auch Algorithmisch alles andere als Triviel seien können.
In diesen Bereich dringt PHP erst sehr langsam vor.
So long....
Mr.Maxx
P.S.: MichaelB ... guck dir mal von XDoclet die Hibernate Tags an...die ersparen dir sooooo viel Arbeit.
### Edit ###
Das einzig brauchbare Forum in Java das ich gefunden habe ist das mvnforum: www.mvnforum.com/mvnforumweb/index.jsp .
gepostet vor 18 Jahre, 7 Monate von Kampfhoernchen
Sehr gut Strg + C benutzt.
gepostet vor 18 Jahre, 7 Monate von TheUndeadable
Zu Thread-Erstellung:
Java verlangt in der Tat eine Implementierung eines Interfaces:
Als Gegenbeispiel .Net:
Du brauchst nur irgend eine void Method();-Methode, also eine Methode ohne Rückgabewert und Parameter.
Gestartet wird dieser Thread nebenläufig folgendermaßen:
Thread oThread = new Thread ( new ThreadStart ( myInstanz.Method ) );
oThread.Start();
so geht es noch einfacher ;-) Gerade die Delegates in C# sind sehr mächtig.
Jede Methode kann man theoretisch auch asynchron starten:
msdn2.microsoft.com/en-us/library/2e08f6yc.aspx
> Collection myCollection = new LinkedList();
> myCollection.add(5);
> for(Integer aValue : myCollection)
> log.info(aValue+9);
Interessant ist hier, dass Java im Gegensatz zu .Net in der Liste die geboxten Variablen speichert. Das heißt, dass für jedes Int ein eigenes Objekt erzeugt wird.
.Net rekompiliert die Klasse zur Laufzeit neu (Java erzeugt nur Typ-Überprüfung zu Beginn der Routine) und macht damit den Speicherort der Liste selbst zu einem echten Array. Mit allen Konsequenzen: Unter anderem werden die Variablen niemals in Objekte verpackt. Schade, dass Sun dies aus Gründen der Rückwärtskompatibilität nicht ebenso gemacht hat. Automatisches In- und Outboxing erwarte ich übrigens in jeder Sprache. Die Zeit vor Java 5 war ein Krampf.
Aber ansonsten sehe ich zwischen .Net und Java sehr große Paralellen. .Net 2 hat momentan einfach den Vorteil, dass es neuer und damit einige Probleme umgangen hat. Dies kann sich mit der Java 6 (oder welches Nummerierungsschema Sun auch immer nutzt ;-) ) wieder ändern. Ich persönlich glaube es aber nicht. Meiner Meinung nach hat man bei einer begründeten Wahl zu Java oder .Net und einer längeren Einarbeitungsphase einen Vorteil gegenüber der Entwicklung unter PHP. Gerade Werkzeuge wie das Visual Studio oder Eclipse erleichtern die Entwicklung ungemein.
BTW:
> java.util.concurrent
Das hasse ich an Java. Wie soll man darauf kommen: System.Threading ist doch ein wesentlich besserer Name (zumindest meiner Meinung nach). Oder java.util statt System.Collections. Vector statt List. Mir erscheinen die Namen in .Net irgendwie klarer, aber vielleicht ist das auch nur reine Geschmackssache ;-)
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Hmmm...hab ich was nicht mitbekommen Kampfhörnchen ?
Ist das einzige, was dir noch einfällt mein Posting runterzuspielen, indem du behauptest, das ich das irgendwoherkopiert habe?
Vielleicht gibst du die Quellen an, aus denen ich das kopiert haben soll.
Was du machst ist der Versuch meine Argumente zu entkräftigen, indem du mich als Unkompetent hinstellst.
Falls du denkst, das ich den Artikel mangels Wissen nicht geschrieben haben könnte, möchte ich dich auf ein GameProjekt verweisen, das ich zusammen mit einem Freund habe, das jetzt jedoch auf Eis liegt (er schreibt mit an Classpath und ich habe ein anderes Projekt angefangen). Unter www.bitecode.de findest du alles, was du benötigst, inclusive Sourcen.
Ich arbeite beruflich mit Java im Webbereich und benutzte einiges, was die J2EE Spezifikation zu bieten hat.
Unter PHP betreue ich nurnoch eine einzige Internetpräsenz für ein Reiseunternehmen.
Vielleicht überzeugt dich das davon, das ich halbwegs weiss wovon ich rede.
Bisher hast du ausser Behauptungen, die du in keinster Weise mit Argumenten hinterlegst, nichts hervorgebracht. Ich bin sehr interessiert an einer Diskussion, aber das hier kommt dem nichtmal nahe.
@TheUndeadable...aber es geht in dem Thread eigentlich nicht um .Net...auch wenn ich dir zustimme, die Punkte aber nicht wirklich ausschlaggebend für eine Programmiersprachenentscheidung finde. Ok ok ... Delegates sind schon echt fein
Bis denne ...
Maxx
gepostet vor 18 Jahre, 7 Monate von MichaelB
Das es ein Forum für J2EE gibt ist schon mal ziemlich krassgeil. Aus nem Forum kann man dann mit bisschen Fantasie auch alles andere machen. Danke für den Link
gepostet vor 18 Jahre, 7 Monate von Kampfhoernchen
Erstmal: Mit der Behauptung von "Nachplappern" hast du angefange.n
Wo sind eigentlich Belege für deine Argumente? Ich sehe da nur sich wiederholende Sätze, die es so in dutzenden anderen Foren gibt, und die man sich auch zusammenkopieren kann.
Meine Argumente sind nicht viel besser, gebe ich zu. Es sind halt die ausschlaggebenden Argumente für die eine oder andere Technologie, die auch immer wieder totgeschlagen werden.
Java ist (bis auf die scheußliche API, daran werd ich mich nie gewöhnen) für Hintergrundjobs eine ideale Sprache (Plattformunabhängig, recht fix, durchaus sehr mächtig). Dafür setze auch ich aktiv Java ein (so von wegen keine Ahnung und so), immerhin verdiene ich damit als Student den Lebensunterhalt für mich.
Aber für Webapplikationen ist Java einfach nie konzipiert worden. Die Nachrüst-Frameworks können das nicht gut machen. PHP oder das ASP-Framework sind es dagegen geworden. Mit PHP und dem entsprechenden Framework (Eigenentwicklung auf Prado / FastTemplate-Basis) kann man Webapplikationen schneller und damit kostengünstiger entwickeln, da PHP dafür sehr viele spezielle Funktionen zur Verfügung stellt, die man in Java erst mal selbst implementieren müsste.
Bei Webapps brauche ich sowas wie Multithreating nicht. Ich bekomme nen Request, stelle die Daten zusammen, schicke sie raus, fertig. Was will ich da paralellisieren? Wenn 20 Requests gleichzeitig kommen, werden die vom Webserver in Multithreating abgearbeitet. Dass .NET das Multithreating besser beherrscht, kann man in einschlägigen Foren nachlesen, man bemühe dazu kurz google. Für Webapps brauche ich kein Multithreating (mir wäre jedenfalls in den letzten 3 Jahren kein geeigneter Einsatzzweck begegnet).
Die Erlaubnis von leeren Catch-Blöcken und dem Abfangen von allem, was da geworfen werden kann in der main()-Funktion, macht den Zwang, Fehler am Entstehungsort abzufangen, wieder zunichte. In PHP ist das in diesem Falle nicht besser, wir gehen hier aber sowieso anders mit Fehlern um, so dass sie direkt behandelt werden müssen (genaueres darf ich an der Stelle nicht verraten).
Entweder ich habe ein komplett explizites Casten, oder eben was Typenloses. Dies halb-und-halb macht aus Erfahrung mehr Probleme als Typenlosigkeit. Für eine optimale Lösung des Castings sehe man sich Smalltalk an. Vor allem das Boxing finde ich recht unsinnig. Eigentlich müsste ich doch gar nix davon mitbekommen, dass wenn ich einen nativen integer in einen Vector reinstopfe, der integer zu einem Objekt der Klasse Integer wird. Warum muss ich mich beim wieder rausholen darum kümmern? ich hab nen int reingesteckt, also will ich auch nen int zurück, von mir aus über ne eigene Funktion.
.NET liefert ebenfalls 1000ende klassen, aber die sind vernünftig strukturiert. Auch in PHP sind die Funktionen vernünftig strukturiert, ich suche einfach nicht ne halbe Stunde, bis ich das gefunden habe, was ich eigentlich suche.
Grade bei komplexen Applikationen im Web kommen bei Java immer noch Geschwindigkeitsnachteile auf, weil eben so viele klassen instanziiert werden müssen, dafür der Speicher reserviert, die Objekte angelegt und dann dieser dann wieder freigegeben werden muss.
Dem Prinzip der OO folgt Java auch nicht streng, warum wird bei Strings zum Beispiel bei jeder Manipulation ein neues String-Objekt erzeugt? Das kostet bei Webguis, die ja (wenn auch im Framework) viel mit HTML-Strings arbeiten ewig viel Rechenzeit. Oder die Arbeitsweise des Garbage-Collektors. Warum keine "ordentlichen" Destrukturen? Warum kann ich nicht von mehreren Klassen erben (vgl. Smalltalk)?
Bei PHP sehe ich eigentlich nur einen großen Nachteil: Man kann damit sehr schlechten Code produzieren, leichter als mit Java. PHP erfordert ein gewisses Maß an selbstbeherrschung. Und ich würde niemandem raten, mit PHP als erste Programmiersprache anzufangen.
Dass es auch anders geht beweisen Joombla, Prado oder auch viele Browsergames mit sehr gutem PHP-Code.
Und zum Thema sauberen Coden mit Java:
Seit ich ein Java-Programm mit 1 main-Funktion und 300000 Zeilen Code gesehen habe, bin ich auch überzeugt, dass man Java auch ohne OO coden kann. GOTO machts möglich, ein überbleibsel aus Fortran-Zeiten.
Zu deinem Argument mit dem Mailen:
Guck mal in PEAR, da gibt es entsprechende Packete, nur muss ich da nicht 2 Stunden die API-durchwühlen, um die richtige Klasse zu finden. Gegenfrage: Wie oft brauchst du sowas überhaupt, mir reichte es eigentlich bisher, wenn ich ein paar "Warnmails" verschicken kann.
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Erstmal: Mit der Behauptung von "Nachplappern" hast du angefange.n
weil TheUndeadable ine paar Posts davor exact das gleiche gesagt hat.
Original von Kampfhoernchen

Aber für Webapplikationen ist Java einfach nie konzipiert worden. Die Nachrüst-Frameworks können das nicht gut machen. PHP oder das ASP-Framework sind es dagegen geworden.
Java als Programmiersprache ist erstmal nur Syntax, genauso wie php oder jede andere Sprache auch.
Was nun hinzukommt ist der Funktionsumfang der entsprecheden APIs. Der Funktionsumfang der API, die einem PHP von sichaus zur Verfügung stellt ist nicht sehr gross, bietet aber für die gängigsten Probleme im Webbereich eine Lösung.
Javas API ist die Java 2 Standard Edition (J2SE). Diese API stellt einem ein Werkzug in den Hand, das ungleich mächtiger ist, als die von PHP.
Diese beiden APIs haben komplett andere Zielsetzungen. Sie sind für verschiedene Dinge entworfen worden. Das habe ich anhand der Java Mail API versucht zu erklären.
Der 2. Grosse Eckpfeiler von Java ist die Java 2 Enterprise Edition (J2EE). Diese Spezifikation ist speziell für Webanwendungen konzipiert worden.
J2EE bietet dir alles was du brauch um kleine bis beliebig grosse Anwendungen zu entwickeln.
Es ist eine grosse Spezifikation und die Lernkurve ist lang und teilweise erstmal etwas steil. Wenn du damit allerdings vertraut bist stehen dir eine Menge an Werkzeugen und Frameworks zur Verfügung, die viele Best Practices enthalten und dir die Entwicklung sehr vereinfachen.
Dir da Beispiele zu nennen ist schwer, da ich nicht in ein paar Sätzen klären kann, wie schön es ist z.B. mit struts als MVC Framework und Hibernate im Persistenzlayer zu entwickeln. Ich kann hierbei auch noch nach einem Jahr wieder meinen Code angucken, und wenn ich den Vorgaben, die mir durch die Frameworks gegeben wurden gefolgt bin, habe ich sehr gut wartbaren Code, den auch eine andere Person schnell lesen kann.
Als ich bei meiner Arbeitsstelle angefangen habe, hatte ich genau diese Situation und ich war dankbar, das es nicht eine PHP Anwendung mit einem selbstgebastelten Framework war, die ich vor mir hatte, sondern ein (zu der Zeit) quasi-Standart aus JSTL, EJB2.4 und struts mit Internationalisierung.
Du hast dadurch, das du bestimmten Konventionen folgen musst natürlich einen Overhead beim Programmieren, den du bei einer PHP Anwendung nicht hättest.
Ab einer bestimmten Grösse deiner Anwendung überwiegen die Vorteile, die du dadurch erlangst jedoch. Das sind Faktoren, wie Wartbarkeit, Lesbarkeit des Codes, Skalierbarkeit, Authentifizierungsmechanismen, Transaktionsmechanismen (auch über mehrere Server hinweg), und all die feinen Buzzwords, die du in jedem Einführungsartikel über J2EE findest.
Original von Kampfhoernchen

Bei Webapps brauche ich sowas wie Multithreating nicht. Ich bekomme nen Request, stelle die Daten zusammen, schicke sie raus, fertig. Was will ich da paralellisieren? Wenn 20 Requests gleichzeitig kommen, werden die vom Webserver in Multithreating abgearbeitet. Dass .NET das Multithreating besser beherrscht, kann man in einschlägigen Foren nachlesen, man bemühe dazu kurz google. Für Webapps brauche ich kein Multithreating (mir wäre jedenfalls in den letzten 3 Jahren kein geeigneter Einsatzzweck begegnet).
Solange du nur Standartwebanwendungen in der nur eine paar Datensatze in der DAtenbank hin und hergeschubst werden entwicklst wirst du auch kein Multithreading brauchen.
Webanwendungen sind aber nicht darauf beschränkt. Eine Webanwendung muss auch nicht immer an einen speziellen Präsentationslayer gebunden sein.
Sobald deine Dienste die du auf deinem Server anbietest Networking enthalten möchte ich sehen, wie du ohne Multithreading auskommen willst. Dienste, die du anbietest enden eben nicht beim verwalten und darstellen von Daten aus einer Datenbank.
Ein grosser Nachteil von PHP ist das du keinen ApplicationScope hast, sondern nur request und session. Dadurch gibt es z.B. keine vernünftigen OR Mapper, da diese beim initialisieren erstmal sehr viele Daten in den ApplicationScope schreiben und ohne dies sehr sehr unperformant wäre (alle pro SEssion...igitt, oder am besten noch in Files auslagern...hoho).
Da sind wir schon bei OR-Mappern. Du wirst immer schön schnell deine PHP Anwendungen schreiben können, aber ab einer bestimmten Anzahl an Tabellen schreibst du dich tot an SQL Querys.
OR-Mapper wie Torque oder Hibernate sind da ein Segen und und verkürzen und vereinfach den Entwicklungsprozess IMMENS. Solltest du noch nie mit einem OR-Mapper gearbeitet haben, liegt das warscheinlich daran, das du deine PHP Welt nur sehr ungern verlässt und dich lieber auf deine Vorurteile verlässt.
In PHP hast du eine breite palette an Open Source Software. Bis auf wenige Ausnahmen wie Pear sind das aber alles kleine Hilsanwendungen, wie Blogs, Wikis und Forensoftwaren. Das ist wunderwar um mal wieder eine kleine Internetpräsenz zu basteln, die die immer gleichen Anforderungen erfüllt.
Wenn du allein mal jakarta.apache.org/ besuchst und dir die Projekte dort anschaust weisst du was die Java Welt zu bieten hat und wie ungeeignet sie für die entwicklung von ANSPRUCHSVOLLEN Webanwendungen ist (nicht die normalen Tabellenschubseranwendungen).
Original von Kampfhoernchen

Die Erlaubnis von leeren Catch-Blöcken und dem Abfangen von allem, was da geworfen werden kann in der main()-Funktion, macht den Zwang, Fehler am Entstehungsort abzufangen, wieder zunichte. In PHP ist das in diesem Falle nicht besser, wir gehen hier aber sowieso anders mit Fehlern um, so dass sie direkt behandelt werden müssen (genaueres darf ich an der Stelle nicht verraten).
Und zum Thema sauberen Coden mit Java:
Seit ich ein Java-Programm mit 1 main-Funktion und 300000 Zeilen Code gesehen habe, bin ich auch überzeugt, dass man Java auch ohne OO coden kann. GOTO machts möglich, ein überbleibsel aus Fortran-Zeiten.
Die Erlaubis sich selbst in den Fuss zu schiessen bedeutet nicht, das du es gleich machen musst. Ich erlaube es dir hiermit....machst du es? Nein, weil du weist, das das nicht gut ist. Genauso verhält es sich mit allem, was dir eine Programmiersprache erlaubt. Du kannst auch immer zu dämlich sein und es trotzdem so machen, wie du es NICHT machen sollst. Soetwas kannst du einer Programmiersprache nicht vorwerfen. Das gleiche gilt nämlich genauso für PHP.
Original von Kampfhoernchen

Entweder ich habe ein komplett explizites Casten, oder eben was Typenloses. Dies halb-und-halb macht aus Erfahrung mehr Probleme als Typenlosigkeit. Für eine optimale Lösung des Castings sehe man sich Smalltalk an. Vor allem das Boxing finde ich recht unsinnig. Eigentlich müsste ich doch gar nix davon mitbekommen, dass wenn ich einen nativen integer in einen Vector reinstopfe, der integer zu einem Objekt der Klasse Integer wird. Warum muss ich mich beim wieder rausholen darum kümmern? ich hab nen int reingesteckt, also will ich auch nen int zurück, von mir aus über ne eigene Funktion.
Lies dir bitte nochmal mein Beispiel durch. Vielleicht verstehst du es dann. Das meine Collection NICHT Typenlos ist hat einen Grund und der ist, das ich sie jemand beliebig anderen (objektorientiert gesprochen) in die Hand drücken kann und er weiss genau was er damit machen kann. Darum geht es beim Typcasten, das zu jedem Zeitpunkt definiert ist, was mein Objekt ist und was du damit machen kannst.

Fortsetzung im nächsten Post .....
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Original von Kampfhoernchen
Grade bei komplexen Applikationen im Web kommen bei Java immer noch Geschwindigkeitsnachteile auf, weil eben so viele klassen instanziiert werden müssen, dafür der Speicher reserviert, die Objekte angelegt und dann dieser dann wieder freigegeben werden muss.

Sagmal, was denkst du eigentlich, was in deinem Apache Server so alles passiert, wenn irgendjemand eine Seite aufruft. Immer schön nach dem Motto, "Was ich nicht weiss macht mich nicht heiss"....Auch hier kommt es eben wieder auf die Anwendung an und wie sie geschrieben ist. Ich kann dir jede beliebige Seite in Java so schreiben, das sie schneller ist, als die die ich in PHP geschrieben habe. Genauso funktionert es auch andersherum. Die beiden so pauschal direkt vergleichen zu wollen ist einfach nur unsinnig. Beide haben ihre FVOr und Nachteile. Vor allem kommt es ja wohl auch noch auf den Web-Container an. Vergleichst du grade den Apache Tomcat mit dem Apache HTTP Server, oder den Websphere ApplicationServer, oder vielleicht ...
Original von Kampfhoernchen

Dem Prinzip der OO folgt Java auch nicht streng, warum wird bei Strings zum Beispiel bei jeder Manipulation ein neues String-Objekt erzeugt?
Das kostet bei Webguis, die ja (wenn auch im Framework) viel mit HTML-Strings arbeiten ewig viel Rechenzeit.
Weil du String benutzt und nicht Stringbuffer. Wenn du einen String willst, dann benutz einen String. Aber wenn du einen Stringbuffer willst, dann benutz nicht String. Da kann ja wohl Java nichts dafür
Original von Kampfhoernchen

Oder die Arbeitsweise des Garbage-Collektors. Warum keine "ordentlichen" Destrukturen?
Weil es genau das ist, was du willst. Du willst keine "ordentlichen" Destruktoren. Ich möchte mich ja schliesslich auch nicht darum kümmern müssen meinen Speicherplatz zu reservieren. Warum sollte ich ihn dann wieder freigeben?
Sobald es auf ein Objekt keine Referenz mehr gibt wird es von Garbage Collector gelöscht. Was wäre denn wenn du einfach dein Objekt löschst, aber vergessen hast, das es noch andere Objekte gibt, die darauf referenzieren? Beantworte dir die Frage einfach selbst.
Das automatische speichermanagement ist ein sehr positiver Aspekt von Java, der Im übrigen im Webbereich (um den es hier ja geht, oder willst du PHP anderswo mit Java vergleichen?) keine grösse Relevanz hat (EDIT: missverständlich...hat schon relevanz, da ich so vieles nicht machen muss...wie war das doch gleich in PHP...).
Original von Kampfhoernchen

Warum kann ich nicht von mehreren Klassen erben (vgl. Smalltalk)?
Weil es genau das ist was du NICHT willst. Dafür gibt es Interfaces...keine Mehrfachvererbeung ist eher ein Zeichen FÜR sauberes OO....aber daran scheiden sich die Geister. Halt mal...PHP kann von wievielen Klassen nochmal erben? Richtig...von einer...keine Mehrfachvererbung...Mit PHP5 gleicht das Modell für Klassenhierarchien genau dem von Java: Klassen können von einer Klasse oder abstrakten Klassen erben und von beliebig vielen Interfaces. Wie war das nochmal in C#? ....
Original von Kampfhoernchen

Zu deinem Argument mit dem Mailen:
Guck mal in PEAR, da gibt es entsprechende Packete, nur muss ich da nicht 2 Stunden die API-durchwühlen, um die richtige Klasse zu finden. Gegenfrage: Wie oft brauchst du sowas überhaupt, mir reichte es eigentlich bisher, wenn ich ein paar "Warnmails" verschicken kann.
Ich müsste mich genauso wie du die Java API durchwühlen müsstest genauso durch die PEAR API durchwühlen. So ist das nunmal mit APIs...man muss lernen, wo man was findet und wie es funktionert. Wenn ich mit PEAR Angefangen habe, dann bin ich an die Namenskonventionen und vieles mehr gewohnt. Das andere APIs da fremd wirken ist normal. Dadruch sind sie aber nicht schlecht. Mit würde es nicht in den Sinn kommen PEAR als schlecht darzustellen, nur weil ich nicht damit klarkomme.
Ich wollte nochmal zum "für Webanwendungen ungeeigneten" Java erzählen. Rate mal womit ebay realisiert ist. Ich gebe dir ein Tip: NICHT PHP!!!
www.theserverside.com/news/thread.tss?thread_id=8906
Abschliessen kann ich nur sagen, das es immer darum geht, was man für Webanwendungen schreiben will und was für eine Funktionalität gefordert ist. Softwaretechnische Grunde gehen in eine Entscheidung genauso ein, wie technologische.
Ich habe bisher nirgends behauptet, das PHP schlecht ist. Ganz im Gegenteil versucht du hier zu erklären, das Java für Webanwendungen ungeeignet ist, ohne von dem Thema ahnung zu haben. Du hast noch nichtmal eine Webanwendung unter Java geschrieben (wenn ich mich richtig an unser Gespräch im IRC erinnere) und ziehst über Java her.
Bis denne ...
Maxx
gepostet vor 18 Jahre, 7 Monate von Kampfhoernchen
Doch habe ich. Wir haben das Grundgerüst sowohl in Java und in PHP entwickelt.
Da du den Rest wieder von deinem vorigem Post wiederholt hast, nur diesmal noch ausschweifender, gehe ich darauf nicht mehr ein, da ist mir die Zeit zu schade.
Denk einfach mal darüber nach, warum sich Java bei Hintergrundjobs und (teilweise) bei Client-Anwendungen durchgesetzt hat, aber auf dem Webserver nicht zu finden ist.
gepostet vor 18 Jahre, 7 Monate von hantu
Hi,
ich bin der Kollege von MrMaxx, habe ausgiebig Erfahrung in kommerziellen Webanwendungen mit PHP und mit Java/J2EE. Hab mir diesen lustigen Thread grade mal durchgelesen ... Kampfhoernchen, du machst deinem Namen ja alle Ehre ignorierst tapfer jegliche Argumente

Denk einfach mal darüber nach, warum sich Java bei Hintergrundjobs und (teilweise) bei Client-Anwendungen durchgesetzt hat, aber auf dem Webserver nicht zu finden ist.
Da lachen ja die Hühner! Gib mal bei Google Tomcat, Struts, JSP oder Servlets ein. Wirste wahrscheinlich nix dazu finden, weil niemand Java benutzt, um Webanwendungen zu schreiben ...
Ich entwickle zur Zeit für meinen Kunden eine PHP-Anwendung (www.handyspieletest.de) und bin ganz froh darüber nicht den ganzen J2EE-Wust aus meinem letzten Auftrag am Hals zu haben. Nichtsdestotrotz gibt es eine bestimmte Größe/Gattung von Anwendungen für die PHP einfach nicht geschaffen ist (das geben sogar die Entwickler von Zend zu, hab den Artikel leider nicht zur Hand), was machst du zB bei 100 oder mehr Datenbanktabellen? Oder zeig mir doch mal eine Online-Banking-Applikation die in PHP geschrieben ist!
PHP ist eine wunderschöne Technologie und perfekt geeignet für Websites, Foren, Blogs, Wikis und auch Browsergames. Aber ab einer bestimmten Komplexität ist eine saubere Java-Anwendung PHP nicht zuletzt wegen der bestehenden Frameworks, Technologien und IDEs einfach weit überlegen.
Akzeptier das doch einfach so, ist doch nicht perönlich gemeint
gepostet vor 18 Jahre, 7 Monate von Kampfhoernchen
Bevor sich MrMaxx noch 300 Kollegen holt, mach ich mal dicht.
EDIT:
Auf wunsch hin wieder geöffnet. Jetzt bitte nicht nochmal die ganzen Argumente wiederholen.
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Nabend,
*args* da möchte ich meine Frage stellen und auf eure Ratschläge hoffen, dann ist das Thema zu. Dann möchte ich in dem "Bitte wieder öffnen"-Thread posten, auch zu *g*
Nun probiere ich es nochmal
-------------------
Aaaaaaaalso,
in der Schule lerne ich derzeit "C" und bin auch sehr zufrieden mit mir
Mein "Telefonbuch", das die Daten in eine Datei schreib funktioniert, was will man mehr. Also habe ich auch "klein" angefangen.
Mir stellt sich nun die Frage, da Java ja auf C aufbaut, ist es sinnvoller, gleich mit Java anzufangen, oder hat PHP doch noch mehr vorteile, wenn man ein kleines Browsergame programmieren möchte?
Mir ist klar, dass das ein bisschen auf die Art des Spieles etc. ankommt, aber evtl. könnt ihr mir ja nen groben Tipp/eine grobe Richtung geben.
Gruß
gepostet vor 18 Jahre, 7 Monate von Sarge
Original von Murmeltier
Mir stellt sich nun die Frage, da Java ja auf C aufbaut, ist es sinnvoller, gleich mit Java anzufangen, oder hat PHP doch noch mehr vorteile, wenn man ein kleines Browsergame programmieren möchte?

Das wäre aber was ganz neues das Java auf C aufbaut da hast du wohl was falsch verstanden.
Wenn du C schon schreibst wird dir php leichter fallen. Insbesondere wenn du weiterhin rein imperativ programmierst. Sowohl Java als auch php5 bieten Dir allerdings objekt-orientierung das allheilmittel um uns aus der "Softwarekrise" zu führen hrhr.
Willst du nun erstmal schnelle erfolge so solltest du dich an php machen. Willst du nachhaltig was lernen so solltest du mit Java weitermachen. Allerdings wirst du dein BG-Ziel ersteinmal ziemlich zurückstecken.. denn du solltest dir Java erstmal so beibringen mit normaler applikationsprogrammierung um alles zu verstehen bevor du dich an die einzelnen spezialsache machst wie die sevlets etc
Also wenn du wirklich nur dein kleines browsergame entwickeln willst dann php.
Btw wäre es auch kein Problem ein Browserspiel in C über cgi zu schreiben *sich duck*
und off-topic:
Das Kampfhörnchen rot sieht wenn es nur das Wort Java liest ist euch doch sicher schon davor aufgefallen.. ich find die Diskussion hier sehr lustig .. ich glaube ihr solltet einsehen das keiner von euch den anderen überzeugen kann.
Ich mag Java auch nur sehr bedingt aber Kampfhörnchen du liegst in der beziehung falsch , sorry. *so ganz ohne gründe zu nennen lustig davon troll*
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Original von Sarge
Original von Murmeltier
Mir stellt sich nun die Frage, da Java ja auf C aufbaut, ist es sinnvoller, gleich mit Java anzufangen, oder hat PHP doch noch mehr vorteile, wenn man ein kleines Browsergame programmieren möchte?

Das wäre aber was ganz neues das Java auf C aufbaut da hast du wohl was falsch verstanden.
*rotwerd*
Da schein ich wohl wirklich was verwechelt zu haben.
*hm* naja, trotzdem kommt mir das recht bekannt vor, wenn ich die einzelnen Befehle sehe. Sie sind zwar verschieden, aber doch irgendwie ähnlich
Das ich nicht gleich mit dem Spiel anfangen kann, also mich gleich überfordere, ist mir klar *g*
Ich bin mir nicht sicher, ob ich lieber gleich ein Ergebniss haben möchte, oder doch lieber eine Programmiersprache, mit der das dann später alles sauber läuft
Ich werd da wohl nochmal die vor und nachteile auflisten müssen, wobei ich sagen muss, das mich Java mehr interssiert als PHP, auch wenn die Umsetzung und später mal einen Server zu finden, schwieriger ist.
gepostet vor 18 Jahre, 7 Monate von Mudder
So jetzt geb ich auch mal mein Senf dazu..
Generell
Egal wie lange man jetzt diskutiert und Argumente verteilt es wird nie ein Ergebniss geben! Die einen Schwören auf PHP andere auf Java - genauso wie einige auf den VW Golf schwören und andere auf den Opel Astra. "Fangruppen" dazuzu bringen das sie beides toll finden oder gar das alle zu einer Seite überlaufen gibts nur mehr als selten.. nämlich dann wenn eine Seite wirklich total überragend erscheint und keine Nachteile bietet.
Von daher sollte generell mal gesagt sein: Niemand wird hier gewinnen und es sollte auch niemand auf die Idee kommen sich nun als Sieger zu fühlen.
Und nun auch mal eine Frage: Programmiert sich eine der beiden Sprachen von selber? Sitzt man nicht mit beiden Sprachen Stunde um Stunde an seinen Scripts um sie zum laufen zu bekommen? Und wenn man richtig programmiert hat dann kommt bei beiden auch das gewünschte Ergebniss auf den Bildschirm.. bei den einen mit massenhaft vorinstallierten Klassen und bei anderen ohne Server oder Clientprobleme.
Und persönlich bleibe ich für Webanwendungen bei PHP.. Punkt!
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Original von Murmeltier
Ich bin mir nicht sicher, ob ich lieber gleich ein Ergebniss haben möchte, oder doch lieber eine Programmiersprache, mit der das dann später alles sauber läuft

Du kannst mir Java, genauso wie mit PHP "sauber laufenden" Code erzeugen (im Sinne von Fehlerfrei). Das hängt aber von deinen individuellen Fähigkeiten als Programmierer sauber zu arbeiten ab.
Du kannst dich darin unterstützen, indem du Konstrukte, die das Model View Controller Pattern (MVC) benutzt.
MVC sorgt für eine saubere Trennung von Buisinisslogik, Datenschicht und Darstellungschicht. Dieses Pattern ist komplett unabhängig von der verwendeten Sprache und für PHP genauso wie für Java geeignet. Es ist nicht das Allheilmittel und es gibt auch andere Möglichkeiten seinen Code sauber zu strukturieren, aber es ist unabhängig von der Wahl der Programmiersprache.
Was ich damit sagen will ist, das es viel mehr zu lernen gibt als nur Programmiersprachen, um deine Ziele zu erreichen.
Bis denne ...
Maxx
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Ja,
klar kann man, je nach Geschick, in allen Sprachen netten, funktionierendne Code schreiben.
Wie ich aber weiter oben gelesen habe, wird PHP oftmals für ein Problem verwendet, wo schnell mal ein Script her muss, Java dann für die "höhere" Klasse verwendet wird.
Ihr könnt mich nun steinigen *g*
Mir ist klar, das man mit beiden so gut wie alles lösen kann und auch mit PHP anspruchsvolle Sachen realisieren kann.
PHP ist sicher einfacher am Anfang, da es sehr sehr viele Tutorials gibt und fertige Funktionen, die man sich anschauen kann.
Doch wenn man Java erst einmal drauf hat, sollte das auch kein Problem mehr sein.
Ihr könnt mir also nicht direkt eine Richtung empfehlen, oder?
gepostet vor 18 Jahre, 7 Monate von pl-online
Also mal kurz gesagt, in PHP lassen sich durchaus Projekte in "höheren" Klassen schreiben. Ich denke die meisten Browsergames erreichen aber selten ein solches Niveau. Und Java für Webentwicklungen (auf die meisten 0815 Browsergames bezogen) ist einfach übertrieben. Für mich (das ist ausdrücklich nur meine Meinung) ist Java für ein Webprojekt wie ein Browsergame übertrieben. Denn seit den erweiterten OOP Möglichkeiten in PHP5 hat man mit PHP bereits schon eine (für das Web) mächtige Scriptsprache.
gepostet vor 18 Jahre, 7 Monate von Mudder
Ok.. deine Meinung, Murmeltier.
Man soll die höherwertigen Programmierer ja nicht in Ihrer Meinung kränken oder gar wiedersprechen. Sonst sitzen sie den ganzen Tag sauer vorm Rechner und verschwenden das Geld des Chefs fürs Internetsurfen.
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Original von Mudder
Ok.. deine Meinung, Murmeltier.
Man soll die höherwertigen Programmierer ja nicht in Ihrer Meinung kränken oder gar wiedersprechen. Sonst sitzen sie den ganzen Tag sauer vorm Rechner und verschwenden das Geld des Chefs fürs Internetsurfen.

Auf was genau ist deine Anspielung bezogen?
gepostet vor 18 Jahre, 7 Monate von Mudder
Tut mir leid doch, ohne wirkliche Argumente zu kommen, einfach zu sagen: PHP ist fürn Anfang ganz nett aber wer wirklich programmieren will um eine "höhere" Klasse zu erreichen, der muss Java verwenden ..
Sorry doch das klingt nicht danach das du hier auf Argumente aus bist sondern um eine simple Verteidigung DEINER Kenntnisse und deiner bevorzugten Sprache.
Und das ist auch das was ich vorher schon bei einigen rausgelesen habe und weswegen ich vorher geschrieben hatte das sich hier niemand als Sieger fühlen sollte.
Neben einigen wirklich guten Argument-Diskussionen geht das hier nicht um das Für und Wieder der beiden Sprachen, sondern um ne Klopperei zwischen den beiden Programmierergruppen. Jeder hat seine bevorzugte Sprache und beide wollen sie verteidigen. Bitte sehr, doch niemand sollte hier andere beleidigen oder sich als "höher" einstufen weil er ja mit einer anderen Sprache arbeitet.
Lest euch alle nochmal die vorgetragenen Argumente durch und wenn ihr halbwegs neutral seit dann schaut euch auch mal die Nachteile Eurer Lieblingssprache an und akzeptiert diese dann auch mal. PHP mit seiner verkorksten/verspäteten Klassenverwaltung genauso wie das übertriebene Klassenmanagment von Java. Tatsache ist nur das beide Sprachen Ihre Vorteile und auch Nachteile haben.
So und wenn Ihr das alle verstanden habt dann schreibt ne Antwort mit weiteren Argumenten und zwar am besten mit Pro und Kontra. Aber nicht sowas wie: Ich verwende Sprache A also ist das die beste und alles andere ist nur was für Kinder.
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Moment
Glaube du hast das falsch gelesen, oder ich habe es flasch rüber gebracht.
Meine Kenntnisse beschränken sich derzeit auf C, html *gg*, ein bisschen PHP und ein bisschen Java.
Das PHP für den Anfang ganz nett ist und Java für was "richtges" da ist, kam nicht von mir, das hat irgendwer über mir mal geschrieben.
Habe das nur wiedergegeben, ist jedoch nicht meine Meinung, da ich dazu beide Sprachen zu wenig kenne.
Muss mich da eben erst reinlesen.
Ich wollte lediglich wissen, ob ihr mir sagen könnt was mir, jmd. der sich derzeit mit C beschäftigt, leichter fällt, fallen kann
So, hoffe das ist nun klargestellt^^
gepostet vor 18 Jahre, 7 Monate von Sarge
moment einmal ich habe nicht geschrieben das php ganz nett fürn anfang ist und java für was richtiges.
Ich habe ledeglich deine Situation aufgenommen und zwar Schüler->Will programmieren lernen->Will aber auch irgendwann mal ein BG schreiben.
Und da ist die unterscheidung sehr einfach:
Willst du schnell ans Ziel des BG's kommen -> php am besten rein imperativ
Willst du viel übers programmieren lernen und irgendwann einmal dann dein BG schreiben -> Java.
Denn dort wirst du auf diesen Weg erstmal eine ganze ganze andere Dinge lernen durch die normale Applikationsprogrammierung bevor du an dein spezielles BG kommen wirst.
Nichts anderes habe ich behauptet.
gepostet vor 18 Jahre, 7 Monate von Murmeltier
Sarge, ich habe nicht dich mit dem Post gemeint.
Den Post, auf den ich mich bezog war noch weiter oben, vor meinem ersten irgendwo
gepostet vor 18 Jahre, 7 Monate von gorgo
ich muss aber mudder zustimmen.
Als relativ neutraler Leser der auch gern mal wissen möchte ob es für einen selbst interessant werden könnte java Serverseitig einzusetzen und sich damit über kurz oder lang zu beschäftigen, ist der Informationsgehalt trotz der hohen Textauswürfe doch recht beschränkt.
Ich kenn das ja selber wie man alle möglichen Argumente raussucht (die auch richtig sind aber eben die sache immer weiter auf ein anderes level treiben) um seinen Standpunkt zu untermauern ohne dabei noch auf das eigendtliche Grundproblem zu achten.
Ich hab bis jetzt noch nichtmal erkannt wo der für den Browsergamebetreiber bzw Spieler (ausdrücklich NICHT entwickler) Vorteil bestehen würde, wenn statt PHP+apache nun ein javaserver den Browser mit daten beliefert.
Denn wenn die Vorteile rein auf der Entwicklerebene liegen und die Ergebnisse die selben sind (geht ja wie ich nu verstanden hab auch garnicht um das einbeziehen von java clients) denn ist es letztendlich doch nur wieder ein weiterer von Krieg von Sprache A-anhänger vs. Sprache B-Anhänger.
gepostet vor 18 Jahre, 7 Monate von Teonas
Generell muss ich gorgos Fazit zustimmen, will aber mich darum bemühen etwas Fakten in die Diskussion zu bringen.
Ich habe mich in der Konzeptionsphase mal intensiv mit dem Vergleich von (im Wesentlichen) Java und PHP auseinander gesetzt. Diese Erkenntnisse habe ich zwar teilweise in mehreren Threads im Fortgeschrittenen-Forum beigetragen, will sie aber mal kurz hier für alle noch mal zusammenfassen.
Generell ist naktes Java (Servlets) wohl PHP überlegen, das hält auch noch mit dem Framework Velocity und JSPs. PHP gewinnt dann noch etwas durch unterstützende Techniken wie vorkompilierten Code.
Je weiter man es dann noch mit Frameworks (JSF, Struts, Spring), die alle auf JSP aufsetzen treibt, desto mehr Performance verliert man. Das ist aus Sicht des Webdesigners nicht so toll, sind für ihn doch JSPs zugänglicher. Leute aus der Coder-Ecke stört das mE nicht so wirklich.
Vorteile von Java sehe ich weiterhin im Bereich Session-Management, denn da läuft bei PHP viel über DB - und ein Festplatten-IO ist immer noch inperformanter als Speicherzugriff sowie unter Stress. Synchronisierte Objekte und Methoden bei Java erleichtern es deutlich, den erheblich teureren DB-Stress (wegen ggf. Netzwerk-Zugriff, Inter-Prozess-Kommunikation usw.) zu reduzieren. Das steigert mE deutlich die Performanz des Systems.
Weitere Vorteile ergeben sich mE durch die Entwickung mit objekt-relationalem Mapping (OJB, Hibernate - das vereinfacht die Datenbank-Entwicklung und die weitere Pflege erheblich!), aber da kenne ich den Stand bei PHP nicht. Auch Speicher-Datenbanken wie HSQLDB sind sehr einfach einzubinden und helfen sehr bei der Test-Standardisierung.
Um dem ganzen einen persönlichen Kontext zu geben: Ich entwickle mit Wulf an einem Pure-Java-Browserspiel, könnte aber auch C# als Sprache (und in Sachen Effizienz) einiges abgewinnen, wenn man sich dann nicht auf einen Windows-Server verlassen müsste (und das würde ich als langjähriger Windows-User immer noch nicht tun )
gepostet vor 18 Jahre, 7 Monate von Kapsonfire
ich habe mich ein bissl umgehört in meiner Kontaktliste und der großteil meinte das sie eher zu Java tendieren würden. Mit Java ist es einfacher für die zukunft Orientierte Browsergames zu machen. Jetzt kommt bestimmt der Einwand das dies mit PHP auch geht. Ich selber bevorzuge auch PHP, allerdings bin ich der Meinung das PHP auch viele Nachteile im Gegensatz zu Java bringt. Klar hat man in PHP anbindungen zu Ajax etc. aber mal davon abgesehen bringt Java viel emhr Möglichkeiten ins besondere auf der Basis von Grafiken/Animtationen/Effekte. Zudem kenn ich ein paar Leute die für eine große Firma arbeiten um einen Browser rauszubringen in dem das Javaapplet verbessert werden soll. Z.B. soll Java gleich beim Start des Browsers mitgestartet werden. Falls dann eien Java Seite aufgerufen werden soll, soll der angeforderte Code auf den Rechner verschlüsselt gespeichert werden umso Traffic und Leistung zu sparen. Also mein Tipp ist, wenn man die "neue Generation" von Browsergames programmieren will, sollte man schonmal anfangen mit Java seine Kentnisse zu erweitern, da dies in Zukunft wahrscheinlich wichtig sein wird.
gepostet vor 18 Jahre, 7 Monate von MrMaxx
@Mudder
... erstmal fühle ich mich nicht als Sieger in diesem Streit Java vs PHP (ich denke die Anspielung galt mir). Bei solch einer generellen Fragestellung einen Sieger zwischen PHP und Java ausmachen zu wollen wäre total unsinnig und kindisch.
Ich habe nicht behauptet, das PHP ungeeignet ist, sondern bin in meinen Posts fast ausschliesslich darauf eingegangen, was Kampfhörnchen über Java behauptet hat.
Zu BGWs Beitrag sag ich mal lieber garichts.
Maxx
gepostet vor 18 Jahre, 7 Monate von Amun Ra
Ich finde den Beitrag sehr interessant, auch wenn großteils
Standardargumente vorgebracht werden.
Jeder muß im Endeffekt für sich entscheiden was er präferiert...
Genauso gut könnt ich jetzt daher kommen und sagen,
Ruby on Rails, das ist es, ist besser als Java und PHP, nehmt das.
Oder Perl oder Python oder C#... oder oder oder.
In erster Linie will ich aber primär Daten via HTTP
zu einem Browser übertragen und das geht nun mal mit
den meisten Sprachen.
Meine Wahl ist auf Grund der Riesenauswahl an Informationen und
Ressourcen und der großen Community auf PHP gefallen.
Hatte es schon mal weiter oben gepostet, mich stört im Moment
lediglich, das es sich unzureichend für hintergrundjobs eignet.
@BGW
Klar hat man in PHP anbindungen zu Ajax etc. aber mal davon abgesehen bringt Java viel emhr Möglichkeiten ins besondere auf der Basis von Grafiken/Animtationen/Effekte.

*Kopfschüttel*
EDIT 1 u. 2:
Sehr interessant ist dieser Link:
niallkennedy.com/blog/uploads/flickr_php.pdf
gepostet vor 18 Jahre, 7 Monate von hantu
Original von Mudder
Egal wie lange man jetzt diskutiert und Argumente verteilt es wird nie ein Ergebniss geben! Die einen Schwören auf PHP andere auf Java - genauso wie einige auf den VW Golf schwören und andere auf den Opel Astra. "Fangruppen" dazuzu bringen das sie beides toll finden oder gar das alle zu einer Seite überlaufen gibts nur mehr als selten.. nämlich dann wenn eine Seite wirklich total überragend erscheint und keine Nachteile bietet.

MrMaxx und ich haben einfach versucht an den technischen Realitäten die Unterschiede zwischen PHP und Java aufzuzeigen. Ich bin selbst (sehr gerne) PHP-Programmierer, glaube jedoch, dass sich Anwendungen in der Größe von Ebay oder OnlineBanking-Applikationen nur sehr schwer in PHP entwickeln lassen. Wie gesagt, das ist ja auch nicht die Zielgruppe von PHP (was die Leute von Zend bestätigen, die wollen aus PHP kein zweites Java machen) und es ist weder eine Schwäche der Sprache oder der Leute, die sie benutzen, sondern es ist erstens gewollt und zweitens eine Folge des Mangels an Application Servern für PHP.
Es geht hier doch nicht um eine Seite, auf der du stehen musst, oder welche Lieblingsfarbe schöner ist ... Ich verstehe nicht, wieso du nicht einfach auf einer argumentativen Ebene hier einen Beitrag schreiben kannst, der sich mit den technischen Gegebenheiten der Problematik auseinandersetzt.
Wenn du dir den Thread nochmal durchliest, sollte dir auffallen, dass du für deine Behauptungen (das hier sei nur ein Thread um unsere Lieblingssprache zu promoten, alle anderen als "Kinder" abzutun usw) keinerlei wirkliche Argumente hast, sondern nur mit Spekulationen und Klischees hantierst.
Warum ist das Klassenmanagement (den Begriff, den du da verwendest, hab ich vorher noch nie gehört) von Java denn verkorkst? Erklär das doch mal!
Warum gibt es keine Online-Banking Applikationen in PHP, warum benutzt Ebay Java und nicht PHP?
Warum gibt es nichts vergleichbares zu Hibernate oder J2EE in PHP?
Warum orientieren sich erfolgreiche PHP-Bibliotheken so oft an bestehenden Java-Projekten (Smarty an JSP, Propel an Apache Torque, Phing an Ant)?
gepostet vor 18 Jahre, 7 Monate von Mudder
Nu bin ich wieder an allem Schuld.. Tatsache ist jedoch das es bei vielen Posts nur noch ums profilieren geht. Das du z.B. nur zu uns ins Forum gekommen bist um Java zu verteidigen belegt meine These auch irgendwo.
Und das du mein Post z.B. auch nur überflogen hast und dich gleich angegriffen gefühlt hast sieht man z.B. daran das ich dir nun erklären soll warum das Klassensystem von Java verkorkst sei.
Das von PHP ist verkorkst.. das von Java ist übertrieben. So und wiso das so ist das brauch ich hier nicht nochmal erklären denn das wurde inzwischen 2x von Kampfhörnchen beschrieben..
Tja warum arbeitet ebay nicht mit PHP sondern mit Java.. sicherlich nicht damit das Script leicht von einem Rechner auf den anderen kopiert werden kann. Das es eingesetzt wird liegt mit Sicherheit daran das man mit Java im Gegensatz zu PHP eben auch richtige Rechnerprogramme schreiben kann und nicht nur Webseiten.
Von daher ist Java hier auch eindeutig die bessere Sprache.. doch wo Serverseitige Programme nicht gebraucht werden da muss man klar sagen das das schlankere PHP die bessere Wahl ist.
Die Frage des Threads war, welche Sprache besser ist.. und hier sage ich das für Webseiten PHP deutlich besser ist als Java.. Für komplexe Serverprogramme und Anwendungen hingegen bleibt nur Java als Favorit denn PHP ist dazu nicht im Stande.
gepostet vor 18 Jahre, 7 Monate von Teonas
Noch ein kleiner Nachsatz, da Kampfhönchen ja das verflixte explizite Typ-Casten bei Java angesprochen hat:
Im fortgeschrittenen Forum wird gerade über SQL-Injections diskutiert - und die sind schwerer bei einer streng typisierten Sprache wie Java. In einen int gehen eben nur Zahlen und nicht jeder beliebige Wert, wie bei einer typfreien Sprache wie PHP.
Weil ich das Thema Objekt-relationales Mapping angesprochen habe (es schockiert mich etwas, dass dieses Thema bei den Injections-Diskussionen keine Rolle spielt), hier ein vielversprechender Link für PHP, den eine kurze Suche bei Tante G ergeben hat: wiki.cc/php/Object_Relational_Mapping
gepostet vor 18 Jahre, 7 Monate von Duke_
Original von hantu
Warum gibt es keine Online-Banking Applikationen in PHP, warum benutzt Ebay Java und nicht PHP?

Jedenfalls nicht deshalb weil jemand hergegangen ist, PHP mit Java verglichen hat und dann die Entscheidung für Java gefallen ist, nehme ich an.
Sondern weil eine Bank aus mehr als einer Online-Banking Applikation besteht und Ebay aus mehr als dem Onlineauktionshaus und dann die Integration in bestehende Applikationen im Vordergrund steht.
Würde die Bank nur aus der Online-Appl. und Ebay nur aus dem Auktionshaus bestehen, wäre es interessant warum Java den Vorzug bekommen sollte.
gepostet vor 18 Jahre, 7 Monate von Kallisti
Yahoo benutzt php + eigene C Erweiterungen
Amazon benutzt Perl....
Wo ist nun die grosse Weisheit? )
gepostet vor 18 Jahre, 7 Monate von Teonas
Original von Kallisti
Yahoo benutzt php + eigene C Erweiterungen
Amazon benutzt Perl....
Wo ist nun die grosse Weisheit? )

Bestimmt nicht darin plakative Beispiele zu zitieren, sondern eher die zwei Optionen unter den Anforderungen von Browserspielen zu analysieren
gepostet vor 18 Jahre, 7 Monate von blum
warum yahoo dieses und ebay jenes verwendet, liegt sicher nicht darin begründet, welche sprache besser ist oder mehr kann, sondern welche sprache den anforderungen, die man an das system stellt, am nächsten kommt.
wenn ich eine kartoffel schäle, nehme ich ein anderes messer als zum brotschneiden. welches messer ist nun besser?
mich wundert ehrlich gesagt, welche portale hier zum vergleich zu browserspielen herangezogen werden.
ein portal mit mehreren millionen benutzern pro tag und zigtausend appliktionen mit einem browserspiel mit paar hundert, von mir aus paar tausend benutzern am tag, mit klick-bau-mail-kampfsystem zu vergleichen, finde ich schon sehr sehr weit hergoholt.
zumal man mit jeder sprache miesen code produzieren kann, vielleicht mit php eher als mit java, aber das liegt dann am programmierer.
weil hier jemand ajax erwähnte. je mehr es in die richtung web 2.0 geht, wird mehr auf seiten des clients sprich browsers gearbeitet. und somit macht es immer weniger unterschied, ob ich nun eine dynamische xml-seite mit java ausgebe oder mit php.
ich selbst programmiere in php. ich weiss nicht, ob java besser wäre, aber für meine anforderungen reicht php vollkommen, auch wenn manche sachen ziemlich nervig sind, zB die argumentenreihenfolge der builtin-funktionen.
da ich mein spiel aber für ajax programmiere und nur selbst geschriebene klassen verwende, wärs wahrscheinlich ne arbeite von wenigen Tagen, das ganze in java umzuschreiben und der benutzer würd davon nichts merken.
ausserdem steht es jedem frei, sprachen zu mixen. wenn ich unbedingt eine applikation in c oder java haben möchte, schreib ich sie eben darin und ruf sie aus php oder was auch immer auf.
just my 2 cents.
blum
gepostet vor 18 Jahre, 7 Monate von MichaelB
Original von blum
ausserdem steht es jedem frei, sprachen zu mixen. wenn ich unbedingt eine applikation in c oder java haben möchte, schreib ich sie eben darin und ruf sie aus php oder was auch immer auf.
just my 2 cents.
blum

Ist das so? Die Idee hatte ich auch, das Spiel in Java schreiben und das drumherum mit php machen, einfach um bestehende php- Lösungen nutzen zu können.
Aber ohne dafür Gründe nennen zu können, wird mir bei dem Gedanken für ein Projekt mehrere Sprachen zu benutzen schlecht
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Voraussetzung dafür ist eine mehrschichtige Architektur, die sauber getrennt ist (sollte eigentlich Standart sein) und dann eben eine Teamgrösse, die eine Trennung überhaupt erforderlich macht.
Ich denke, das Geschwindugkeitsvorteile etc alle nicht ziehen.
Der einzige Grund für mich php im Präsentationslayer einzusetzen wäre, wenn sich für ein Team guter PHP Coder finden würden, die diesen Bereich übernehmen wollen (ich bin schliesslich communitydriven).
Als Projektmanager, der sich sein Team aussuchen kann würde ich immernoch lieber in "einer Welt" bleiben.
Die Gründe hierbei sind die aufeinander abgestimmten Tools und Technologien.
In Java gibt es dafür eine Java-php Bridge, die die Kommunikation sehr erleichtert.
Mr.Maxx
gepostet vor 18 Jahre, 7 Monate von Kallisti
Original von Teonas
Original von Kallisti
Yahoo benutzt php + eigene C Erweiterungen
Amazon benutzt Perl....
Wo ist nun die grosse Weisheit? )

Bestimmt nicht darin plakative Beispiele zu zitieren, sondern eher die zwei Optionen unter den Anforderungen von Browserspielen zu analysieren
Der Sinn meines Postings war es zu zeigen, dass es namhafte Beispiele fuer alle Alternativen gibt. Alles kann Sinn machen, auch bei einem Browserspiel - es gibt einfach kein "das vs das" und das eine gewinnt.
Bei mir ist es auch die Frage PHP in der Praesentationsschicht und C als Backend zu verwenden oder Java als Komplettloesung. Auch Perl waere sicher eine moegliche Option.
Ich tendiere jedoch weiterhin zur PHP+C Loesung, weil sich so div. fremde Elemente (punbb, dokuwiki, wordpress) besser integrieren lassen.
Momentan ist es so, dass die PHP Files mit der Datenbank kommunizieren und das Backend dann wiederum ebenso mit der Datenbank. Es gibt keine direkte Verknuepfung. Mit Java und Servlets waere das anders.
Die Frage ist nur - wo braucht man das ueberhaupt? Im Grunde ist es sowieso noetig das Spiel in Ticks ablaufen zu lassen, die Daten muessen zur persistenten Haltung sowieso in die DB geschoben werden und lassen sich ueber eine Datenbank dann auch im Backend effizient abfragen...
Imho ist diese direkte Kommunikation momentan das einzige pro Java Argument, dass mir einfiele, unabhaengig davon, dass natuerlich Front- und Backend verschmelzen wuerden.
gepostet vor 18 Jahre, 7 Monate von ObiJ
Imho ist diese direkte Kommunikation momentan das einzige pro Java Argument, dass mir einfiele, unabhaengig davon, dass natuerlich Front- und Backend verschmelzen wuerden.

Mh... also ich sehe besonders die Vorteile von Java wenn man Applets verwendet. Da man nun bequem PHP abhängen kann ich denke da besonders an Java3D. Ebenso finde ich die möglichkeit Threads zu benutzen sowie Sockets einfach genial. Naja, jetzt werden einige sagen aber mit ajax kann ich auch eine bidirektionale verbindung zu einem Server aufbuen. (die ist doch bidirectional oder, kenn mich mit ajax nicht aus) Aber ich glaube es hiess php vs. java für die BG entwicklung und nicht php + zusatz gegen java. ^^
Dennoch würde ich sagen das es für ein simples BG wie OGame PHP die bessere Wahl wäre, da es mit php viel einfach zu realiesieren ist. Java würde hier das ganze wohl nur zu komplieziert machen. Vorallem da das erlernen von Java weit aus schwieriger ist als das von PHP.
Achso ein großer Vorteil wurde glaube ich noch nicht genannt, er ist zwar ziemlich banal aber dennoch entscheident, da Java auch Clientseitig benutzt werden kann, kann man einige Progammteile Clientseitig bearbeiten lassen, was wiederum den Server schont.
Meiner Meinung nach kann man trotzdem nicht prinzipel sagen das Java besser ist zum erstellen eines BG, da es immer auf die Art und Umfang des BG ankommt.
So ist das ^^
gepostet vor 18 Jahre, 7 Monate von Kallisti
Es geht hier nur um die Serverseite, was clientseitig getan wird, ist ja erst einmal voellig unabhaengig davon..
gepostet vor 18 Jahre, 7 Monate von hantu
Original von Kallisti
Yahoo benutzt php + eigene C Erweiterungen
Amazon benutzt Perl....

Hast du Links mit weiteren Infos dazu? Würde mich wirklich sehr wundern, wenn amazon außer im Frontend Perl benutzen würde. Auch das mit den eigenen C-Erweiterungen würd ich mir gerne mal im Detail ansehen.
Ansonsten gute Info, die auf jeden Fall zu denken gibt.
gepostet vor 18 Jahre, 7 Monate von TheUndeadable
Ich weiß ja nicht, was du davon hast, dass es OpenSource wird. Dadurch wird Java auch nicht wunderbar verändert und es bleibt garantiert, dass nur Sun weiterhin 'sein' Java den Namen Java tragen darf.
Von OpenSource habe ich erstmal nichts. Es ist weder ein Qualitätspluspunkt noch ein Feature Pluspunkt (allerdings auch kein Minuspunkt). Mal schauen, was daraus gemacht wird.
gepostet vor 18 Jahre, 7 Monate von MrMaxx
Was bringt mir da Open Source???
Open Source ist ermal so allein gestellt nichts weiter als ein simples Buzz-word!!!
Open Source wird einfach zu oft mir Freier Software gleichgesetzt.
Open Source ist erstmal nichts weiter als das, was das Wort aussagt: Offengelegter Quelltext. Das bedeutet noch laaange nicht, das du damit auch etwas machen darfst. Erst wenn er unter einer wirklich OFFENEN Lizenz steht, wie z.B. der GPL oder BSD License sagt das ganze auch etwas aus.
Nicht umsonst gibt es Projekte wie GNU Classpath ( www.gnu.org/software/classpath/ ), deren Ziel es ist die Java Api unter der GPL nachzuprogrammieren.
So long ...
Mr.Maxx
gepostet vor 18 Jahre, 7 Monate von Kallisti
Original von hantu
Hast du Links mit weiteren Infos dazu? Würde mich wirklich sehr wundern, wenn amazon außer im Frontend Perl benutzen würde. Auch das mit den eigenen C-Erweiterungen würd ich mir gerne mal im Detail ansehen.
Ansonsten gute Info, die auf jeden Fall zu denken gibt.

Ist mir auf diversen Seiten so begegnet, als ich nach "php vs java" gesucht habe und einfach mal paar Backgroundinfos und Erfahrungsberichte gelesen habe. :-) Noch vor dem hier.
Das hier war auch ganz interessant: troutgirl.com/blog/index.php?/archives/22_Friendster_goes_PHP.html
gepostet vor 18 Jahre, 7 Monate von Fasi
Bei meinem Project the-west.org verwende ich zwar Java (auf Apache / Tomcat) aber nur etwa 1% ist wirklich in Java geschrieben. Die restlichen 99% sind mit JSTL und anderen Taglibs geschrieben.
Der Vorteil von JSTL ist: man ist schnell, kann Änderungen am Code machen ohne Tomcat neu zu starten.
Nachteile: Code kann schnell unübersichtlich werden.
Ich verwende folgende Taglibs:
JSTL: jakarta.apache.org/taglibs/doc/standard-doc/intro.html
AJAX: ajaxtags.sourceforge.net/
DISPLAY: displaytag.sourceforge.net
MAIL: jakarta.apache.org/taglibs/doc/mailer-doc/intro.html
STRING: jakarta.apache.org/taglibs/doc/string-doc/intro.html
Beispiel zum senden eines Mails:

blablabla...

Beispiel alle IG Mails eines Users anzeigen via Display Taglib:

SELECT user_name,title,date,new,mail_id,from_id
FROM mail LEFT JOIN user ON mail.from_id=user.user_id
WHERE mail.user_id=2
ORDER BY date DESC


">


Die Display Taglib ist wirklich genial! Listen und Tabellen kann man damit sehr schön anzeigen.
gepostet vor 18 Jahre, 7 Monate von MichaelB
@Fasi
Das hört sich echt spannend an mit den Taglibs, da muss ich mal reinschauen. Leider hat mich mein Dozent für die nächste Zeit so mit Arbeit zugeschi****, dass ich das erst mal verschieben muss.
Kannste vielleicht mal kurz erklären, wie das läuft? Stelle mir das grad so vor:
- Lib hinzukopieren
- tld in die jsp einbinden
- benutzen, fertig
Ist das soweit richtig?
Das es unübersichtlich wird, glaube ich, schließlich hat man ziemlich viel Logik in den Seiten anstatt im Servlet. Öhm, aber das mit den 99% ist doch übertrieben, oder? Ich meine irgendwo müssen doch auch deine Spielberechnungen stattfinden...
Das hört sich auch so an, als ob es ziemlich krass dem MVC- Modell widersprechen würde. Die Frage ist jetzt, wie hoch die Wahrscheinlichkeit ist, dass man bei nem Browsergame auf ein anderes Ausgabemedium als nen Browser wechselt oder auf ne andere DB als MySQL.
Gruß Michael
gepostet vor 18 Jahre, 7 Monate von Fasi
Installation ist so wie du gefragt hast:
Lib (ein .jar) in WEB-INF\lib kopieren
Tld einbinden. Z.B: <%@ taglib prefix="mt" uri="http://jakarta.apache.org/taglibs/mailer-1.1" %>
Und schon kannst die Tags im JSP verwenden.
Meine Spielberechnungen sind zu einem grossen Teil mit Taglibs gemacht , ist etwas chaotisch. Es ist aber geplannt dies mal in eine saubere Java Classe auszulagern
Wenn man das MVC Model beibehalten will, dann darf man natürlich keine SQL Queries mehr via Taglibs machen. Um ein Resultset als Object darzustellen, das in einer Java Classe geladen wurde, sind aber Taglibs immer noch eine gute Lösung.

Auf diese Diskussion antworten