PHP kategorisiert
PHP ist nur eine Klebe Sprache wie BASH oder Perl. Es ist gut darin, aber nicht gut in irgendetwas anderem, abgesehen von ernsthafter Arbeit. Die Sprache ist nicht gestaltet. Es entsteht lediglich durch zufälliges Zusammenhacken verschiedener Codes (Code-and-Fix).
Kompilierte Sprachen
Im Gegensatz zu PHP ist Java eine kompilierte Sprache, die ordnungsgemäß entwickelt wurde. Es gibt JSRs, die die Sprache definieren, viele Frameworks und Konzepte für Unternehmen wie EJB, JMS, ESB, Spring, Struts, Hibernate und andere.
Unternehmenssoftware
In Bezug auf Unternehmenssysteme ist Java EE eine Lösung, die dem Zweck entspricht (Enterprise Edition), wohingegen PHP in Unternehmen eingesetzt wird, die versuchen, Kosten zu senken, indem sie billige Arbeitskräfte mit geringerer Qualifikation einstellen.
Es wurden erhebliche Anstrengungen unternommen, um PHP mit verschiedenen Frameworks in das Enterprise-Segment zu ziehen. Vor allem Zend Framework 2 . Das grundlegende Problem ist hier nicht die Objektorientierung von PHP, sondern das Fehlen von Design, das Fehlen starker Typisierung, nicht standardisierte Lösungen für Standardprobleme (Art von Hacks für alles) und das völlige Fehlen einer vorgeschriebenen Architektur.
Software Design (Architektur diskutiert)
Mit PHP liegt die Last der Softwarearchitektur immer noch bei den Entwicklern, die einen sehr schlechten Job gemacht haben, dh oft überhaupt keine Architektur haben, nur zufälligen Code und Fehlerbehebung. Sicherheit und Transaktionen fehlen und müssen von den Entwicklern überprüft werden. In Java wird eine Lösung als EJB bezeichnet. Bedenken Sie auch, dass in PHP nichts passiert, wenn Sie Ausnahmen auslassen oder verschiedene Fehler machen. Das ist bis zur Laufzeit. Mit Java erhalten Sie Warnungen und Fehler direkt zur Entwurfszeit. Das nennt man Robustheit, aber mit PHP kann man nur weiter träumen.
Multithreading
PHP unterstützt kein Multithreading. Der Code ist immer ein einzelner Thread. Dies beeinträchtigt die Leistung bei nicht trivialen Problemen unter schwerer Last. Mit Java EE wird Multithreading vollständig unterstützt, beispielsweise über die Runnable-Schnittstelle.
Support und Standards
Berücksichtigen Sie auch die Bereitstellung, die Webdienste und andere Standards. Während es in Java große Unternehmen wie Oracle, IBM, RedHat, Apache und viele andere gibt, hat PHP nur Zend.
Fazit
Zusammenfassend ist PHP eine sehr schlechte objektorientierte Sprache. Streng genommen ist es nicht einmal objektorientiert, sondern hybride, was ab Versionen> 5 schlecht ist, weil OOP mit prozeduraler Programmierung verwechselt wird. Ich würde PHP nur als Klebstoff wie BASH empfehlen, aber für ernsthafte Arbeiten würde ich Java EE verwenden.
Verwandte Gedanken
Das Hauptproblem des neuesten Zend Framework 2 ist, dass es versucht, wie Java EE zu sein, aber nicht in der Lage ist, mindestens einen remote vergleichbaren Satz verfügbarer Pakete, Funktionen, Tools, Automatisierung, Fehlerprüfung, Architektur, Design und Funktionen bereitzustellen alles.
Meiner Erfahrung nach ist die Verwendung von PHP für komplexe Projekte teurer als mit Java.
Es gibt auch einige Gerüchte, dass PHP für Pretty Horrible Programming steht . Das kann ich bestätigen.