Objektorientierte Entwicklung vs. PHP 4

05 05 2010

Zur Zeit arbeite ich an einem Wordpress-Projekt und bin nach der Umstellung auf PHP 5.3 (vorher war versehentlich PHP 4 auf dem Webspace aktiv) über etliche Deprecated-Warnungen gestolpert. Die explizite Zuweisung von Objekten per Referenz (also mit =& statt dass das Objekt mit = geklont wird) in der wp-settings.php ist schuld, denn dieses im Grunde erwartungskonforme Verhalten ist seit PHP 5 der Normalfall, Objekte werden jetzt nur noch geklont, wenn man explizit clone benutzt, so dass die explizite Zuweisung per Referenz überflüssig ist und angemahnt wird.

Nun ist es bei einem guten Hoster ein Handgriff ein, die E_DEPRECATED-Warnungen in der php.ini zu unterdrücken, von daher ist das alles halb so wild. Die Sache ist aber ein Symptom eines großen Dilemmas: Will man – aus welchen Gründen auch immer – kompatibel zu PHP 4 bleiben, muss man manchmal Code schreiben, der in PHP ab 5.3 eine Deprecated-Warnung wirft. Das TYPO3-Backend beispielsweise warf bis vor kurzem (vielleicht auch immer noch) ebenfalls Unmengen an Deprecated-Warnungen, weil es intensiven Gebrauch von eregi-Funktionen macht. Die kann man mit gutem Geschwindigkeitsgewinn und ohne Schwierigkeiten mit PHP 4 gegen preg-Funktionen austauschen, hier ist es also lediglich eine Sache von Fleiß; ganz davon abgesehen, dass TYPO3 sowieso seit Jahren kein PHP 4 mehr unterstützt. Die Sache bei Wordpress und einigen anderen Projekten mit Objektorientierten Elementen ist aber eine Zwickmühle.

Wobei es in meinen Augen keineswegs eine Zwickmühle ist, da die Lösung auf der Hand liegt: Man wirft einfach den PHP 4 Support über Bord und hält die Anfeindungen einiger Ewiggestriger aus, die nicht wissen, wie sie bei ihren Webspace eine aktuelle PHP-Version umstellt. Diese Anfeindungen kommen leider vor, und sind einer der Gründe, wieso ich zu Serendipity keinen Code mehr beitrage. Serendipity bewahrt wie Wordpress noch immer die PHP 4 Kompatibilität und steht einer zukunftsgerichteten Weiterentwicklung damit massiv im Weg. Wordpress wird wohl ab Version 3.0 (also ab demnächst) PHP 5 vorraussetzen, damit es endlich nach vorne gehen kann. Das ist im Falle von Wordpress auch bitter nötig, wenn man sich den mitunter grauenerregenden Code anguckt. Die aktuelle Beta 1 wirft aber leider immer noch die Deprecated-Warnungen.

Es gibt so etwas wie Codehygiene. Ich frage mich, wieso sich so viele Softwareprojekte mit aller Macht dagegen stemmen, ihren Code ein wenig zu warten. Eregi-Funktionen gelten schon seit mindestens fünf Jahren als um Größenordnungen langsamer, als ihre preg-Pendants. Wieso zur Hölle liest man dann als Abhilfe für Deprecated-Meldungen immer und überall, dass man die Warnungen ausschalten soll? Wo ist das Problem, sich einmal eine Nacht hinzusetzen und die veralteten und langsamen eregi-Funktionen zu eliminieren? Wieso wird unter Verzicht auf fundamental wichtige Programmiertechniken der Objektorientierung auch mehrere Jahre nach Einstellung des Supports für PHP 4 so sehr daran geklebt? PHP 4 ist veraltet, langsam und behindert massivst eine saubere Programmierung. Das ist sogar so offensichtlich, dass es jedem auffallen müsste, der nur ansatzweise objektorientiert mit PHP programmiert. PHP 4 fehlt es an fundamentalen Funktionalitäten an allen Ecken und Enden, nicht nur bei der Objektorientierung. Bitte, hört auf mit der falsch verstandenen Rückwärtskompatibilität und blickt mal nach vorne.

P.S. Ich bin übrigens latent auf der Suche nach einem neuen Blogsystem. Serendipity möchte ich den Rücken kehren, weil sich an der Front scheinbar nichts mehr tun wird. Auf PHP 5 umstellen? Neue Programmierkonzepte zulassen? Nix da, alles bleibt, wie es ist. Ein System, dessen Core so ungerne angefasst wird, ist nicht meins. Davon abgesehen, dass der Core in meinen Augen sowieso gar kein HTML ausgeben sollte. S9Y ist super stabil und funktioniert bei mir seit nunmehr fast sechs Jahren ohne jedes nennenswerte Problem vor sich hin, aber in etwa so lange hat sich auch nicht mehr wirklich etwas nennenswertes weiter entwickelt; das stimmt zwar nicht ganz, aber die Änderungen blieben insgesamt doch sehr dezent. Wordpress ist leider keine Alternative, auch wenn das Backend großartig ist. Ein Blick in den Core an beliebiger Stelle sollte ausreichend Anlass geben, das System nicht zu wollen. Was ist eigentlich aus Habari geworden?


Juhu, ich habe das S9Y-Handbuch gewonnen

19 06 2008

Ich gewinne sehr selten etwas, was durchaus daran liegen mag, dass ich auch selten an Gewinnspielen teilnehme. Ein seltener Fall ist dieser Beitrag. Heute bin ich daraufhin als glücklicher Gewinner eines Serendipity-Handbuches ausgelost worden. Juhu, ich freue mich wie ein Schneekönig darüber.


Das Serendipity Buch

05 06 2008

Der sympathische und stets hilfreich zur Seite stehende Hauptentwickler meiner Blogsoftware Serendipity (S9Y), Garvin Hicking, hat kürzlich ein feines Buch zu dieser Software veröffentlicht. Das Ding hängt schon eine Weile (vorbestellbar) in meiner Amazon-Wunschliste, aber die 40€ waren mir bislang zu teuer. Ich hätte auch weder Zeit noch Anlass, mich vertiefend dieser Software zu widmen, auch wenn ich mehrere PlugIns angefangen habe und aus Zeitmangel bisher nicht vollendet habe.

Aus Anlass der Erscheinung des Werkes im Buchhandel verlost er jetzt fünf Ausgaben des druckfrischen Serendipity-Handbuchs unter Leuten, die über das Buch schreiben. Folgende Fragen sind zu beantworten:

Aus welchem Grund sollte man sich das Buch eigentlich kaufen, wenn man es nicht gerade gewinnt?

Ich selber merke, dass ein gedrucktes Buch zur Vertiefung und zum Nachschlagen von komplexen Inhalten wie Programmierung ungemein praktisch ist, auch und gerade aus Bildungsbürger-Sicht. Wer also Weitergehendes mit S9Y vor hat, sollte sich das Buch griffbereit in den Schrank stellen. Wordpress ist ja nicht die einzige erweiterbare Blog-Plattform.

Was gefällt euch am besten an Serendipity?

An S9Y mag ich, dass alles einfach funktioniert. Auch die PlugIn Schnittstelle ist recht fortgeschritten, was sicher auch mit dem im Vergleich etwa zu Wordpress angenehmem Code zusammenhängt. Das Wordpress Motto lautet ja Code is art und Kunst ist bekanntlich Geschmachssache. Mein Geschmack ist der Wordpress Code jedenfalls nicht. Aber auch wer schon mal ein Template für Textpattern "installiert" hat, wird sich über das tolle Smarty-basierte 1-Klick-installiert-Theme-System von S9Y sehr freuen können.


Das leidige Backend-Editor-Problem

06 11 2007

Immer wieder kommt es zur Diskussion um den richtigen Backend-Texteditor für Blogs, CMSe und sonstige Webanwendungen. Ich selber halte XHTML-Code eigentlich für eine brauchbare Auszeichnungssprache und schreibe deshalb meine Blogeinträge auch direkt in XHTML, sogar die Absätze schreibe ich momentan noch selber. Dafür habe ich die volle Kontrolle über den Code und das ist mir wichtiger als der Verlust an Komfort.

Wie ist es aber, wenn weitere Autoren ins Spiel kommen? Bei unserer Typo3-Installation am Fachbereich haben wir lange diskutiert mit dem Schluss, dass wir den Professoren, HiWis und sonstigen Mitarbeitern so etwas nicht zumuten können. Wir können auch nicht voraussetzen, dass die auch nur halbwegs technisch in der Lage sind, fehlerfreien XHTML- bzw. Typo3-Code zu produzieren, auch wenn es sich nur um Links in der Form <link 125>Linktext</link> und eventuell eine Auszeichnung in fett handelt (viel mehr lässt unser Corporate Design im Text gar nicht zu). Alleine die benötigte Seiten-ID herauszufinden ist schon nicht trivial. Was also tun? Wir setzen notgedrungen auf den in Typo3 eingebauten RTEHTMLArea, der aber aus Code-Sicht mehr als fraglich ist. Unbefriedigend für mich, den Redakteuren aber weitgehend egal.

Aber die ideale Lösung? Eine Lösung, die auch mich ruhig schlafen lässt? BBCode und Wiki-Syntax wären brauchbar, aber wer mit den spitzen Klammern nicht klar kommt, dem helfen auch keine eckigen Klammern weiter. Und Wiki-Syntax ist einfach zu mächtig und noch abschreckender. Mit Textile habe ich weitgehend nur schlechte Erfahrungen gemacht, weil es gerne mal unumgehbar Sachen macht, die man so nicht gemeint hat. Markdown mag das besser machen – ich weiß es nicht – aber auch hier kann man keine ungewünschten Features entfernen und man braucht einige Disziplin, um Markdown-kompatibel zu schreiben. Mein Bruder entwickelt bei XINHA mit und schwört auf diesen Editor, aber auch XINHA ist nur eine weitere Inkarnation des von mir ungeliebten WYSIWYG-Ansatzes: Ich schreibe in erster Linie logisch (bzw. "semantisch") ausgezeichnete Inhalte und nicht Inhalte, die soundso aussehen sollen.

Einen anderen Lösungsansatz verfolgt der WYMEditor, genannt What You See Is What You Mean (WYSIWYM). Klingt sehr gut in meinen Ohren: Man arbeitet wie in einem WYSIWYG-Editor, aber sieht eine Visualisierung der benutzten Elemente und kann vor allem nur logisch sinnvolle Elemente einfügen, also keine font-Tags oder inline-Styles und so. Und hinten raus kommt valider und sauberer und logisch korrekt ausgezeichneter XHTML-Code. Eigentlich eine Selbstverständlichkeit? Finde ich eigentlich auch, naja… Leider erzeugt die aktuelle Version 0.4 keine Zeilenumbrüche oder gar (ganz verwegen) Einrückungen im erzeugten Code, so dass der von Hand nicht mehr sinnvoll bearbeitet werden kann. Schade, mal schauen, was die Entwicklung bringt. Das Potenzial ist in meinen Augen sehr groß. Vor allem wenn man das weiter denkt und Microformats integriert.


Shoutbox muss sterben

05 03 2007

Also an sich finde ich Shoutboxen genial. Allerdings wird meine inzwischen primär von Spambots heimgesucht und wird daher ab sofort von meiner Seite verschwinden. Wenn ihr mir was sagen wollt, schreibt einfach nen Kommentar oder redet mit mir.


YAML - Yet Another Multicolumn Layout

25 07 2006

Hey, gerade bin ich zufällig über die regelmäßige Typo3-News Recherche auf ein wirklich interessantes Framework gestoßen: YAML - Yet Another Multicolumn Layout. Eine Stabile und flexible Grundlösung für Barrierearme und Cross-Browser kompatible Mehrspaltenlayouts, das einem hilft die üblichen Probleme zu umschiffen und sich voll auf das Design und die Implementierung zu konzentrieren. Genial, wenn ich daran denke, wie man doch immer mal wieder kotzt, weil irgendwas nicht funktioniert, weil man die CSS Untiefen mal wieder nicht im Griff hat. Vorbei.

Ich werde mir das mal anschauen und vielleicht für mein Blog-Redesign nutzen. Das mit dem angedrohten Teppich.


Ich liebe Shoutboxen

18 07 2006

Ich muss ganz ehrlich sagen: Ich liebe Shoutboxen, nutze sie allerdings fast nie. Blöd, oder?

Also an alle meine (5? 10?) mehr oder weniger regelmäßigen Besucher hier: Benutzt meine Super-duper-gummi-gut Shoutbox, ich freue mich über (so ziemlich) jeden Gruß.

Tschö.

Nachtrag 15.09.2007: Meine Shoutbox gibts schon lange nicht mehr, weil sie nur von Spammern benutzt wurde.


Optische Ekelbissen

18 07 2006

Hmm, irgendwie kommt mein aktuelles Template mit einigen Dingen nicht zurecht. Ich habe die Tags so eingestellt, dass sie je nach Häufigkeit der damit getaggten Artikel verschieden groß sind. Gute Sache an sich, so eine TagCloud. Leider nicht bei mir, denn so geht das mal gar nicht (da rechts könnt ihr das sehen). Irgendwie ragen alle größeren Inhalte in meiner Seitenleiste rechts raus. Auch wenn ihr mal meine Linkkategorien aufklappt, werdet ihr das bemerken. Schön ist das jedenfalls nicht.

Also was ist zu tun? Auch wenn Einigen die Blume offenbar gefällt (danke für die Blumen an Ritze und Martin *schenkelklopf*), muss ich wohl die Zeit der gerade angebrochenen Semesterferien dazu nutzen, endlich das feiste Teppich-Lounge-Outfit für meinen Blog an den Start zu bringen.

Mal schauen…


Sags durch die Blume

08 07 2006

Heute habe ich meinem Blog mal ein neues Outfit angezogen. Tada, die Blume dominiert nun die Erscheinung, die Schrift ist größer und die Absätze sehen wieder wie Absätze aus. Gut so. Wenn ich mal Zeit habe, werde ich mein (un?)beliebtes schwarzes [NBM]Teppichdesign für mein Blog anpassen. Gerrit van Aaken hat seinen umstrittenen grünen Rasen ja unlängst entsorgt. Schade eigentlich, denn ich habe den Rasen geliebt. Also demnächst hier chill-out-zone mäßiger Teppich für die großen Freiflächen, die Teppichfarbe halte ich mir aber noch offen.

Habe ich schon mal gesagt, dass ich S9Y sehr gerne habe? Man kann Templates einfach im Vorbeigehen auswählen. Bei TXP war das eine Höllenarbeit. Ich habe anderthalb Stunden gebraucht, um das Ocadia-Theme in mein TXP einzubauen. Sowas von umständlich.


Tschö Textpattern, hallo Serendipity

23 06 2006

So denn, nach etwa 1000 händisch gelöschten Spam-Kommentaren in TXP habe ich endlich mal den Schritt gewagt und eine neue Blog-Software installiert: "Serendipity oder auch S9Y":http://www.s9y.org. Jetzt bin ich erstens hoffentlich vor Kommentarspam geschützt und zweitens habe ich jetzt so coole Features wie Tags für die Artikel.

Der Umstieg war etwas holprig, weil ich Probleme mit Sonderzeichen und generell dem Importer hatte. Aber im S9Y-Forum wurde mir sofort geholfen, und ein paar Datenbank-Stunden später müsste jetzt alles smooth sein. Inkl. meiner geliebten Textile-Formatierung.

Theme

Ja das Theme ist noch nicht endgültig, mein altes Theme Ocadia gibt es für S9Y (noch?) nicht, also bitte habt Nachsicht, nicht Nachtsicht ;)

Kommentare

Ich verlasse mich fürs erste auf den Spamschutz von s9y und schalte die Kommentare für alle frei. Tada, keine verschissene Moderation mehr bei normalen kleinen Kommentaren.