Delphi – so gehts nicht

Wie sich sicher im Blog herumgesprochen hat programmiere ich in Delphi. Daher will ich mich auch heute mal damit beschäftigen, vor allem mit der Produktpolitik. Für die die nicht ganz informiert sind: Delphi ist der Nachfolger von Turbo Pascal. Es ist ein System zur Erstellung von visuellen Anwendungen und war in Sachen Bequemlichkeit und Einfachheit lange Zeit führend, bzw., die Trennung von Aussehen der Oberfläche und Code zur Bearbeitung finde ich auch heute noch sinnvoller als dies in den Code einzubetten wie dies bei Java und C# geschieht.

Was mich stört ist die Produktpolitik in etwa im letzten Jahrzehnt. Es gibt hier zwei Tendenzen:

Preistendenz: Delphi wird teurer. Für Delphi 1 habe ich noch 199 Mark gezahlt, für Delphi 4 waren es schon 299 DM, Delphi 8 hat mich als Studentenversion 299 Euro gekostet (regulär 599) und so hoch ist auch seitdem der Preis für Updates, auch beim jetzigen (Delphi XE). Es gibt die Möglichkeit für Arbeitslose, Rentner, Schüler und Dozenten eine Schulversion für den nichtkommerziellen Einsatz für 99 Euro zu kaufen, doch was machen die Hobbyentwickler, die nicht arbeitslos sind?

Also für jemanden der nicht beruflich sein Geld damit verdient sind 599 Euro (Update) / 899 Euro (Neu) zu viel. so beschneidet man sich künstlich den Kundenkreis, zumal ich (dazu später mehr) nicht den großen Mehrwert gegenüber älteren Versionen sehe.

Besonders schlimm, weil ich es jetzt auch im Unterricht spüre, ist das es keine kostenlosen Versionen mehr gibt. Von Delphi 6 und 2005 gab es in der ct "Personal" Versionen die für Hobbyentwickler reichten (größte Einschränkung war dass auch einige Debugger Features fehlten). Später die Turbo Versionen die schon gravierende Einschnitte hatten (es waren die Vollversionen, sie waren jedoch nicht um Frendkomponenten erweiterbar). Für beide hat Embarcadero den Support eingestellt. Das bedeutet nicht nur, dass man sich die Versionen nicht mehr herunterladen kann, ich kann auch jemanden nicht die schon existierende mal kostenlose CD in die Hand drücken, damit sich ein Schüler zumindest die alte Version zum Üben installieren kann, weil er das Produkt nicht mehr registrieren kann.

In Zeiten wo Microsoft sein Visual Studio mit der Einschränkung auf eine Sprache verschenkt, ist das schwer zu verstehen. Okay, Microsoft kann sich das leisten, aber vielleicht denkt mal bei Embarcadero mal darüber nach, die 99 Euro Variante für alle verfügbar zu machen die nicht kommerziell arbeiten wollen und dafür einige professionelle Features wie z.B. UML Unterstützung rauszuschmeißen. Alternativ wäre es vielleicht möglich eine nicht so taufrische Version billiger anzubieten. Okay, der Gedanke ist verwegen, weil soweit ich weiss man bei Software immer nur die aktuelle Version kaufen kann, aber vielleicht macht ja mal einer den Anfang….

Das nächste ist die Produktweiterentwicklung. Okay, da gibt es viele Meinungen. Für den einen ist die IDE Weiterentwicklung wichtig, für den anderen ist es der allgemeine Sprachstandard (Generics, Operatoren überladen, Mehrfachzuweisung etc) für den anderen sind es Komponenten oder Datenbankunterstützung anderer wünscht sich Lifecycle Tools wie UML Modellierung oder Unit Tests.

Für mich sind folgende Dinge bedeutsam:

Moderne IDE – hier gab es einige Verbesserung, die aber auch wirklich nötig waren. Bei 400 Komponenten ist die Möglichkeit der Suche (mit 2009 eingezogen) überfällig gewesen und dass man Code formatieren kann (ab 2010) auch. Das habe ich bisher immer extern mit einem eigenen Programm erledigt.

Fast an jeder Version wurde an den Komponenten gebastelt – manche fielen weg, neue kamen dazu, vor allem was den Datenbankbereich der ja mal Hauptzweck von Delphi war, angeht. Ich muss sagen, dass ich das als nicht so wichtig ansehe, weil ich bestimmte Komponenten immer wieder verwende und viele stammen nicht von Delphi sondern aus dem Internet. Das hat auch den Vorteil, dass ich mal eine ältere Version einsetzen kann, die schnell installiert ist um einen Fehler zu suchen. Wenn ich immer die neuesten Komponenten einsetze, die mitgeliefert werden, dann geht das nicht, vor allem ändere ich ja nicht bestehende Anwendungen nur weil es nun schickere Buttons gibt. Vielleicht wäre das eine Möglichkeit den Preis zu staffeln indem man einfach ein paar weniger Komponenten mitliefert. (Es gibt ja auch gute extrerne Komponentensammlungen wie z.B. die JCL).

Die Life Cycle Versionen sind dagegen für mich überhaupt nicht relevant, da ich reiner Entwickler bin. Wer gerne UML Diagramme malt, findet die vielleicht toll, aber ich kann drauf verzichten.

Was ich mir wünsche ist, das der Compiler auf dem neuesten Stand ist: er sollte 64 Bit Code erzeugen. Mich würde überhaupt mal interessieren in wei weit Delphi überhaupt Code erzeugt der über den 386 er Standard rausgeht also MMX, 3DNOW, SSE, SSE2,3…). Ich habe nichts gefunden, was darüber Auskunft gibt. Das zweite wäre die Sache mit .NET. Seit Jahren kündigt man an, dass dies irgendwann mal zusammenfließen soll, seit genauso vielen Jahren gibt es Warnings in den Programmen dieses und jenes wird unter .NET nicht mehr funktionieren – aber geschehen ist nichts. Im Gegenteil: Den .NET Compiler der lange Zeit mit enthalten war, ist nun eigenständiges Produkt geworden.

Der Hauptgrund eine neue Version zu kaufen, ist es heute, glaube ich, dass die alten nicht mehr laufen. Bei der Installation von Delphi 2006 bekam ich erst eine Warnung von Windows 7. Nachdem mir das hantieren mit einer virtuellen Maschine zu dumm wurde (ich habe eine Komponente nur als DLL und die kommt nicht mit der 2009 eingeführten Umstellung der Laufzweitbibliothek auf Unicode nicht zurecht, sodass ich für ein Programm immer noch die 2006 er Version zum Compilieren brauche) brachte ich sie doch noch zum Laufen, auch wenn ich das gesamte .NET Kit ab Version 1 nochmals von Microsoft runterladen musste. Delphi 7 läuft aber nach Aussagen der Studenten nicht mehr.

Anstatt jedes Jahr eine neue Version rauszubringen und dauernd den Eigentümer zu wechseln (von Borland über Codegear zu Embarcadero) wäre es sinnvoll, mal alles zu konsolidieren und echte neue Features einzubringen und wie schon gesagt eine Preispolitik zu verfolgen die auch an die Leute denkt die nicht mit Programmen ihr Geld verdienen.

Es ist natürlich schwer wenn man ein gutes Produkt hat neue revolutionäre Ansätze zu bringen. In der Turbo-Pascal -Delphi Geschichte sehe ich nur wenige richtige Revolutionen:

  • Turbo Pascal 1.0 – die Revolution mit der IDE
  • Turbo Pascal 4.0 – Unit Konzept, neue IDE
  • Turbo Pascal 5.5 – Objektorientierung
  • Delphi 1.0 – Komponentenbasierende Architektur
  • Delphi 2.0 – vollständiges 32 Bit System

… und seitdem? viel Detailverbesserung, vieles sieht schicker aus, aber es fehlt der große Wurf in der Weiterentwicklung der Sprache.

Sehr schade. Klar ist das Delphi einen schweren Stand hat – Borland war seit Ende der achtziger Jahre die einzige Firma die Pascal weiter entwickelt hat, während es eben einige Anbieter für Compiler für C, Java oder Werkzeige für PHP, Ruby oder Phyton gibt. Und anders als bei Visual BASIC kann sie nicht auf Synergien zählen, indem sie die Sprache noch in ein populäres Offficepaket einbaut. Aber man kann sich um seine Kunden schon etwas mehr bemühen, als die Firma das in der Vergangenheit tat. Nach dem TIOBE Index ist Delphi immer die 12-populärste Programmiersprache (zählt man Pascal dazu käme sie auch auf Platz 10), doch ich frage mich was so groß in Python und Ruby programmiert wird die ja noch höher gewertet sind, geschweige den Objective-C…. Die TIOBE Grafiken sind übrigens ganz interessant. Programmiersprachen die ich absolut grausam finde (C++, Perl) sind auf dem absteigenden Ast, da geht es Delphi noch relativ gut – es hält sich mit Sprüngen nach oben oder unten im Mittelfeld.

3 thoughts on “Delphi – so gehts nicht

  1. Nein, das habe ich für meine Studenten auch schon evaluiert. Der Aufbau weicht schon von Delphi Programmen ab. Und ein einfaches Konsolenobjekt (damit beginnt der Unterricht) ist kein prozedurales Programm sondern eine Klasse.

  2. Einige Antworten auf die wahrscheinlich eher rhetorischen Fragen:
    Aus Wikipedia zitiert:
    > Objective-C ist die primäre Sprache von Cocoa (Mac OS X)
    > und GNUstep.
    Und wie ich einigen Kommentaren hier im Blog entnehme, wohl auch die Programmiersprache der Wahl für sämtliche „iGeräte“ von Apple.

    Ebenfalls aus Wikipedia zitiert:
    > Python kann als Skriptsprache eines anderen Programms dienen
    > (Beispiele: OpenOffice.org, Blender, Cinema 4D, Maya, PyMOL,
    > SPSS und GIMP).

    Und nach dem Wikipedia Artikel zu Ruby nehme ich an, dass es anscheinend ein Experimentierfeld für „Multiparadigmensprachen“ ist.

    Ansonsten stimme ich der Forderung zu, eine Preispolitik zu machen, die auch Hobby- und Gelegenheitsentwickler nicht vor den Kopf stösst, indem die Preise für diese Gruppe einfach zu hoch angesetzt werden.

    Und was den erzeugten Code angeht: Man kann ihn ja mal mit Analysetools wie IDA Pro (http://www.hex-rays.com/idapro) untersuchen. Dann sollte sich heraus finden lassen, ob MMX, 3DNow, usw. unterstützt werden. Entweder macht der Compiler das stillschweigend oder gar nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.