Um im Kontext des Objektes zu arbeiten. Also der volle OOP-Ansatz, wie du ihn heute im anderen Thread schon propagiert hast.
Natürlich kann man da jetzt so ran gehen:
PHP:
class String extends SPLString
{
public function toLower()
{
return strtolower($this);
}
/* usw... */
}
Aber dann hätte man wieder zwei Abhängigkeiten (SPL_Types + eine Sammlung von PHP-Scripts - die auch erstmal byte-code-kompiliert werden müssen). Außerdem verspreche ich mir einen Performance-Vorteil, wenn das ganze in optimierten C-Code läuft. Letztendlich muss es ohnehin wieder durch eine C-Schicht durch (da PHP ja in C geschrieben ist), dann kann man es auch gleich in C machen. Nicht zuletzt macht es Spaß und ich lerne was dabei.
Ich habe außerdem noch ein viel umfangreicheres Ziel, ich habe keine Ahnung, ob ich das jemals erreiche:
- Der globale Namensraum von PHP ist mit Funktionen vollgefrachtet, die sich teilweise gegenseitig ersetzen (gerade im Bereich Stringmanipulation)
- deren Funktionsnamen teilweise unterschiedlichen Paradigmen folgen
- die Parameterlisten teilweise ihn ähnlich gelagerten Funktionen unterschiedlich aufgebaut sind.
Kurzum PHP ist eine riesen Code-Müllkippe (nennt man glaub ich historisch gewachsen) und die Basis-Maintainer scheuen sich davor, endlich mal klaren Tisch zu machen, die Abwärtskompatibilität loszuwerden um ein in sich stimmiges Gesamt-Sprach-Paket zu veröffentlichen.
Mein Ziel ist eine eigene Version von PHP, die komplett objekt-orientiert und typ-sicher ist oder zumindest die Möglichkeit bietet, typsicher zu sein.
Mich nervt es einfach, das ich bei einer Variablen nicht weiß, was sich dahinter verbirgt, ohne entweder zu debuggen oder mit Kinkerlitzchen wie "var_dump" oder "print_r" zu arbeiten. Das ist IMHO unprofessionell.
Zitat von Alan Cox oder David S. Miller - weiß ich nicht mehr genau hat gesagt.:
Guten Code kann man direkt lesen
Da fragt sich vielleicht der eine oder andere: Warum um Himmelswillen nimmt er dann nicht Python oder Ruby? Ich habe bisschen was in Python gemacht. Die Sprache liegt mir nicht besonders. Ich bin in der Syntax von C zu Hause, und das ist auch das, was mich bei PHP hält. Ich kenne die Sprache seit ca 2001, also schon etwa 11 Jahre, habe sie noch erlebt, da war sie weit davon weg, OOP einigermaßen vernünftig drauf zu haben - da gab es sowas wie public oder private noch lange nicht - von Klassen im Standard-Raum ganz zu schweigen. Es war ein Quantensprung von PHP3 zu PHP4, was die Geschwindigkeit angeht. Seit PHP5.3 haben wir sogar Namensräume - auch wenn vermutlich kaum einer davon wirklich gebraucht macht (außer er/sie verwendet ein Framework wie Zend).
All die netten Dinge, die einem das Leben so unglaublich erleichtern, die sind jetzt da, neben dem alten Müll, bei dem man jedes Mal ins Handbuch schauen muss, um zu erfahren "Achja, das war die Funktion, bei der Parameter 1 und 2 vertauscht werden müssen".
Hier für alle die ähnlich empfinden oder Gründe dafür suchen:
http://www.bitstorm.org/edwin/en/php/
Zugegeben, ein paar davon sind obsolet. Und hier auch noch was auf deutsch:
http://www.heckmeck.de/computerstuff/scheiss_php/
Das muss doch eigentlich nicht sein ;-)
Aber wie schon geschrieben: Ich habe keine Ahnung, ob dieses Ziel jemals erreicht wird. Aber ich gehe kleine Schritte.