knuspermagier.de
Ein L und zwei P. Philipp!

PHP?

TL;DR: Ich finde pgadmin 3 doof und deswegen schrieb ich einen 800-Wort-Blogpost zu meiner Beziehung zu PHP, wtf?

Es muss so gegen 2003 gewesen sein, als ich anfing, mich mit PHP zu beschäftigen. Mein erstes Projekt war ein „Recommendation”-System, nicht mehr als ein Formular, mit dem man eine Webseite an seine Freunde empfehlen konnte — quasi nur ein Aufruf der PHP-mail()-Funktion.

Seitdem machte ich so gut wie alles mit PHP. Gästebücher, Content Management Systeme, Bilder-Galerien, Blogs, Foren. Ich versuchte möglichst alles selber zu bauen, probierte rum und lernte allerhand.

QUOTE.fm und watched.li, meine bisher größten Projekte sind ebenfalls beide mit PHP umgesetzt. Irgendwann kam ich auch davon ab, alles selber machen zu müssen und entschied mich bei den beiden Projekten dafür, dass Yii Framework als Basis zu nehmen.

Ich hatte auch nie wirklich ein Problem mit PHP. Klar, es hat viele Probleme und Unstimmigkeiten, aber es funktionierte doch immer ganz gut und wenn man ein bisschen Erfahrung hat, kann man gut um die Probleme herum arbeiten.

Außerdem ist es auch ein großer Vorteil, dass PHP einfach überall vorinstalliert ist. Im letzten Jahr baute ich mehrere kleine Spielereien in NodeJS oder Ruby und oft genug bekam ich als Feedback „Oh, das würde ich auch gern benutzen, aber keine Ahnung, wie das geht, NodeJS, wtf!!“ (So ungefähr). Wären es kleine PHP-Scripte gewesen, die man einfach irgendwo hin wirft, wäre das sicher nicht passiert.

Obwohl ich PHP so sehr mag, bin ich konstant auf der Suche nach Alternativen. Eine Zeit lang beschäftigte ich mich mit Ruby und Rails, schaute ein paar Screencasts, beschloss allerdings erstmal die Finger davon zu lassen, weil es nach einem ziemlich großen Einarbeitungsaufwand aussah, wenn man genau verstehen will, wie das alles funktioniert. Davon abgesehen fand ich das ganze Ruby/Rails-Versionen-Chaos, was ich so am Rand mitbekomme, immer ein wenig abschreckend.

Während meines Praktikums in München, also um 2009 rum, begeisterte ich mich kurzzeitig für Java und Wicket, stellte aber schon nach kurzer Zeit fest, dass das alles viel zu fett ist für kleinere Spaßprojekte.

Irgendwie landete ich immer wieder bei PHP. Und MySQL. Einfach. Konnte ich. Überall installiert. Funktioniert. PHPMyAdmin ist auch klasse. Perfekt.

Mitte 2013 beschäftigte ich mich dann, beruflich bedingt, eingängiger mit NodeJS und NoSQL. Für ersteres konnte ich mich dabei recht schnell begeistern, letzteres fand ich etwas komisch, probierte bei Placescore aber doch mal MongoDB aus. Nach ein paar Wochen stellte sich das allerdings als eher weniger optimal heraus und ich wechselte auf… Postgres. Weil ich soviel schlechtes über MySQL las.

Aktuell bin ich damit ganz zufrieden. Alles funktioniert gut und in manchen Bereichen sieht es auch mächtiger aus als MySQL (z.B. Unterstützt es nativ JSON in Tabellen, und PostGIS sieht besser aus als die Geo-Features von MySQL). Aber die Hürde von etwas weg zu wechseln, was man seit 10 Jahren benutzt ist halt ziemlich hoch.

Die Umstellung von PHP zu NodeJS ging ja noch irgendwie. Javascript mache ich eh seit Jahren und wie man es nun „richtig” schreibt, statt nur im Browser mit dem DOM zu spielen, lernt man auch vernünftig schnell — der Wechsel zu Postgres fühlt sich jedoch heftiger an.

Vielleicht liegt das auch an den Tools. MySQL und PHPMyAdmin wirkten immer so „richtig”. Für Postgres gibt es zwar phpPgAdmin, aber das sieht nicht ganz so toll aus und — jetzt das eigentliche Problem — wenn ich kein PHP mehr entwickle, will ich auch kein PHP + Webserver installieren, nur um phpPgAdmin zu benutzen. Also schaute ich mich mal nach GUI-Tools um.

Leider sind die, die ich bisher testete alle nicht so geil. pgadmin 3 ist langsam, hässlich, unkomfortabel und stürzt ständig ab und PG Commander sieht zwar okay aus, hat aber kaum Features. Trotzdem werde ich es jetzt mal versuchen zu benutzen und zur Not gibt’s ja auch immer noch die Kommandozeile.

Was will ich mit diesem Blogpost sagen? Ich bin vielleicht nicht der größte Freund von Veränderungen, weiß aber, dass sie ganz gut sind um voran zu kommen. Ich kann ja nicht noch 20 Jahre weiter PHP entwickeln.

Ich kann zwar nicht beurteilen, ob NodeJS + Postgres nur eine kurze Episode in meiner Programmiererlaufbahn sind, oder ob ich es länger durchziehe, aber auf jeden Fall macht es mir aktuell recht viel Spaß und zu empfehlen.

Bevor nun viele Leute fragen, warum nicht Ruby oder Python: Ruby probierte ich, Sinatra find ich auch ganz knorke, und insgesamt hab ich nichts dagegen, könnte ich genauso machen. Python allerdings nicht, denn da gibt’s keine {}-Klammern.