Dr. Mönchmeyer

- anracon

Dr. Mönchmeyer - anracon

Warum setzen wir auf PHP und nicht Java?

PHP bewährt sich nicht nur in kleinskaligen Anwendungsbereich ....

 

Unsere Kunden wissen, dass wir in der Vergangenheit mehrfach Java/JEE-basierte-Projekte auf seiten der QS oder des operativen Projektmanagements begleitet und mehrfach die Angebotserstellung zu Projekten mit JEE-Technologie intensiv unterstützt haben.

Dennoch übernehmen wir Entwicklungsaufträge für serverbasierte Anwendungen selbst nur, wenn diese mit PHP gelöst werden können und dürfen. Dies hat einerseits mit der Größe der Projekte zu tun, die wir bewältigen können. Andererseits sehen wir PHP (und zugehörige Bibliotheken wie Frameworks) im Gegensatz zu vielen JEE-Entwicklern als vollwertiges Instrumentarium für die Entwicklung moderner browser- und server-basierter Anwendungen an - auch für Web-Services.

Manchmal geht es mit PHP einfacher und schneller ...

Ich vertrete die Auffassung, dass sich viele web-basierte Lösungen - auch im Enterprise-Rahmen und sogar für 4-tier-Architekturen - durch PHP 5.X/7.x sogar effizienter und bei einem bestimmten Auftragsvolumen sogar kostengünstiger erstellen lassen als mit Java. Natürlich hängt dies immer von den konkreten Anforderungen ab. Aber PHP bietet heute so viele Bibliotheken und Tools, dass sich gerade kleinere und mittlere, aber hochwertige Individual-Lösungen in schnellen, dynamischen Entwicklungszyklen erstellen lassen. Dies kommt uns als kleinem Unternehmen, dessen Kapazität von Haus aus auf Projektgrößen im Bereich mehrerer Monate bis zu einem Jahr begrenzt ist, sehr entgegen.

Argumente gegen den Einsatz von PHP sind oft nicht valide

Die typischen von JEE-Entwicklern ins Feld geführte, angebliche "Argumente" gegen die Tauglichkeit von PHP für komplexe Lösungen halten wir für schlicht falsch oder unzureichend. Genannt werden oft folgende Punkte:

  • Angeblich fehlende Skalierbarkeit von PHP
  • Unter PHP werde keine Objektorientierung erzwungen - dies eröffne schlampiger Programmierung Tür und Tor
  • Es gäbe unter PHP angeblich keine Möglichkeit, eine 4-Schichten-Architektur darzustellen
  • Die unter PHP fehlende Applet-Fähigkeit sei angeblich ein Nachteil, da einem damit viele Möglichkeiten auf der Client-Seite verloren gingen.


Folgende Punkte führen wir als Gegenargumente ins Feld:

  • Wir glauben, dass man PHP Anwendungen sehr wohl skalieren kann, wenn man entsprechende Anforderungen von vornherein in seine Projekte einplant. Das beste Beispiel für die heute mögliche Skala der Skalierbarkeit liefert u.a. Facebook.
  • PHP bietet spätestens seit PHP 5.4 alles, was man als Entwickler für eine saubere objektorientierte Durchführung seiner Projekte benötigt. Alle gängigen OO-Patterns lassen sich vollständig und sauber unter PHP 5 abbilden. Bliebe das Thema Mehrfachvererbung - nun ich denke, dass man über PHP Traits eine mindestens ähnlich wertige und deutlich flexiblere Methode zur Umsetzung etlicher typischer Ziele von Mehrfachvererbung etabliert hat.
    Daneben gibt es dann auch die Möglichkeit rein funktional zu programmieren. Aber das kann durchaus ein Vorteil sein, wenn es im einen oder anderen Projekt oder in bestimmten (numerik-lastigen) Programmen auf Performance ankommt.
  • Den Punkt mit der "sauberen" Programmierung lasse ich nach allem, was ich bisher an JEE-Code gesehen habe, überhaupt nicht gelten. Man kann in formal korrektem OO auch einen Haufen Schrott produzieren. Auch für JEE-Entwickler gilt im Ernstfall: "A fool with a tool is still a fool ..."
  • PHP lässt selbstverständlich eine Darstellung von komplexen SW-Systemen auf einer vierschichtigen Architektur zu. Wer meint, ein PHP-Programm könne nur als Server und nicht auch als Client gegenüber anderen PHP-Programmen auf anderen Servern (in separaten Netzwerksegmenten) fungieren, der hat entweder keine Ahnung oder verwechselt die logische Schichtenarchitektur einer SW-Applikation mit bestimmten JEE-typischen Implementierungsmodellen für bestimmte SW- und Objekt-Konstrukte.
  • Die Tatsache, dass man unter PHP keine besonders ausgezeichneten OO-Konstrukte oder eine spezielle Art von Laufzeitumgebung (bestimmte Container) einbeziehen muss, kann man bei der Realisierung einer Schicht für Business-Logik-Aufgaben oder Middleware auch als Vorteil ansehen.
  • Tja, und zum Thema Java Applets sage ich nur: Java-Applets und die zugehörigen Browser-Plugins stellen erstens ein Sicherheitsrisiko dar und sind zweitens bei den heutigen Möglichkeiten von Javascript-Frameworks in Kombination HTML5 sowie Ajax- und Ajaj-Technologie wirklich komplett überflüssig.


Weitere positive Seiten von PHP

Mit PHP kann man zumindest unter Linux aber auch Dinge tun, die mit Java nur schwer möglich sind. Bei Bedarf kann man betriebssystembezogene Skripts erstellen, die bei Bedarf eine Vielzahl von Aufgaben übernehmen können. Ferner sehen wir folgende positive Eigenschaften:

  • Gerade WEB-bezogene Aufgaben können in PHP schnell und komfortabel gelöst werden.
  • Die Performance unter PHP ist gut und keineswegs schlechter als unter JEE.
  • Die Anbindung an und Interaktion mit MySQL-, Maria- und Postgres-Datenbanken ist sehr gut.
  • PHP Bibliotheken für praktisch jeden Zweck gibt es wie Sand am Meer.
  • Es gibt gute Template-Engines für PHP.
  • PHP erlaubt auch die Erstellung systemnaher Skripte.
  • PHP ist geeignet für kleinere Firmen, die ihre eigenen Frameworks erarbeiten wollen oder müssen.


Mit all diesen Argumenten für PHP möchte ich JEE keineswegs seine Existenzberechtigung absprechen. Aber gerade im Bereich von Projekten mit überschaubaren User-Anzahlen und Transaktionsanforderungen hege ich die begründete Vermutung, dass PHP-Lösungen sehr viel schneller und kostengünstiger realisiert sind als gleichwertige Java-Lösungen. Nicht zuletzt, weil ich an einigen Java-Projekten in verschiedenen Rollen mitwirken durfte.

 

 

 

 

 

 

© 2005-2017

Dr. R. Mönchmeyer,
Johannes-Haag-Str. 3, Augsburg • Tel.: +49 82150880450

Dr. R. Mönchmeyer,
Johannes-Haag-Str. 3, Augsburg.
Tel.: +49 82150880450

© 2005-2017, Dr. R. Mönchmeyer,
Johannes-Haag-Str. 3, Augsburg.
Tel.: +49 82150880450

Powered by anracom.com

Powered by anracom.com