# PHP oder Java?



## javabar (21. Mai 2012)

Hallo!

Ich arbeite gerade an einer Online-Such-Datenbank, welche ich im Moment in PHP entwickle (+JS, jQuery, Ajax).

Im Web-Bereich kenne ich mich in PHP besser aus, aber Java finde ich als Programmiersprache eleganter, vor allem was Klassen angeht, Algorithmen sind in Java einfacher und schneller entwickelt, laufen auch schneller, auch mit den vielen Hilfsfunktionen von NetBeans/Eclipse.

In Java werden auch Programmcode und Objekte bereits im Speicher gehalten, PHP dagegen lädt immer alles neu.

Soll ich mich besser gleich für Java-EE entscheiden oder PHP (in Java EE fehlt mir so die Erfahrung, Grundwissen, Tomcat hab ich schon mal installiert und zum Laufen bekommen). PHP hat aber auch den Vorteil, man muss nicht immer neu kompilieren das ganze (ein "svn update" reicht, bei Tomcat muss man etwas mehr machen, auch wenn mit "ant" das Compilieren schnell vonstatten geht).

Grüße

Egon Schmid


----------



## Marcinek (21. Mai 2012)

Mach doch ein mix:

Frontend lässt du in PHP und auf Serverseite implementierst du Webservices in Java. Zumbeispiel mit JEE.


----------



## XHelp (21. Mai 2012)

Bei der nicht vorhandenen Beschreibung des Projektes lässt sich schwer etwas sinnvolles sagen. Natürlich wirst du im Java-Forum mehr Java-Fürsprecher finden.
Wenn du dich in PHP besser auskennst - mach's in PHP. Wenn du mehr in Java lernen willst - mach's in Java. Wenn es dir egal ist - wirf eine Münze. Du kannst dir auch Vergleiche/Artikel diesbezüglich im Internet suchen.
Aber um konkret an diesem Beispiel etwas sagen zu können, muss du vollständig dein Projekt beschreiben, wobei auch dannach die Antwort "mach was du willst" kommen kann.

P.S. Mix ist imho die schlechteste Alternative


----------



## javabar (22. Mai 2012)

Hm.. es wird eine Wortdatenbank. Sie enthält viele Wörter und viele Relationen untereinander, wo man Infos zu Begriffen schneller finden soll als per Google/Wikipedia. (Links zu Wikipedia werden auch dabei sein).

Es werden viele Anfragen per Ajax gesendet, und es müssen auch teils komplexere SQL-Befehle "berechnet" werden, und auch Wörter drehe ich teils um für die Suche:


```
SELECT * FROM words WHERE word LIKE 'be%' and backward LIKE 'ne%'
```
 findet alle Wörter der Form 'be...en' in einem Bruchteil einer Sekunde.
Ich habe einen Server mit 16 GB RAM, 6 TB Festplatte, 8-Core-CPU und es können bei größerer Nutzung viele Anfragen kommen ud der kostet auch nicht mal soviel.

Ich denke, Java würde die Anfragen schneller verarbeiten, aber die meiste Arbeit wird MySQL verrichten. (Ausser ich entlaste MySQL durch Memory-Cache).

Eine geteilte Lösung PHP und Java wär evtl. auch denkbar.

Grüße

Egon


----------



## Marcinek (22. Mai 2012)

Du kommst zustpät ;D

heise online | Google erweitert Suchfunktion um Informationsdatenbank


----------



## javabar (22. Mai 2012)

Schade, dabei ist der Google-Dienst ganz neu.

Ich hatte auch schon eine Idee, wie man die DB leicht zu Informationen kommen kann:

z.B. es sollen Fachbegriffe auch Bereichen zugeordnet werden, z.B. Wirtschaft, IT, Sport oder Medizin.
Wenn ein Wort besonders häufig in Wirtschaftstexten vorkommt und in anderen Texten weniger, ist die Wahrscheinlichkeit groß, dass es sich um einen Wirtschafts-Begriff handelt.

Durch eine Art "Quiz-Spiel" könnte man Begriffe auflisten die wahrscheinlich Wirtschaftsbegriffe sind, und durch Anklicken so die Zuordnung bestätigen.

Aber wenn Google da schneller ist... naja, Pech gehabt. 

Gruß

Egon


----------



## filth (24. Mai 2012)

XHelp hat gesagt.:


> P.S. Mix ist imho die schlechteste Alternative



Hi,
kannst du sagen, warum du der Meinung bist?

Ich habe nämlich die gleiche Idee gehabt - für ein Portal mit ca 1.000.000 Pi/ Tag das Frontend als Symfony2 - Framework laufen lassen, aber das Model in Java auslagern. Wir haben gerade den Datenimport hinter uns - da hat es gezeigt, dass Java bei den Sql Operationen deutliche Performancevorteile hat.

Gruß
Alex


----------



## XHelp (24. Mai 2012)

filth hat gesagt.:


> kannst du sagen, warum du der Meinung bist?


Weil das Projekt allein schon mehr Wartung erfordert. Du brauchst dann Leute, die sich in PHP auskennen und Leute, die sich in Java auskennen. Diese müssen auch ständig sich absprechen, damit die Teile zum Schluss auch passen. Warum nicht direkt alles in Java?
Wenn es an solchen Punkten scheitert, wie z.B. "dass man immer wieder neu kompilieren muss", dann verwendet man einfach die zur Verfügung stehende Werkzeuge nicht richtig oder erst gar nicht.


----------



## filth (24. Mai 2012)

Ok aber es sind mehr organisatorische Gründe. Die sind in kleinen Teams, wo die PHP Entwickler auch gleichzeitig die Javaentwickler sind zu vernachlässigen.

Gibt es aus technischer Sicht Vor oder Nachteile?


----------



## maki (24. Mai 2012)

> Die sind in kleinen Teams, wo die PHP Entwickler auch gleichzeitig die Javaentwickler sind zu vernachlässigen.


Sowas ist eher selten IME, dass PHP Entwickler auch glechzeitig gute Javaentwickler sind.
Aber davon abgesehen verstehe ich nicht warum man unnötige Komplexität nicht lieber vermeiden sollte..


----------



## filth (24. Mai 2012)

Naja bei uns ist es der Fall. 

Die Komplexität steigt zwar, aber gewinnt man nicht an Performance? 
Ich habe selbst wenig bis keine Erfahrung mit J2EE, habe aber wie gesagt, beim Datenimport bemerkt, dass die Operationen in Java gegenüber php-PDO um ca Faktor 5 schneller waren. Täusche ich mich da oder ist es tatsächlich so?


----------



## maki (24. Mai 2012)

> Die Komplexität steigt zwar, aber gewinnt man nicht an Performance?


PHP läuft nicht schneller als Java, ist aber schneller zu programmieren.


----------



## filth (24. Mai 2012)

Das script an sich nicht - aber nochmal: im direkten Vergleich beim Datenimport benötige ich mit einem PHP Script ca 12 Sekunden für 200 Datensätze. Die gleichen Operationen in einem Java-Programm laufen in 4 Sekunden. Warum ist es (grundsätzlich) so? Die Querys sind exakt gleich.


----------

