Java ODER PHP Server Side Web App und warum? [geschlossen]

7

Ich erstelle eine Web-App mit viel DB-Zugriff und Analyse und Parsing von Daten, Java ist die Sprache, mit der ich mich am wohlsten fühle, aber kürzlich wurde mir gesagt, dass ich PHP verwenden sollte, um DB-Zugriffsprotokolle zu erstellen viel einfacher.

Ich habe keine großartigen Kenntnisse von PHP, wäre aber bereit, für den Gebrauch zu lernen, wenn es die bessere Option wäre, was Funktionalität, Portabilität usw. betrifft.

Die Web-App wird gegen eine Oracle DB laufen und Flex für die GUI verwenden. Bitte helfen Sie Erfahrungen mit ähnlichen Projekten und was Ihren gewählten Ansatz besser gemacht hat, oder nur Meinungen jeglicher Art.

    
Chris 19.10.2010, 16:02
quelle

8 Antworten

30

Wenn Sie mit Java vertraut sind, sehe ich nicht die Notwendigkeit, PHP zu lernen / zu verwenden. Es gibt nichts, was PHP tun kann, das Java nicht kann.

Es stimmt, dass PHP im Großen und Ganzen eine viel permissivere Sprache ist und einige Aufgaben schneller und mit weniger Code erfüllt werden können. PHP hat sicherlich weniger eingebaute Abstraktion als Java. Aber wenn Sie mit Java vertraut sind, würde ich sagen, bleiben Sie dabei.

(Ich sage das als PHP-Entwickler.)

    
Pekka 웃 19.10.2010, 16:05
quelle
6

IMHO, wenn Sie Java kennen, verwenden Sie JPA.

Wenn Sie etwas Neues und schnelles Prototyping lernen wollen, verwenden Sie python / django.

    
Paulo Scardine 19.10.2010 16:07
quelle
4

Es besteht ein großer Unterschied zwischen der Syntax, der Philosophie und der Implementierung der zwei Sprachen. Ich würde vorschlagen, dass "DB-Zugangsprotokolle viel einfacher machen" ist kein besonders guter Grund für die Isolierung einer Sprache gegenüber einer anderen.

Mein Hintergrund ist ein PHP-Programmierer, aber ich unterstütze derzeit mehrere große Java-Web-Anwendungen. Wenn Sie mit beiden Sprachen am selben Punkt anfangen würden, würde ich definitiv PHP gegenüber Java bevorzugen - aber eine ausführliche Diskussion der Gründe würde viel mehr Zeit und Platz beanspruchen, als hier verfügbar sind. Wenn Sie jedoch bereits über starke Java-Kenntnisse verfügen, müssen Sie die Kosten für den Erwerb der richtigen Fähigkeiten in PHP abwägen. Aufgrund der Unterschiede in der Funktionsweise dieser Systeme werden Sie Ihr Java-Wissen genauso gut finden eines Hindernisses als einen Vorteil bei der Erlangung von PHP-Kenntnissen.

Andere Faktoren, die ich Ihnen vorschlagen möchte, sind:

1) Architektur - PHP erfordert ein weit besseres Verständnis der zugrundeliegenden Protokolle als Java (wo viele Funktionen von libs / frameworks bereitgestellt werden)

2) einfache Bereitstellung

3) Leistungsaspekte - die Verwendung eines Opcode-Caches bedeutet, dass der Unterschied zwischen einfachen Programmen, die in Java und PHP geschrieben sind, klein ist, da die ersten normalerweise in sehr komplexen Frameworks geschrieben sind, kann PHP oft den Vorteil haben. Es hat sicherlich nicht die gleiche Komplexität für Speicher mngmnt

4) TCO - PHPs Benutzerfreundlichkeit ist ein zweischneidiges Schwert - Sie müssen eine Menge über Java wissen, nur um ein Programm laufen zu lassen, aber die Welt und sein Hund denken, dass sie guten Code in PHP schreiben können. IME ist es schwieriger, kompetente PHP-Programmierer als Java-Programmierer zu finden.

    
symcbean 20.10.2010 10:12
quelle
3

Für mich kommt es auf die Leistung an. Wenn man sich PHP anschaut, wurde es sicherlich auf extrem großen Plattformen eingesetzt (Facebook verwendete es fast ausschließlich zu Beginn), aber im Allgemeinen wird es auf kleineren Plattformen verwendet. Java ist für mich bei der Skalierbarkeit überlegen, aber nur, wenn Sie wissen, dass Sie skalieren werden.

Es ist sehr wichtig, den zugrunde liegenden Lebenszyklus einer Anfrage zu verstehen. Das Wissen, was ein Java-Container ist und wie ein Tomcat-Server läuft, hat mir dabei geholfen, die Auswirkungen auf die Performance enorm zu verstehen.

Versuchen Sie nicht, sich über einzelne Attribute wie "einfache Programmierung" oder "Datenbankkonnektivität" zu entscheiden - sie sind so unterschiedlich, dass Sie sich auf ein paar "wichtige" Dinge konzentrieren können Auswahl basierend auf voreingenommenen Informationen. Das heißt, PHP macht es einfacher, sich mit einer Datenbank zu verbinden, wenn man sie auf einer Oberflächenebene betrachtet - "Ugh! Ich muss eine JDBC installieren, wtf ist das ???", usw. - aber das ist die Entschuldigung des faulen Mannes. Es gibt nichts, was Java nicht kann, was PHP kann (das ist mir bekannt).

Für mich stellt sich die Frage, wie Sie realistisch ( Lesen: realistisch ) sehen, wie Ihre Anwendung funktioniert - planen Sie Tausende davon Besuche pro Stunde oder redest du hundert Schläge pro Tag wie die große Mehrheit der kleinen Projekte da draußen?

Die Vorteile von PHP in kleineren Projekten, insbesondere für den Programmierer, der die OOP-Architektur nicht vollständig versteht, sind enorm - aber seien Sie nicht faul und nehmen Sie einfach PHP, weil es einfacher ist. Java ist extrem mächtig und einfach durch das Lernen kann es Ihnen mehr beibringen, als Sie gemerkt haben, dass Sie nichts über OOP und gute Programmierpraktiken im Allgemeinen wussten (wenn Sie wie ich aus dem Autodidakt kommen).

Grundsätzlich würde ich sagen, analysieren Sie Ihre geschätzte Projektlast plus Anlaufzeit, wenn Sie das eine oder andere lernen müssen, Ihre Effizienz und Skalierbarkeitsanforderungen messen, Fragen stellen und dann entscheiden, welche Plattform besser ist.

Hoffe, dass hilft ....!

    
dudewad 15.05.2013 19:48
quelle
2

Mit PHP können Sie viele Web-Dinge mit weniger Aufwand und weniger Codezeilen erledigen als mit Java, und ich spreche nur von meinen eigenen Erfahrungen - es gibt immer einige, die Ihnen sagen: "Verwenden Sie Java, PHP ist Mist "und es wird diejenigen geben, die dir sagen" PHP ist so viel besser als Java ". Hör nicht auf uns, probier es einfach aus oder du wirst es nie erfahren!). Ich mache eine Menge Java-Sachen, aber was Web-Apps betrifft, bin ich nicht glücklich damit. Für die meisten unserer Kunden ist es auch nicht möglich, Java zu verwenden, so dass ich sowieso nicht viel Auswahl habe.

Es gibt einige gute PHP-Frameworks (Yii zum Beispiel, die ich am meisten mag) und wirklich gute Orms als Doktrin oder aktive Aufzeichnung. Wenn du die Sprache lernen musst und dich für agile Entwicklung interessierst, denke auch an Ruby (Ruby on Rails) oder Python (Django), denn das sind die coolen Kids in der Stadt:)

    
Comic Sans 19.10.2010 17:45
quelle
0

Nun, das eigentliche Problem hier ist, dass Sie Bibliotheken brauchen, um Ihre Arbeit zu erleichtern. JVM als Plattform hat viel mehr Möglichkeiten als PHP, wenn Sie Ihre Anwendung nur mit eingebetteten Sprachen hybridisieren können. Außerdem ist Hibernate fantastisch als ORM (Object Relational Mapping), das im Grunde genommen Ihre Tabellen als POJOs betrachtet.

Wenn Sie viele rohe Sachen machen, benutze ich gerne Sequel, eine Ruby-Bibliothek, die sehr gut auf JRuby funktioniert. Im Allgemeinen finde ich, dass der duck-typing / concise-Code, den man an PHP mag, in Ruby über JRuby (oder Jython for you Python-Enthusiasten) absolut replizierbar ist.

Die beste Bibliothek wird neben der Art der Arbeit, die Sie tun, von der Funkiness des Schemas diktiert, mit dem Sie es zu tun haben. Müssen Sie viele komplizierte Abfragen durchführen, indem Sie Spalten aus mehreren Tabellen gleichzeitig abrufen? Oder ist es mehr in Richtung "Ich muss alle Bestellungen für einen bestimmten Kunden abrufen und in einem Bestellhistorie-Diagramm anzeigen"? ORMs eignen sich besser für Letzteres, und das ist es, was Web-Apps sind, aber Ihre Erwähnung von Parsing und Analyse lässt mich fragen, ob es eher das Erste ist.

Hibernate bietet Ihnen die größte Flexibilität, finde ich. Es ist keine gute Idee, automatisch generiertes Zeug zu verwenden, ohne es zu überprüfen, aber wenn Sie Eclipse verwenden, gibt es ein Plugin, das die Klassen für Sie generiert.

Ein weiterer Grund für Java: Wenn Sie sich den Glassfish-Container für Ihre Webanwendung ansehen, hat er für Sie JDBC-Pools erstellt und Sie können sich die Statistiken und die Verwaltung des Pools ansehen. Wenn Sie viel Datenbankzugriff haben, könnte dies sehr nützlich sein.

    
jcalvert 19.10.2010 16:31
quelle
0

Ich denke, es gibt keinen Bedarf für PHP, Sie können einfach mit Java gehen. Wenn Sie diese Anwendung als eine Webanwendung betrachten, können Sie PHP verwenden. So können Sie von überall darauf zugreifen

    
user480743 19.10.2010 16:39
quelle
0

Warum nicht beides? Quercus wird PHP in Java ausführen. Sie können Java-Code aufrufen, als wären es native PHP-Funktionen. Sie bekommen das Beste aus beidem. Und Ihr PHP wird tatsächlich schneller als unter Apache laufen.

Ich bin ein PHP-Programmierer, und während PHP-DB-Zugangsprotokolle "einfacher" (strittig) sein können, würde ich nicht sagen, dass sie besser sind. Java kann DB-Verbindungspooling verwenden und Daten, Code und Objekte "persistieren".

    
Brent Baisley 19.10.2010 18:12
quelle

Tags und Links