Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Sunday, 22. April 2007


Delphi for PHP im Test – Nie wieder Borland

Filed under: ASP.NET,Tools,Visual Studio — Steffen Forkmann at 10:35 Uhr

Wie bereits berichtet hat CodeGear/Borland eine neue Entwicklungsumgebung für PHP heraus gebracht. Da ich früher sehr gern mit Delphi gearbeitet habe und eigentlich immer begeistert war, habe ich mir sofort eine Studentenversion für 99,- bestellt. Mein Ziel war es bei der Entwicklung meiner beiden WordPress-Plugins Counterize II und WP-Referencesmap etwas mehr Unterstützung durch eine IDE und einen Debugger zu erhalten. Gleich vorab: dieses Ziel kann Delphi for PHP leider nicht erfüllen.

Die Verpackung

Schon beim Öffnen der Verpackung habe ich mich gewundert. Früher gab es bei Delphi immer eine nette Box mit einigen kleinen Beilagen (wie z.B. einem Poster). Diesmal gab es jedoch nur eine einfache DVD-Hülle. Das Cover ist total verpixelt – die meisten privaten Raubkopien werden mit besseren Druckern gedruckt.

Die Installation

Die Installation der Delphiversion auf meinem Windows XP Rechner verlief absolut problemlos – einzig die zwingende Registrierung war etwas unangenehm.

Die ersten Eindrücke

Nach dem Starten zeigt sich Delphi for PHP mit einem leeren Formular und gewohnten Tools wie CodeExplorer, Toolbox und ObjectInspector. Delphi liefert auch eine große Palette von PHP-Controls in der kostenlos verfügbaren „VCL for PHP“ mit. Diese ist komplett in PHP 5 geschrieben und demnach wohl auch nicht abwärtskompatibel. Bis hierhin sieht alles ganz normal aus. Delphi unterteilt sich in die zwei Ansichten Designer und Code-Ansicht. 

Code vs. Designer

Im Designmodus kann man Komponenten auf seinem Formular platzieren und im ObjektInspektor die Eigenschaften editieren. Delphi legt dafür im Hintergrund ein XML-File für das gesammte Webprojekt an, in dem alle Eigenschaften der Formularkomponenten (Höhe, Breite, Position, …) gespeichert werden. Zur Laufzeit wird dieses File aufgeparst und die Werte auf die Komponenten gesetzt. Bei meinen Test bekam ich jedoch schon nach ein paar Minuten die ersten Fehlermeldungen im Designer – dabei wollte ich nur ein TabSheet etwas nach rechts verschieben.

Passend dazu: Mens Slim Contrast Tee "Generation beta"
Generation beta Da heute ja alles eine Beta ist.. » 17.90 EUR
Weitere Produkte gibt es im Shop.

Im Code-Editor kann man den PHP-Quellcode editieren. Bei einem Formular legt Delphi auch gleich etwas Quellcode mit an. Syntax-Highlighting und Code-Vervollständigung wird natürlich unterstützt. Man kann Breakpoints setzen und mit F9 das Programm auf dem Testwebserver starten.

Der Designer arbeitet streng mit der VCL und dem XML-File der Properties. Eigene alte Quelltextfragemente können nicht visualisiert werden. Somit kann ich den visuellen Designer nur für neue Projekte verwenden bzw. ich müsste meinen gesammten Code in VCL-Komponenten portieren.

Remote-Debugging

Nun wollte ich gleich richtig einsteigen, aber zu meinem Bedauern kann Delphi for PHP kein Remote-Debugging – was übrigens nirgends auf der CodeGear-Seite oder in der sehr knappen Hilfe beschrieben ist. An dieser Stelle brach für mich eine Welt zusammen. Delphi liefert zwar standardmäßig einen Entwicklungswebserver mit, ähnlich wie die Cassini-Version bei ASP.NET, aber Remote-Debugging wird (zur Zeit) nicht unterstützt. Schlimmer noch – der Assistent zum Exportieren des Webprojekts exportiert zwar neben dem eigenen Code nur den tatsächlich benutzten Teil der VCL, bietet jedoch keine Möglichkeit des FTP-Uploads. Ich meine selbst mit meinen PsPad kann ich Quelltexte remote editieren.

Somit müsste ich meinen gesamten WordPress-Blog (samt mySQL-Datenbank) nochmal auf meinem lokalen Entwicklungs-Rechner spiegeln und Änderungen manuell mit meinem FTP-Programm hochladen. Team-Entwicklung fällt damit wohl auch flach.

Datenbank-Anbindung

CodeGear liefert standardmäßig neben dem Entwicklungsserver noch eine Testversion von InterBase mit. Diese kann man für eigene Testzwecke nutzen – vor dem Deployment muss InterBase jedoch lizensiert werden. Was soll das denn? Da liefern die eine Datenbank mit und dann darf ich die nicht benutzen? Mal davon abgesehen, dass natürlich mySQL der eigentliche PHP-Partner ist.

Fazit

Delphi for PHP hat sich für mich leider als absoluter Fehlkauf erwiesen. CodeGear/Borland hat einfach von der Firma qadram das Qstudio genommen und einen schönen Delphi-Sticker draufgeklebt. Ich habe mich von dem guten Namen und der Möglichkeit PHP in einer IDE zu nutzen blenden lassen. Dabei ist der Designer noch nicht komplett bugfrei, Remote Debuging wird nicht unterstützt, die Hilfe ist sehr sehr kurz und die Sache mit InterBase ist wirklich eine Frechheit. Für mich hat Borland hier alle Sympathien verspielt. Das Programm ist noch lange nicht marktreif und den Namen Delphi hat es schon gar nicht verdient.

Nachdem ich mich ja schon eine ganze Zeit lang mit ASP.NET und Visual Studio beschäftigt habe, muss ich sagen: Das ist ein Unterschied wie Tag und Nacht. Für mich stellt sich nun die Frage: Wie bekomme ich mein Geld zurück – Software ist ja leider vom Umtausch ausgeschlossen.

Jetzt werde ich mir also doch die Eclipse-PHP-Versionen (wie z.B. PHPEclipse) ansehen müssen…

Tags: , , , , , ,

12 Comments »

  1. Hallo Steffen,

    gute Kritik, ich habe es ebenso empfunden.
    Meine Empfehlung für eine gelungenen PHP IDE ist und bleibt Zend!
    Neben einem richtigen Debugging gibt es als weiteres die von dir vermißte Remote-Unterstützung (FTP,SFTP,FTP/SSL), CVS und daneben auch ein MySQL-Frontend direkt in der IDE.

    cu Christian

    Comment by Christian — Friday, 18. May 2007 um 11:14 Uhr

  2. Moin Steffen,
    danke für die Kritik. Ich wollte Delphi for PHP mal ausprobieren, aber die Datei ist nicht mehr auf dem Server von devtracks verfügbar. :) Und daher konnte ich es bisher nicht. Aber ich denke auch, dass ich es nicht mehr brauche… ist echt schade, dass das Produkt so schlecht ist. Aber gegen Eclipse muss man schon mehr bieten ;)
    Schick doch mal einen Ausdruck an Devtracks, können die ja als Arbeitsgrundlage für neue Updates nutzen und frag, ob Sie dir irgendwie das Geld zurückgebenen ;)

    cu Andreas

    Comment by Andreas Frank — Tuesday, 29. May 2007 um 23:09 Uhr

  3. Hallo Andreas,

    das haben die sicher schon gelesen. Diese Seite hier ist ja momentan auf Platz 3 für “delphi for php” bei google. :-)

    Die Testversion kannst du bei CodeGear direkt downloaden: http://www.codegear.com/downloads/free/delphiphp

    Grüße Steffen

    Comment by Steffen Forkmann — Wednesday, 30. May 2007 um 8:44 Uhr

  4. Hallo Steffen!

    Was für dich evtl. ganz interessant sein kann, gerade, da du auch viel mit Visual Studio zu tun hast, ist VS.Php – ein Modul für Visual Studio, um aus Visual Studio heraus PHP Anwendungen zu entwickeln.

    Es unterstützt auch Remote Debugging, remote Projekte und vieles vieles mehr.

    Viele Grüße,
    Sebastian

    Comment by Sebastian — Saturday, 2. June 2007 um 15:20 Uhr

  5. Hi,

    ist jemand bekannt, wie die GUIs gerendert werden. Ich hatte mal gehört das die (auch) JS GUIs mittels der qooxdoo libary erzeugen können.

    Comment by Cornelius Weiss — Monday, 4. June 2007 um 8:53 Uhr

  6. Hallo Steffen!

    Gute Kritik. Ich selbst habe auch meine Probleme mit dem neuen “Delphi für PHP”. Habe etwas mehr erwartet. Mal schauen was die Updates in Zukunft bringen. An ein paar Stellen muß ich Borland/Codegear jedoch verteidigen:

    – Remote Debugging war nirgens versprochen, daher kann man auch nicht davon ausgehen, daß es verfügbar ist.

    – Interbase ist DIE Datenbank von Borland. Klar das Borland sein “Baby” mitliefert. Übrigens kann man auch mit der Kombination PHP/Interbase bzw. PHP/Firebird interessante Webprojekte erstellen.

    LG,

    Marc

    Comment by Marc Geldon — Thursday, 21. June 2007 um 12:27 Uhr

  7. Hi,

    @Cornelius:

    Ja, VLC4PHP verwendet zum großen Teil qooxdoo für die Widgets. Fast alle komplexeren widgets, wie z.B. table, tree, menu, toolbar, interne Fenster, etc sind qooxdoo widgets.

    Leider kann man mit Delphi4PHP nur einen Bruchteil der qooxdoo Funktionalität verwenden. So werden z.B. alle widgets absolut positioniert, ohne die Layoutmanager zu werden. Weiterhin werden qooxdoo widgets wild mit anderen widgets gemischt, was eine einheitliche Bedienung und Styling der Anwendung schwer möglich macht.

    Um das volle Potenzial von qooxdoo auszuschöpfen, kommt man daher nicht darum herum, die Anwendung ohne Delpih4PHP zu schreiben. Wem die Programmierung von JavaScript auf dem Client zu mühsam erscheint, der sollte sich auch mal qxTransformer ansehen.

    Gruß Fabian

    qooxdoo team, 1&1 Internet AG

    Comment by Fabian Jakobs — Wednesday, 18. July 2007 um 11:28 Uhr

  8. Hallo Steffen.

    Ich finde es gut, wenn sich jemand Zeit nimmt, um ein Produkt ausgiebig zu testen. Leider ist Dein Fazit recht dürftig. Du bemängelst 2 oer 3 Dinge, welche Du persönlich gerne anders hättest. Das hat aber nichts mit der Gesamtbewertung eines Produkts zu tun. Remote Debugging mach ich z.B. mit .net auch nicht. Ich entwickle IMMER lokal und habe auch lokal eine Datensicherung. Erst wenn es lokal funktioniert, schiebe ich alles auf den Server. Das Fehlen des Remote Debugging würde mich also überhaupt nicht stören. Des Weiteren beängelst Du die Verpackung bzw. die CD – was hat das mit der Software zu tun? Das ist zwar schade, dass sie nicht so professionell aussieht, wie sie sollte, ist jedoch kein Bewertungskriterium. Die meiste Software wird so wie so heruntergeladen – da gibt es keine Verpackung! Du schriebst “Eigene alte Quelltextfragemente können nicht visualisiert werden” – wie stellst Du dir das vor? Wie sollte das gehen? Ich habe den Eindruck, das Du einer der PHP-Programmierer bist, welche noch niemals eine “vernünftige” IDE gesehen haben, wie es sie für Delphi, c#.net oder Java seit 10 Jahren gibt. Weiteres “Mängel” – sagst Du – ist die Sache mit Interbase. Auch das finde ich nicht weiter schlimm. Nimm FireBird – ist kostenlos! Nimm MySQL – benutzt doch eh jeder in Verbindung mit PHP.
    Fazit: Deine Bewertung entbehrt jeglicher Grundlage. Du hast nicht einmal erwähnt, ob Du schneller als sonst Anwendungen schreiben kannst. Du hast nicht einmal über die Qualität des erstellten Codes gesprochen. Dich interessiert nicht, ob der Code stabil läuft und ob ein größeres Projekt übersichtlich bleibt. Von UML und objektorientierter Entwicklung mit Delphi for php KEIN WORT! Dich interessieren nur Verpackung und Nebensächlichkeiten. Mich (und den meisten Programmieren) interessiert aber mehr der Inhalt und der Kern der Sache.

    Trotzdem danke für Deine Einschätzung und viele Grüße,
    Andreas

    Comment by Andreas Christian Adam — Saturday, 21. July 2007 um 12:57 Uhr

  9. Hallo Andreas,

    danke für dein Feedback, aber du kannst mir glauben, dass ich schon viele IDE’s gesehen habe – und auch oft mit dem Orignal-Delphi gearbeitet habe. Deswegen bin ich ja auch so enttäuscht von Delphi for PHP.

    Das Thema Remote Debugging ist für mich eben extrem wichtig, da du niemals alle Fälle auf deinem Testserver abbilden kannst. Stell dir zum Beispiel vor du hast einen Webshop im Echtbetrieb und irgend eine Bestellung funktioniert nicht einwandfrei. Was willst du da lokal machen? Da müsstest du dir die ganze Datenbank live vom Server ziehen und selbst dann kannst du nicht alle Umstände nachbilden. Mal davon abgesehen, dass du den Bug erst viel später findest.

    Das Thema Verpackung sollte eigentlich nur als Einstieg dienen. Die merkwürdige Verpackung hat mir jedoch schon einen Ausblick auf das Produkt gegeben.

    Das ein Anwendung stabil läuft und ob ein großes Projekt übersichtlich bleibt hängt meiner Meinung nach aber nur minimal von der benutzten Entwicklungsumgebung ab. Die IDE kann einen Entwickler im besten Fall leiten und bei offensichtlichen Mängeln und Nichteinhaltung von Richtlinien auch mal auf die Füße treten. Mehr aber nicht.

    Grüße Steffen

    Comment by Steffen Forkmann — Monday, 23. July 2007 um 8:28 Uhr

  10. Hallo Steffen,
    ich finde es ja durchaus Lobenswert wenn sich jemand die Mühe macht über ein Produkt einen Artikel zu schreiben.

    Wichtig finde ich deinen Hinweis auf das fehlende Remote Debugging

    Leider bemängelst du auch ein paar Dinge die IMHO nicht wirklich bemängelnswert sind.

    – fehlender FTP Support
    Eine IDE muss das nicht wirklich leisten, es gibt deutlich bessere Wege an Dateien einer Entwicklungsumgebung zu gelangen (NFS, Samba etc.) die es erlauben deutlich flüssiger zu arbeiten. Und ich hoffe doch das du nicht mit deiner IDE an einer Produktiv-Umgebung rumfrickelst?
    FTP hilft auch nicht wirklich in der Team entwicklung – dafür gibt es Source Repositories wie SVN oder CVS.

    – Du lässt es so klingen als ob es Schlimm wäre das VCL PHP5 Only ist. Ich möchte einfach mal darauf hinweisen das PHP5 seit mehreren Jahren released ist, und man vieleicht doch mal mit der Zeit gehen sollte.

    – Deine Aussage bezüglich der Datenbank ist, entschuldige, Blödsinn. PHP kann mit einer vielzahl von Datenbanken umgehen, und auch wenn MySQL dazu gehört ist es dennoch übertrieben von einer Partnerschaft zu sprechen. PHP wird seit längerer Zeit mit SQLITE Support und ausgeschaltetem MySQL ausgeliefert.

    Was für mich gegen Delphi-for-PHP spricht ist das es eine Insel-Lösung aus einer IDE-Frameworkmischung ist.

    LG,
    PP

    Comment by Peter Petermann — Wednesday, 5. December 2007 um 10:37 Uhr

  11. Hi Peter,

    danke für dein Feedback, aber ich finde schon das FTP-Deployment ein cooles Feature wäre. Gerade im Zusammenhang mit Remote Debugging würde ich gerne auch mal ein QuickFix ausserhalb des normalen Release-Zyklus deployen.

    Das nur PHP5 unterstützt wird ist schon manchmal ein Problem – zumindest bei “historischen” Projekten ;-)

    Nochmal zur Datenbank: Mein Lieblingshoster (und soweit ich weiß auch viele andere) bieten nur mySQL.

    Grüße Steffen

    Comment by Steffen Forkmann — Wednesday, 5. December 2007 um 11:22 Uhr

  12. [...] Delphi for PHP Version 1.0 in meinem Test nicht besonders gut abgeschnitten hat, wurde nun die Version 2.0 von CodeGear veröffentlicht. [...]

    Pingback by Delphi for PHP 2.0 veröffentlicht » Blog der Microsoft .NET / Dynamics NAV - Group Halle — Tuesday, 15. April 2008 um 12:51 Uhr

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .