text: Die Entscheidung, trotzdem alledem mit PHP weiter zu machen, habe ich zum ersten Mal bewusst in 2005 getroffen. Damals waren um die 20000 Zeilen Code und HTML im Repository, heute sind es locker 130000 (plus noch Einiges, was hoffentlich nirgendwo mehr im Einsatz ist, was ich aber aus Rücksicht auf andere Nutzer nicht einfach rauswerfen kann).
  Auf der anderen Seite ist das Projekt nun ziemlich alt, und schleppt einigen Ballast mit sich herum, den man neu schreiben _müsste_.
  Wenn man an der Stelle steht, lohnt es sich doch, mal nachzudenken, ob man nicht etwas größer denken sollte.
  Das habe ich die letzten paar Monate gemacht. Und experimentiert. Und festgestellt, dass mich die Javascript-basierten Frameworks anekeln, weil ich Javascript und seine Abarten verabscheue. Ich werde nicht um JS herum kommen, aber ich muss die Zeit, die ich damit verbringe, nicht auch noch maximieren.
  Übrigens ist meine Meinung über die meisten Frameworks negativ. Die meisten wollen eine perfekte Lösung für ein Problem sein, aber keines von Ihnen ist es. Wenn mir ein Framework Hindernisse in den Weg legt, weil meine Idee, wie man die Dinge tut, nicht zum Framework passt… sagen wir, ich habe nicht umsonst Schraubendreher in verschiedenen Größen, mal Schlitz, mal Kreuz - und nebenbei noch Zangen und Hämmer und…
  Rust? Ganz nett, ja, aber mit Sprachen mit komplexen Syntaxen bin ich noch nie lange glücklich gewesen. Ease of use, und so.
  Dann stolperte ich über Go. So a la "Stimmt, das gab es ja auch noch. Hm.". Und hab' angefangen, die ersten Funktionen dahin
  auszulagern. Ich schätze, als nächstes kommt der Datenbanklayer. Und dann der Objektcache. Und dann BBCode. Und dann das Rechtesystem.
  Vielleicht schreibe ich zwischendurch noch irgendwann das Linux-ZModem darin neu. Nach 20 Jahren Stillstand sollte man das mal in Erwägung ziehen.
  Ein guter Anfang wäre vermutlich, das ganze Ajax-Gehampel mal neu zu machen. Es wäre viel gewonnen, wenn Fehlermeldungen zuverlässig da ankommen, wo ich sie haben möchte, und nicht irgendwo unter gehen, wo ich nicht mal eine Chance hatte, einen Blick darauf zu werfen - oder Du.
  Das ist zu einem gewissen Teil erledigt. Schwer zu sagen, ob 50 oder 90% - gefühlt sind es eher 50%, aber es waren die schwierigeren Teile…
  Ich hatte mir davon Einiges erhofft, und fast nichts davon ist eingetreten. Die minimale Performanceverbesserung - ja. Aber was nutzt es, wenn an einer unkritischen Stelle eine von zwei Millisekunden entfällt? Es wäre etwas Anderes, könnte ich diese Millisekunde im Startup-Code des Forums einsparen, aber im Browser?
  Flexibler ist es auch geworden, aber da habe ich feststellen müssen, dass ich überschätzt habe, wie viel Flexibilität ich brauche. Der Fall, für den ich optimiert habe, tritt in der Praxis so gut wie gar nicht auf. Das hätte ich doch vorher wissen können… oder?
  Leider hätte ich mir das tatsächlich denken sollen. Habe ich aber nicht, und so habe habe ich jetzt wieder ein Stückchen überkomplizierten Code geschrieben. Hm.
  Auf der anderen Seite war es wirklich eine gute Idee… theoretisch. Die Praxis ist so feindselig gegenüber guten Ideen…
  Sie war, ein paar Netzwerkanfragen einzusparen, in dem man Anfragen an andere Anfragen dran hängt. Das ist insbesondere deshalb sinnvoll, weil die eigentliche Bearbeitung der Antworten nur ein paar Millisekunden kostet, aber die Netzwerklatenz so im Bereich von 100 Millisekunden liegt - und dafür dann ein oder mehrere Anfragen vorzuziehen, von denen ich sicher weiß, dass sie erfolgen werden.
  Theoretisch ist das das eine gute Idee. Und der erhoffte Effekt ist auch _messbar_ eingetreten. Fühlbar ist das allerdings nicht (und das war das Ziel). Im Gegenteil, fühlbar hat sich die Sache verschlechtert. Vorher war es so, dass sich eine Information alle 15 (ein Beispiel) Sekunden aktualisiert hat. Nach der Änderung hat sie sich nach 15 oder auch 10 Sekunden aktualisiert, und das fühlte sich verstörend unregelmäßig an.
  Im Nachhinein ist das sonnenklar. Das hätte es auch im Vorfeld sein können, wenn ich das Problem mal von der anderen Seite aus betrachtet hätte.
  Sobald Daten an ein anderes Land weitergegeben werden, ganz egal ob Peru oder die Vereinigten Arabischen Emirate, kann man nur noch _glauben_, dass die dort so behandelt werden, wie es die Datenschutzgesetzes des Ursprungslandes der Daten erlauben.
  Und für den Fall, dass die Daten plötzlich ihren Weg in Hände finden, in denen sie nichts zu suchen haben, kann man nicht einmal klagen, denn zum einen enthalten diese internationalen Abkommen meist Klauseln, die Klagen in Bagatellfällen ausschließen (und die Definition von 'Bagatelle' ist hier durchaus nicht kompatibel mit dem Schaden für einzelne Menschen), zum Anderen ist der Gerichtsstand nicht da, wo er hingehört (ein reguläres Gericht des Ursprungslandes, _nicht_ aber eines des Ziellandes - und schon gar kein internationales Schiedsgericht), und zum Dritten kann man Daten nur selten ansehen, wer sie verkauft hat.
  Die Möglichkeit der Kontrolle und die Möglichkeit der Klage sind _alles_, was zwischen den Daten und ihrer illegalen Ausnutzung steht.
  Mit anderen Worten: Daten, die erst mal die Grenzen der eigenen Gesetze verlassen haben, sind derzeit Freiwild.
  Sie werden auch durch Programme gefährdet, die wir Tag für Tag laufen lassen. Sagen wir mal Firefox (https://drewdevault.com/2017/12/16/Firefox-is-on-a-slippery-slope.html). Mozilla hat das nach einen Shitstorm schnell wieder abgestellt, aber so etwas (Zwangsinstallation von fremdem Code unbekannter Herkunft) _macht_ man gar nicht erst.
  Wie kommt man auf eine solche Idee? Waren da Dollar-Zeichen in den Augen, oder waren da Gehirne wegen spontaner Lobotomie nicht mehr zurechnungsfähig?
  Und warum entsteht Nutzern dieses Programmes (und Anderer Programme) Schaden, ohne dass das irgendwelche Konsequenzen hat? Was läuft da falsch, dass leichtfertige Verantwortungslosigkeit ausgesessen werden kann? Ist es, weil der Schaden nicht quantifizierbar ist? Warum nimmt man dann Null an, nicht Unendlich? Ist es, weil nicht zweifelsfrei belegbar ist, wer schuldig ist? Warum in aller Welt lassen wir Microsoft, Ubuntu, Firefox, Google und Co damit durchkommen, dass man auf diesen Systemen überhaupt nicht nachvollziehen kann, was wann warum geschehen ist?
  Und dann ist da noch… ja, genau, Google Chrome. Google, das größte Werbeunternehmen der Welt ist. Genug gesagt?
  Vielleicht nicht. Ein Browser hat jede Menge Daten - über das Verhalten des Benutzers. Und Google liebt Daten. Alleine das wäre, in einer vernünftigen Welt, ein Grund, diesen Monsterkonzern zu zerschlagen (aber dies ist keine).
  Warum erschießen wir nicht mal ein paar Verantwortliche, damit die Nächsten ins Grübeln kommen? (für den Fall, dass das nicht klar sein
  sollte: Das war eine Überspitzung. Und ich habe keine Schusswaffen. Weil die Jahreszeit für unpassende Geschenke ist: Ich will auch keine. Die Dinger gehören nicht in meine Hände. Und Deine. Und… verstanden?).
  Datenschutz und Privatsphäre werden auch von Firmen und Personen gefährdet, die Webseiten betreiben und Daten verkaufen oder ohne Einwilligung gebrauchen oder einfach unbewusst weiter reichen.
  Und ich will hier nur _eine_ Seuche ansprechen - die meiner Meinung nach Schlimmste, die Einbindung von Inhalten und Bibliotheken auf Servern Dritter.
  Millionen Seiten im Web veranlassen die Browser der Besucher, sich Javascript-Bibliotheken, Videos, Bilder, Karten und Schriften aus dem Netz zu ziehen. "Aus dem Netz" heißt praktisch immer "von Google". (Twitter- und Facebook-Buttons sind auch nicht besser).
  Vielleicht sollte ich das umformulieren? "veranlassen die Browser, Bewegungsdaten der Benutzer an den weltgrößten Werbekonzern zu senden." Denn das ist es, was passiert.
  Am Beispiel von Google Maps: Bei jeder Darstellung einer Karte sendet der Browser die Kennung der Seite an Google (die meldet sich auf diese Art über den Browser des Benutzers an). Zusammen mit der unvermeidlichen IP-Adresse und der Uhrzeit kann man daraus, insbesondere wenn man noch andere Dienste anbietet, ein wunderbares Bewegungsprofil machen. Ein sogenannter Fingerabdruck des Browsers (https://www.heise.de/newsticke [verkürzt] -auch-ohne-Cookie-3597078.html , https://amiunique.org/faq) ist auch hilfreich, klar.
  Der Kartendienst ist längst nicht der einzige Datensammeldienst, den Google aus purer Gutherzigkeit (?) betreibt.
  Da wären beispielsweise ajax.googleapis.com (darüber werden Javascript-Bibliotheken ausgeliefert) oder der Schriftartendienst fonts.google.com.
  Das Ziel dieser so kostenlosen Dienste ist es, möglichst viele Bewegungsdaten zu bekommen. Und aus denen möglichst gute Profile zu gewinnen - um zielgerichtet Werbung zu liefern.
  Bald werden sie gut genug sein, für die Mehrzahl von euch zielgerichtete Werbung auf den Monitoren an der U-Bahn-Haltestelle einzublenden. Wie peinlich wird es sein, wenn für den Mann auf der einen Bank Werbung für ein Nobelrestaurant gezeigt wird, für Dich aber McDoof? Sie eine Galapagos-Reise mit allen Extras, Du Malle?
  Ihr meint, das wird keiner wollen? Doch. Werbung funktioniert besonders gut, je genauer man das Ziel trifft. Das ist in der virtuellen Welt so, und es ist auch in der realen Welt so.