Artikel

Juli 2009 | Artikel

"PHP hat sehr gute Core-Entwickler, aber ich habe das Gefühl, dass PHP eine Vision fehlt, wo es hingehen soll."

(Link zum Artikel: http://www.it-republik.de/php/artikel/2445)

Im Gespräch mit Stephan Schmidt

Text: Nils Langner
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Nachdem wir zuletzt im Gespräch mit Lars Jankowfsky waren, haben wir dieses Mal die Ehre ein paar Fragen an Stephan Schmidt zu richten. Stephan ist Head of Web Sales Development bei der 1&1 Internet AG. Viele von euch werden ihn aber besser durch seine Rolle als Autor kennen, denn aus seiner Feder stammt PHP Design Patterns, das erste PHP Buch, das sich ausschließlich mit Entwurfsmustern beschäftigt. Zusätzlich kann man ihn des Öfteren auf diversen Konferenzen antreffen.

Teil 1   Teil 2   

Ohne mich bei dir einschmeicheln zu wollen, hast du wohl das einzige deutsche PHP Buch geschrieben, das es in die Liga guter Titel der Softwaretechnik geschafft hat. Hast du dieses Buch verfasst, da dich die Materie besonders fasziniert oder weil du die PHP Gemeinde in die richtige Richtung “schupsen“ wolltest?

Stephan Schmidt

Stephan Schmidt

Stephen Schmidt ist Head of Web Sales Development bei der 1&1 Internet AG, für die er Webanwendungen in PHP in Java implementiert. In seiner Freizeit ist er bei der Entwicklung von PEARL, PAT und pecl mit beteiligt. Mit "PHP Design Patterns" hat Stephan auch das erste PHP-Buch verfasst, das sich ausschließlich dem Thema der Entwurfsmuster widmet.

Beides. Design Patterns und Software-Architektur gehören schon sehr lange zu den Themen, die mich am meisten interessieren (wohl neben XML), ich hatte zu diesem Thema auch schon Vorträge auf Konferenzen gehalten. Als ich dann beruflich immer mehr mit Java zu tun hatte, musste ich feststellen, dass das Thema Entwurfsmuster in der Literatur zu PHP im Vergleich zur Java Literatur sehr stiefmütterlich behandelt wurde. Ich hatte das Gefühl, dass deshalb auch viele Entwickler, die sich nicht mit PHP befassen, der Meinung sind, PHP sei im professionellen Umfeld nicht zu gebrauchen. Um das zu ändern habe ich dann meiner Lektorin bei O'Reilly vorgeschlagen, diese Lücke zu füllen. Dass das Buch so ein Erfolg wird, hätte ich mir am Anfang nicht vorstellen können.

Mittlerweile empfehle ich auch unseren Java oder JavaScript-Entwicklern, mein Buch zu lesen, um zu sehen, wie die Patterns in einer anderen Sprache implementiert und eingesetzt werden. In Java werden Systeme sehr schnell "über-designed", da hilft es (auch mir), sich den PHP Weg ins Gedächtnis zu rufen.

“PHP Design Patterns“ ist vor kurzem in der zweiten Auflage erschienen. Was können wir von dieser Ausgabe erwarten?

Zum einen wurden alle Code-Beispiele an PHP 5.3 angepasst und konsequent auf den Einsatz von Namespaces (einem der coolsten Features von PHP 5.3) umgestellt. Daneben gibt es Erweiterungen in fast allen Kapiteln: Die Einführung in die objektorientierte Programmierung wurde um neue Features in PHP 5.3 (wie late static binding) ergänzt, die SPL hat ein eigenes Kapitel bekommen und es kamen einige neue Patterns hinzu (wie Prototype, State oder auch Data-Mapper). Am zufriedensten bin ich allerdings mit dem neuen Teil zu Dependency-Injection, ich glaube, dass dies eine Technik ist, die im PHP-Bereich zu selten genutzt wird und hoffe, dass sich das bald ändern wird. Im Java Umfeld geht mittlerweile nichts mehr ohne IoC in PHP gibt es für meinen Geschmack noch zu viele Anhänger des Singleton-Patterns und vor allem der statischen Fabrikmethode.

Ich weiß, dass dies nicht dein letztes Buchprojekt gewesen sein soll. Welche Themen würden dich denn als nächstes reizen? Welche Tür willst du den PHP Entwicklern als nächstes öffnen?

Woher weißt Du denn sowas? Eigentlich habe ich im Moment keine Pläne, ein neues Buch zu schreiben, da mir einfach die Zeit fehlt. Sollte sich das in nächster Zeit ändern, so geistert bei mir immer noch die Idee im Kopf rum, zusammen mit Frank Kleine (Head of Web Infrastructure bei 1&1 und Stubbles Core Entwickler) ein Buch über Software Qualität zu scheiben. Das sollte jedoch nicht das x-te Werk zum Thema Unit-Tests und Test-Driven-Development werden, sondern sich auch damit befassen, wie man Entwicklungsteams und Projekte strukturiert, um die Qualität des Entwicklungsprozesses zu erhöhen. Qualität ist in diesem Zusammenhang für mich nicht nur der grüne Balken bei PHPUnit. Sicherlich würde solch ein Buch auch nicht auf die PHP Entwicklung beschränkt sein. Aber wirklich konkrete Pläne gibt es dazu nicht. Am allerliebsten würde ich jedoch ein Buch im Stil von "Spielräume" oder "Der Termin" von Tom DeMarco schreiben, seine Bücher haben mich im letzten Jahr wohl am meisten beeinflusst.

Sicherlich warst du mit deinen Büchern Quell der Inspiration für viele Personen aus der Gemeinde. Wer ist für dich zurzeit der hellste Stern am PHP Himmel?

Das ist eindeutig Gregory Beaver. Er befasst sich mit so vielen unterschiedlichen Themen (PEAR, phar, Namespaces) und jede seiner Mails an die Entwicklerliste enthält fundierte Informationen und ist in einem freundlichen Tonfall verfasst. So was ist leider mittlerweile eine Seltenheit auf php-internals geworden, Flamewars oder desVerbreiten von FUD gehören hier leider zur Tagesordnung. Also auch wenn Greg nicht die coolsten Features in PHP implementiert hat, so sollten meiner Meinung nach viele Open Source Entwickler seinem Vorbild nacheifern. Die coolsten Features hat immer noch Marcus Börger beigesteuert, jedes Mal, wenn ich das Iterator-Interface implementiere, sitze ich mit einem breiten Grinsen vor dem Rechner.

Teil 1   Teil 2   

Kommentare

Gravatar Trepper 21.07.2009
um 13:05 Uhr
Dependency Injection (DI) wird hier mit Inversion of Control (IoC) gleichgesetzt, dabei ist DI nur ein Spezialfall davon. IoC verwendet praktisch jedes Framework, weshalb es auch im PHP-Umfeld nicht selten ist.

"PHP hat sehr gute Core-Entwickler" Wirklich? Wie kann es dann sein, dass die Sprache voll von fragwürdigen Entwurfsentscheidungen ist? Und dass es in der Geschichte mehrfach Brüche gab, die daraus resultierten, dass Dinge einfach nicht zu Ende gedachte wurden? Auf das unsägliche register_globals will ich da gar nicht zurückgreifen, denn es gibt viel mehr wie der Wechsel von der Übergabe von Werten zur Übergabe von Referenzen, oder nun die späte Einführung von Namensräumen, die eigentlich bei jeder Sprache vom ersten Tag dazu gehören. Und dann noch \ als Trennzeichen ...

Aber zum Glück gewinnen ja Ruby, Python, Groovy und Scala an Bedeutung. Gerade Scala ist für mich einer der vielversprechensten Kandidaten, denn es vereint das Gefühl der Skript-Programmierung mit den Vorteilen statischer Typisierung, allen voran eine wesentlich bessere Performance.
#zitieren
Gravatar __chris 06.08.2009
um 07:13 Uhr
ohne jetzt PHP extra verteidigen zu wollen, aber ...

> "PHP hat sehr gute Core-Entwickler" Wirklich? Wie kann es
> dann sein, dass die Sprache voll von fragwürdigen
> Entwurfsentscheidungen ist?

naja, gibt vielleicht einen Unterschied zwischen Core-Entwicklern einst und heute ;-)

> Auf das unsägliche register_globals will ich da gar nicht
> zurückgreifen, denn es gibt viel mehr wie der Wechsel von
> der Übergabe von Werten zur Übergabe von Referenzen,
> oder nun die späte Einführung von Namensräumen, die
> eigentlich bei jeder Sprache vom ersten Tag dazu gehören.

Nur interessehalber: welche Sprache aus dem Jahr 1996 hat vom ersten Tag an Namensräume?

> Und dann noch \ als Trennzeichen ...

Da verweise ich nur zu gerne auf die Infos im PHP-Wiki -- was hätte denn besser gepasst?



Aber zum Glück gewinnen ja Ruby, Python, Groovy und Scala an Bedeutung. Gerade Scala ist für mich einer der vielversprechensten Kandidaten, denn es vereint das Gefühl der Skript-Programmierung mit den Vorteilen statischer Typisierung, allen voran eine wesentlich bessere Performance.
#zitieren
Gravatar Schmerzhafte Beobachtung 15.01.2010
um 11:21 Uhr
Die Webseite des Autors funktioniert nicht mit Opera. #zitieren