PHP5-Entwickler im Aufstieg

TreppeIhr habt spannende Projekte, ein tolles Team, fünf Wochen Ferien… aber tut mir leid… Ihr arbeitet mit PHP… Ich möchte eher Richtung Java gehen“, hat ein Bewerber für die Software-Entwickler-Stelle seine Absage begründet.

Ich denke, das Image von PHP ist ein Problem für Unternehmen, welche PHP-Talente suchen. Erwähnt man PHP, dann kommt dem Software-Entwickler Stichworte wie “Gästebuch-Programmiersprache”, “Personal Homepage Processor”, “Spaghetti-Code”, “Sicherheitslücken in phpBB” in den Sinn.

Java wurde gut vermarktet. PHP nicht

Warum dieses Image? Gelernt wird an den Hochschulen Java. Java wird auch für den Beispielcode in Standartwerken verwendet. Java wurde durch eine grosse Enterprise entwickelt und – ganz wichtig – vermarktet.

PHP entstand als Plauschprojekt eines jungen Dänen für seine Homepage. Die Sprache ist einfach und die Lernkurve steil. Viele Einsteiger können damit schnell ihre Blogs programmieren. Bis Mitte 2004, als PHP5 freigegeben wurde, war die Unterstützung von OO-Techniken mangelhaft.

PHP-Image im Wandel

Der PHP5-Launch markiert aber auch den Beginn des Wandels: Mit der OO-Implementation von PHP5 lässt sich jedes GoF-Pattern umsetzen. Guter Software-Architektur mit PHP steht nichts mehr im Wege. Unserer Umsatz im Millionen-Bereich wird über ein in PHP5-Kampagnenmanagement-Tool abgewickelt.

Die Industrie akzeptiert langsam PHP als ernstzunehmende Programmiersprache: IBM unterstützt Zend und setzt es bei Kundenprojekte ein. CASE-Tools wie Visual Paradigm unterstützen PHP Code Generation. Bestimmt wird diese Entwicklung gefördert durch den Web2.0-Hype und dessen Einsatz bei Unternehmen wie Flickr oder Yahoo.
iX Programmiersprachenindex
Der O’Reilly Programmiersprachenindex (aus iX 6/2007), welcher auf die Anzahl verkaufter Bücher nach Programmiersprache basiert, zeigt: Java verliert gegenüber PHP, Javascript und Co. an Boden.

PHP-Entwickler sind gut bezahlt

Entscheidet man sich als Software-Entwickler für ein Unternehmen, welches PHP5 (natürlich heuzutage immer in Kombination mit Javascript) in professioneller Weise einsetzt, so wird man dafür gut bezahlt. Denn gute Ingenieure im Bereich PHP zu finden, ist schwierig. Da die meisten, wie auch der Bewerber oben, eher Richtung Java/C# gehen.
Gleichzeitig ist die Nachfrage als Folge des Web2.0-Booms hoch.

Hohe Nachfrage, niedriges Angebot = Hoher Preis. Damit meine ich nicht nur das Salär, sondern all jene Dinge, womit eine Unternehmen den Mitarbeiter belohnt: Auswahl der Projekte, Einrichtung des Arbeitsplatzes, Ferien, Freiheit.

Eine aufstrebende Technologie, Web2.0-Affinität, eine liberale Programmiersprache, gutes Salär. Dies sind Gründe welche dafür sprechen, auch als gut qualifizierter Ingenieur sich für PHP5 zu entscheiden.

This entry was posted in Programming, Web Development. Bookmark the permalink.

15 Responses to PHP5-Entwickler im Aufstieg

  1. Manuel says:

    Hey
    Sehr schöner Eintrag!
    Ich benuze selber gerne PHP, und kann nicht verstehen warum immer nur schlecht über PHP geredet wird!

    MfG

  2. brumm says:

    da bin ich aber nicht gemeint, oder 😉

    gruesse aus indien

  3. Hehe… nein, da ist niemand bestimmtes gemeint… das ist ein fiktiver Bewerber 🙂

  4. maze says:

    Also es klingt ja echt lustig was hier behauptet wird. Hat aber in keiner Hinsicht einen halt.

    > “Personal Homepage Processor”
    Ja was ist es denn anderes. Code oben rein, Output unten raus. UND DAS WARS. Achso, ja will hier noch jemand auf PHP Threading ansprechen?

    > Mit der OO-Implementation von PHP5 lässt sich jedes GoF-Pattern umsetzen.
    Ja wir Programmieren hier Objektorientiert. Bitte erklärt mir hier jemand welches GoV Pattern so UNENDLICH sinnvoll sein soll bei einer STATELESS Application. Das Singleton. Oja, wir lieben es doch alle. 😉

    > PHP-Entwickler sind gut bezahlt
    Ja, jeder der sich vermarkten kann, bekommt gut bezahlt bekommen.

    > Hohe Nachfrage, niedriges Angebot = Hoher Preis
    *g* niedriges Angebot. Ja von den Guten.
    Das Prinzip lässt sich ja auch gut an Waren erklären. Ich kaufe hier “Afrikanische Butter”, die ist logischerweise teuerer als die einheimische. Deswegen kaufen bei uns auch alle Afrikanische, oder?

    > Eine aufstrebende Technologie, Web2.0-Affinität, eine liberale Programmiersprache, gutes Salär. Dies sind Gründe welche dafür sprechen, auch als gut qualifizierter Ingenieur sich für PHP5 zu entscheiden.
    mhm… Genau… Tut mir nen gefallen. Streicht hier bitte alles bis auf den “Salär”…

    Mein Thema zu dieser Sache ist:
    PHP nimmt an Bedeutung in der “Software Entwicklung” zu. Das aber nicht aus Grund der Qualität oder Performance sondern weil nunmal ein PHP Programmierer KEINE TAU vom “Programmieren” haben muss, sondern vom Scripten.
    Bytecode bleibt bytecode und Script bleibt Script.
    Also seht PHP als das was es ist und nicht als das für was man es “misbraucht”.
    mfg maze

  5. maze says:

    hehe, gebs zu, der Sprachenkrieg war absehbar.

    Ich wollte das mit dem Input rein, html raus schreiben, dann hätte ich mir aber die leier über xml anhören müssen.

    Ist natürlich quatsch ShareNothing Architektur.
    Ob ShareNothing, oder SharedStorrage ist egal, wenn es darum geht wie die Technik von php funktioniert. Wir haben es hier mit einer reinen Piped Based Programm Architecture zu tun. Der Webserver startet php als cgi, fcgi…
    Bei der JavaSpring Methode haben wir stetige Objekte die von mehreren Applicationen ohne Pipes direkt genutzt werden können.

    Das mit den Programmpatterns, war hier natürlich passend. Ich finde es echt wunderbar wenn du mir ein paar sinnvolle Patterns nennen könntest, die du in Webapplikationen effektiv einsetzt.

    Die Kluft zwischen Spagetti PHP und PHP Freaks ist groß. Für jedes Unternehmen einfach einzusehen ob Pfusch, oder nicht?!?!?!
    Jop und die riesigen Suchmaschienen konzerne, die PHP als super Technologie einsetzen. Ja, wo php drauf steht, ist auch php drinnen? Ich selber könnte hier überhaupt keinen effektiven Einsatz sehen. Hab ja nichts gegegen das bliebte Tool programming.

    Bytecode oder nicht, ja das ist hier die Frage. JIT oder Script. Evtl precompiled. Mhm Zend Optimizer mhm..

    Also um hier mal etwas klar zu stellen. PHP kann Java oder .NET das Wasser reichen. Egal was für Tests wir fahren, PHP ist langsamer. So und jetzt kommt die Ausnahme “type one letter and view” “coding” geht leider mit Java nicht so einfach. Dem PHPler wird hier die möglichkeit sofort geboten den Output zu sehen. (erspart viel planungszeit *g*)
    Ich kann nur so viel sagen.
    Wenn sich hier jemand von Web2.0 reden traut, soll er mal überlegen ob das was PHP bietet Web2.0 darstellt *g*. Man soll ja nicht immer das Frontend in Augenschein nehmen, vieleicht auch mal denken das das Backend 1.0 bleibt *g*.

  6. maze says:

    hmm… soll ich das rätsel des design patterns auflösen das hier effektiv wäre?
    Nennt sich Flyweight… Das Pattern reduziert Object creation. Und jetzt wiso? Weil Object creation eine kostspielige Sache ist, wenn man sich die PHP Struktur anschaut. Java hat richtige Objects, keine erweiterbaren universal teiler.

    Also Objektorientierung, bei wenig objectcreation. Die ganze effektivität geht spätestens bei den Pointern verloren. (Und ich dachte zuerst Managed Pointer seien schlimm in Java. Hierbei kann ich nur auf den Core von PHP verweisen, wie hier Pointer funktionieren *g*)

    Aber ich habe gute Neuigkeiten für alle PHP Fans. Ihr habt ja die Möglichkeit “einfach” den Source von PHP zu erweitern und anzupassen. Das ist dann C++ Code. Dann geb ich mich geschlagen, weil damit erreicht ihr die Performance von Java locker. *g*

    Sorry, aber der Mittelweg heißt hier deffiniv Java oder .NET.
    mfg nomIad

  7. Chregu says:

    PHP ist in C geschrieben und nicht in C++, nur so…

  8. maze says:

    > Ich hatte nicht gedacht das PHP tatsächlich so einen schlechten Ruf hat.
    Ich will hier nicht den Ruf von PHP ankreiden, sondern sagen das es hier misbraucht wird.

    > Nach dieser Zeit weiss ich aber ganz sicher das Java keine managed-pointer hat (das nennt sich garbage collecting und hat rein gar nichts mit pointer zu tun), aber das nur am Rande.
    Sorry, mein Fehler, ich strebte den Vergleich zu .NET an. Java hat übrigens keine Managed Pointer sondern References. (Wenn ich sagen darf die eine ähnliche funktion erfüllen wie die Managed Pointers aus .NET). Nur hat sich jetzt mal jemand gefragt, wie Objektreferenzen in PHP abgebildet sind. Immerhin sollten wir nicht abstreiten das seis Pointer oder Referenz dies der Grundstock der Objektorientierung ist.

    > Was PHP aber mit Pipes zu tun hat…..
    Schon mal PHP als CGI (FCGI) betrieben???
    stdout stdin? Funktioniert genau gleich wie alle anderen Webtechnologien??? Kein Kommentar

    > Erstens kann man alles Cachen
    Ja das beliebte RAM Caching unter PHP. 😉
    > im C-Teil ab und sind somit wohl sogar schneller als z.B. in Java.
    Jop schneller, aber nur solange C am Werk ist. Wir wollen jetzt hier mal nicht vergessen wie wir Datenbanken auslesen. Nach dem auslesen wird das auch verarbeitet.
    (.NET mit CodeOptimierung kann bis um 15% schneller als C++ Code sein ohne speziellem Prozessor Compiler)

    > Design Patterns
    Ich habe nie daran gezweifelt das alle GOF Patterns in PHP umsetzbar sind. Ich zweifle nur die effektivität von PHP in Verbindung mit der Objektorientierung an und das aus gutem Grund. Wie oben schon erwähnt ist die ObjectCreation in anderen Sprachen auch aufwendig. IM VERGLEICH zu PHP aber geradezu unbedeutend. Wir haben hier mit Atoms basierenden Datentypen zu tun. multifunktionale RAM Fresser.

    > Web2.0 Backend
    Elends viele Posts im Internet schreiben über Web2.0. Das erste was man findet? AJAX. Ok Vorteil von AJAX. Client State based Applications. Relativ einfach zu erstellen. Weil XML Schnittstelle Backend unabhänig.
    Reduziert AJAX die Anfragen an den Webserver? Nein, nur in seltenen Fällen gibt es eine Reduktion da heutige Applikationen von der Datenvielfalt abhänig sind. Aber AJAX läuft doch schneller? D.h. mehr Arbeit für den Webserver. Gröstenteils weniger Optimierbare Datenbank Abfragen, da eher viele kleine Anfragen kommen. So und jetzt kommt die Frage aller Fragen. Was hat PHP für ein Connection Pooling? CGI? Threadsave PHP Module? Die meisten HighPerformance Apps auf PHP laufen aber mit FCGI oder lighttp. Mysql Connection Pooling? Verschiedene Benutzer auf Datenbank…….

    Ok, wir wollen hier nichts schwarz malen, PHP wir sich in den kommenden Jahren noch stark entwickeln. Ich glaube sogar das es bald möglich ist mit den mpm erweiterungen von apache zu arbeiten…
    Für alle die schon jetzt testen wollen was aus PHP wird: http://www.php-compiler.net/doku.php *g*

  9. maze says:

    Jawohl, einsperren…

    Warum wir hier bei den Pointern “hängen” bleiben ist echt komisch. “Managed Pointer gibts in .NET im überigen auch nicht”. Darf ich mal Fragen was ref und out ist? Könnte doch was mit den komischen Pointern zu tun haben?
    Ach, zu dem wo sich ein Webentwickler “vortrauen” sollte. Vieleicht sollte er sich sogar in die Diskussionsseite auf Wikipedia vortrauen, hoffe das ist nicht zu tief. Zum Thema Smartpointer. Achja, hier würde ich Expertenseiten empfehlen.
    (www.codeproject.com oder http://www.expertsexchange.com).

    > Sicher kann man php auch als CGI betreiben, muss man aber nicht. Wenn wir schon beim Missbrauch sind, auch Java könnte man als CGI betreiben.

    Wir lieben alle die Rechteverwaltung. Vorallem bei Seiten wo die Nutzer Speicherplatz haben und evtl sogar mit FTP upload machen können. Je nach dem…
    Ja bei Tillate kann ich mir das gut vorstellen mit den Fotos und FTP. u:apache für alles. Tja…
    Achja, .NET kommt mit dem Rechte Management ohne Probleme zurecht mit threading sogar.. uhu…

    “Vorteil das Strings keine Objekte”
    Ja, wir lieben das Dynamic Typing. “warte mal, war meine Variable jetzt eine Value oder ein Objekt? Ach egal, das intelligente Boxing löst das Problem so oder so…” Boxing? Gibts das überhaupt in PHP? Ne, das waren doch die Atoms, die komischen. Wie können die String sonst so rumgeschickt werden? 😉 Mir fällt da grad auf, ich hab ja ” ” gemacht… wir das jetzt auch noch geparsed? ‘g’

    Steht auch im Wiki wie ein PHP Objekt aussieht?
    Hat php ein Traits model für Objekte? 😉

    Ja zu mod_php Ansichtssache. Ich schwör auf FCGI. Warum? Weil die schnelle,großen Seite “NIEMALS” lighttpd nützen würden. Ist eigentlich Tillate auch eine schnelle Seite?

    Ja, Php wird sich weiterentwickeln. Vieleicht habe n wir in 10 Jahren sogar eine komplett Objektorientierte Library. Die Sprache finde ich ja nicht mal so Problematisch, ich hätte da was am Interpreter auszusetzten. Ich meine theoretisch könnte jede VM mit PHP auskommen. Halt nicht den ganzen müll was php sonst noch drinnen hat, aber vieles. So ala PHP für .NET, neko, javavm.
    Aber das schönste an der Sache ist, das ich mit Java,.NET jetzt schon zufrieden bin weil es wirklich objektorientiert ist. Threading bietet…………………….

    mfg maze

  10. r.g. says:

    Ich kann nicht verstehen, wie jemand auf die Idee kommt, mit PHP könne “Spaghetti-Code” programmiert werden.

    Eine Anweisung “goto” gibt es in PHP nicht.

  11. chregu says:

    und hier
    http://pastie.org/334058
    der ganze Kommentar inkl. Code …

  12. r.g. says:

    Ups, der goto-php-Befehl war ja gar nicht in meiner PHP-Referenz (http://www.selfphp.de).

    In C++ brauche ich den goto für genau einen Fall: Um aus zwei verschachtelten For-Schleifen auszutreten:

    for(i=0;…) {
    for(j=0;…) {
    if(x[i] == y[j]) {
    goto finish;
    }
    }

    finish:

    Mit der Anweisung break; würde die äussere For-Schleife fortgesetzt.

    Gut, dass man das auch mit PHP kann. Einen anderen (sinnvollen) Verwendungszweck für eine »goto«-Befehl gibt es heute nicht mehr.