Diskussion: Der BCB / BuilderX und die Zukunft von Borland (war:Builder 7 kommt raus)
-
Hallo,
ich denke, in allen Aussagen hier steckt Wahrheit. Die Informationspolitik von Borland ist zur Zeit unter aller Kanone, und wie so oft macht man sich um Delphi und Java mehr Gedanken, als um C++. Wenn man da nicht verunsichert wäre, hätte man als kommerzieller Entwickler einen falschen Beruf gewählt.Aber Programmieren ist Veränderung und ständige Anpassung. C++ ist eine Sprache, die durch ein Gremium vieler Firmen nach vorne entwickelt wird, dadurch ist es relativ stabil. Deshalb ist C++ die Nummer 1 der Programmiersprachen und wird es auch in den nächsten 5 Jahren bleiben. Nur die VCL und .net werden von einzelnen Entscheidungen beeinflußt. Und wenn .net strategisch auch gut ist, so ist der Weg, den Microsoft dahin wählt, nicht unbedingt richtig.
Der C++ BuilderX ist strategisch ein starkes Produkt. Borland wurde durch die allgemeinen Marktsituationen dazu gezwungen, den Microsoft führt einen riesigen Werberummel um .net, und viele sind wie Lemminge, und laufen diesem Werberummel nach (ich bin ansonsten eher ein Microsoft Fan, und glaube, viele gute Dinge kommen von dort) und mit Delphi hatte man die Chance, den Zuschlag für die .net Lizenz zu bekommen. Und Delphi zielt, wenn es einige auch nicht wahrhaben wollen, immer noch auf das Marktsegment Visual Basic, also mußte man einfach diese Entscheidung treffen. Deshalb wurde die VCL zu einer Ergänzung des .net- Framework (und wie für Borland typisch, zu einer sehr guten). Auf der anderen Seite wird der Linux und Palm(+Handy-) Markt immer größer. Also hätte die weitere VCL- Ausrichtung eine klare Fixierung auf .net nach sich gezogen, was bestimmt keinen Sinn für C++ gegeben hätte.
Wenn ich den letzten offenen Brief im Oktober richtig gelesen habe, wird es auch einen neuen Compiler für die VCL.net - Komponenenten von Borland geben, allerdings dann für das durch Microsoft kreierte "managed" C++, sonst wäre ja nichts mit .net. Vielleicht wird dieser sogar in den BuilderX eingebettet, vielleicht ist es ein Builder7 oder 8, das kann bei der Informationspolitik keiner sagen. Aber auch hier ist Borland eher selber ein Opfer. Wenn Ihr also zukünftig von Einzelentscheidungen befreit sein wollt, dann kann der BuilderX mit wxWindows eine gute Alternative werden.
Auch wir haben viele Mann- Jahre in die Entwicklung professioneller Software mit dem C++ Builder gesteckt. Wenn wir auch immer vorsichtig waren, was die Abhängigkeit zur VCL betraf, es ist eine Illusion, bestehende Projekte zu drehen. Und unter Zeitdruck hat man oft das Unbehagen zurückgedrängt, und die VCL- Klassen dorch direkt benutzt. Und da es für die Kunden erstmal keinen Mehrwert gibt, ist es jetzt auch schwierig, die Umstellung zu finanzieren. Aber man kann jetzt beginnen, einen schleichenden Übergang zu vollziehen, und C++ hat die Sprachmittel, das Framework entsprechend zu kapseln. Und damit kann man mit dem C++Builder 5 oder 6 beginnen, dafür braucht man nicht den neuen BuilderX. Und dann kann man in einigen Monaten in Ruhe und richtig informiert entscheiden. Und wenn es dann schließlich gelingt, den Schritt zum C++BuilderX zu machen, gewinnt man mit den Applikationen sofort neue Kunden im Linux (Unix) und Mac- Bereich, und dann hat man den gewünschten Mehrwert (und wir werden schon häufiger nach Linux und Mac- Fähigkeit gefragt), nicht für den Kunden, aber für die eigene Firma. Und darum geht es doch in der kommerziellen Entwicklung.
Meine Empfehlung ist daher immer noch die gleiche, wie vor einigen Monaten, langsame Migration, Aufbau einer Architektur, um die Oberfläche abzukoppeln und schrittweise (immer wenn Puffer sind oder man sowieso daran arbeitet) alle AnsiString's und VCL- Container durch die C++ Klassen (STL) ersetzen. Auch die Datenbankzugriffe über eine abstrakte Schnittstelle von dem Anwendungskern trennen, damit der wichtige Kern der Anwendung schrittweise nur noch aus C++ besteht, ohne VCL, MFC, wxWindows, .net und welches Framework in der Zukunft noch kommen wird. Und noch etwas, der Test in der C't hat doch gezeigt, wie schlecht diese VCL- Klassen im Zusammenspiel mit C++ sind, wollt Ihr Euch darauf ausruhen? Nachdem ich die STL (die ja zu C++ gehört, es also schon verwunderlich ist, wenn der Autor sie damals als "eine andere Klassenbibliothek" abtat) in das Besipiel eingebaut habe, und die Strings via Referenz übergeben habe (fair muss man ja bleiben) war die Anwendung mit dem C++BuilderX und wxWindows geschrieben, wieder sehr viel schneller als die Referenzergebnisse aus der C't für Java, Delphi und C#. Die Kostruktionszeit war kaum noch meßbar. Es wäre also falsch, gerade in dieser Zeit, einen Wechsel von C++ und auch von Borland in eine andere Richtung, sei es nun JAVA oder C# zu machen. Denn dann ist man eventuell vor zukünftigen Machtentscheidungen zwischen SUN und Microsoft nicht mehr geschützt. Der Weg mit dem C++ Builder X ist also richtig, man muss sich nur richtig darauf vorbereiten und erkennen, dass es ein Weg ist, und noch nicht das Ziel.
Euch allen einen guten Rutsch und ein erfolgreiches Jahr 2004
Schöne Grüße aus Berlin
Volker
-
VolkerH schrieb:
Euch allen einen guten Rutsch und ein erfolgreiches Jahr 2004
jo, von mir auch
-
Hallo Zusammen,
wie ich aus den Äusserungen von einigen schliesse, gibt es doch sehr viele die über die Vorgehensweise von Borland nicht ganz glücklch sind. Ich habe immer noch die Hoffnung, dass Borland dies auch noch bemerkt und vielleicht die Vorgehensweise überdenkt. Ich könnte mir vorstellen, dass man die VCL (auch innerhalb von C++) weiter pflegt und diese als Untermenge zukünftiger Klassenbibliotheken erhält.
Im Übrigen bin ich mir bewusst, dass in der IT-Technik nichts von langem Bestand ist. Allerdings haben wir schon die Schritte von der OWL 1 zur OWL 2 und anschliessend zur VCL vollzogen. Und mir will nicht in den Sinn warum die Bibliotheken von Borland einen kürzeren Lebenszyklus haben, als die mit ihnen erstellten Applikationen. Des Weiteren zeugt es nicht gerade von souveränem Verhalten, wenn Produkte auf z.B. Betriebssysteme ausgerichtet werden, die nur ca. 5% des Softwaremartks ausmachen. Denn dabei werden die restlichen 95% oftmals vor den Kopf gestossen.
Borland sollte endlich mal aufhören zu versuchen jede Nische im Markt besetzen zu wollen. Wenn ein Borland-Guru mal wieder eine neue, revolutionäre Programmiertechnik ersonnen hat, so ist doch die Euphorie bei den Alt-Kunden schnell verflogen, wenn dabei alle Brücken zu bestehenden Projekten abgebaut werden.
Wir könnten es uns nicht erlauben, unseren Kunden ein neues Softwareprodukt zu verkaufen, welches die Projekte der Vorgängerversion nicht mehr bearbeiten kann.In diesem Sinne, ich wünsche Euch allen ein gesundes und erfolgreiches Jahr 2004.
Gruß Torsten
-
Hallo Torsten,
ich kann Deinen Frust ein ganzes Stück weit verstehen. Aber man muss auch fair sein, denn auch mit dem C++ Builder konnte man die OWL- Programme eine ganze Zeit lang weiterentwickeln und betreuen. Ich denke jeder von uns hat diese Wechsel mitgemacht, es ist wirklich zum k.... Aber trotzdem haben wir gewechselt, weil wir das mehr an Möglichkeiten nutzen wollten. Und die Einfachheit der VCL- Umgebung hat schon etwas fazinierendes gehabt. Und ich gebe Dir auch darin recht, Borland versucht manchmal wirklich auf so vielen Hochzeiten zu tanzen (wie hat Borland selber mal geschrieben, den "Schweizer Weg" zu gehen), aber es ist im Moment wirklich schwer, verherzusagen welche Entwicklung die IT durch die nächsten 5 Jahre nehmen wird. Wie entwickelt sich Linux weiter? Setzt sich .net oder J2EE durch? Das sind doch nur einige der Fragen, auf die, wenn man sich die Vorhersagen der IDC ansieht, auch die Analysten keine Antwort kennen. Wer hätte vor 22 Jahren gedacht, dass Microsoft sich gegen IBM's propitäre Systeme durchsetzt? Erinnern wir uns doch mal an die einst so dominierende Firma "Lotus" mit Notes und 123 Marktführer, auf OS2 gesetzt und verzockt, oder an Novell, absoluter Marktführer im Netzwerkbereich, wieviel Prozent neuer Netzinstallationen werden wohl noch mit Novell ausgeliefert? Es kann also sehr gefährlich sein, wenn man sich zu sehr festlegt und bindet.Und setzt Borland schon mal Prioritäten, dann nicht unbedingt für C++. Als Kylix damals kam, warteten wir auf den BCB5, der BCB6 kam auch später und nach Delphi 7 kam die .net- Entwicklung für Oktane, Klasse. Da können wir doch eigentlich froh sein, daß die Wege Delphi und C++ sich im CBX trennen, oder?
Und auch das Borland mit dem C++ Builder einen katastrophalen Fehler gemacht hat stimmt. Nr nicht jetzt mit dem CBX, bereits vor einigen Jahren, als sie ein sehr gutes C++ Entwicklungssystem geopfert haben, und den Builder mit der VCL einführten, anstatt konsequent an der C++ Umgebung weiterzuarbeiten. Der C++ Builder ist doch nichts anderes mehr, als ein anderes Frontend für Delphi, wenn die VCL einbezogen ist, funktioniert die RTTI und Mehrfachvererbung nicht. Der Code ist für C++ relativ langsam und der alte Grundsatz Funktionalität / Geschwindigkeit / Oberfläche, der beim Programmeieren galt, ist in vielen Fällen einer oberflächenlastigen Quick and Dirty- Methode gewichen (bitte, keiner soll sich angesprochen fühlen). Wer kennt noch die ClassLib mit der Datumsklasse? Was ist heute TDateTime, doch eher ein Witz. Wenn man Implementierungen mit TList austauscht gegen die STL, werden die Programme plötzlich schneller, weil da echter C++ Code erzeugt wird. Auf der RoadShow habe ich gefragt, wer partielle (virtuelle) Mehrfachvererbung, RTTI mit dynamic_cast oder Templates nutzt, von den insgesamt ca. 80 Teilnehmern nicht einmal 10!!! Wenn man Fremdbibliotheken benutzen möchte, paßt oft das Objektformat nicht, da Borland das von Delphi verwendet (damit die VCL paßt), und es gibt viel mehr C++ Bibliotheken auf dem Markt, als VCL- Gegenstücke, nur haben wir es als BCB- Programmierer nicht mehr gesehen. Jetzt scheint (genaues kann man bei der Informationspolitik von Borland leider nicht sagen) Borland die Entwicklung von der Isolation zurück in die größte Programmiergemeinde zu lenken, und dieser Schritt ist richtig, wenn er uns auch allen viel abverlangen wird. Aber jedem, der keine Templates, keine Typumwandlungen über RTTI und Mehrfachvererbung verwendet, Euch bleibt doch der Weg zu Delphi frei, und Delphi entspricht heute doch eher C++ als Pascal.
Außerdem noch mal, im offenen Brief vom 29.Oktober schreibt doch LeBlanc
Windows C++ Applications. If you are committed to building and deploying C++ applications for the Microsoft Windows platform only, Borland will recommend and encourage developers to build for the .NET framework using Managed C++. Borland is committed to supporting this path by providing a C++ compiler with Managed Extensions and integrating support for VCL for the .NET framework, which should provide an straightforward route for current C++Builder 6 developers using VCL to migrate their applications to the .NET platform with less effort.
Da die BCB- Route in diese isolierte Ecke geführt hat, und Microsoft jetzt die Richtung festegelegt hat (.net + C# oder managed C++) ist das die konsequente Fortsetzung, und damit lässt Borland auch keinen VCL / C++ Entwickler im Stich. Ich persönlich rechne schon im 1. Quartal mit neuen C++ Tools. Und ich denke, der Weg zum CBX, wenn man ihn richtig angeht, ist der zukunftsicherere Weg, und ich denke auch, daß Borland diesen unterstützen wird, zu mindest hat LeBlanc dieses versprochen.
We recognize the importance of your investment in VCL technologies and will provide further details on native VCL support in and migration to C++BuilderX in a follow-up Open Letter within these next few weeks
DbExpress ist ja bereits migriert, ich denke, dass in den nächsten Schritten noch einige VCL - Komponenten migriert werden. Aber man kann nicht von Borland erwarten, die Design- Fehler aller Entwickler zu beachten. Ich denke, da müssen wir selber ran. Und die Antwort ist eigentlich einfach, das Framework vom Anwendungskern trennen, durch Kapselung und abstrakte Schnittstellen, sich mit modernen C++ Eigenschaften (templates, RTTI, partielle Mehrfachvererbung, ...) auseinandersetzen, und die Anwendungen in eine moderne Architektur bringen. Ich denke, genau das erwarten auch unsere Kunden von uns. Und dann ist man von Entscheidungen einzelner, sei es Borland, SUN oder Microsoft, frei.
Ich wünsche Euch allen ein schönes, erfolgreiches, neues Jahr 2004
Volker
-
hallo,
@volkerh: toll, wie sauoft werden diese c++-features schon wirklich benötigt wenn jeder mal ehrlich ist??? und wegen diesen sachen dieser rückschritt? also ich weiss nicht...
mfg
murphy
-
hallo murphy,
also, Du hast recht, man benötigt diese Eigenschaften nicht unbedingt, sonst würde es ja keine anderen Sprachen, wie Delphi, Basic, JAVA, ... geben ;-). Aber dann kann man auch mit diesen Sprachen entwickeln.Aber diese Eigenschaften machen eben gerade den Unterschied aus! Warum programmierst Du in C++, wenn Du die Eigenschaften nicht ausnutzen willst, warum nimmst Du die langen Compilier und Linkzeiten in Kauf? Wenn Du diese Eigenschaften konsequent einsetzt, dann wird Deine Anwendungsarchitektur stabiler, Du hast plötzlich extrem weniger Quellcode, die Wiederverwendbarkeit erreicht eine neue Dimension und das Fehlerpotential sinkt. Deine Anwendung wird toleranter gegenüber Veränderungen, und Du kannst größere Probleme lösen. Eben gerade das ist der Unterschied zwischen professioneller Anwendungsentwicklung und der Quick and Dirty- Methode, und gerade hier spielt C++ seine Leistung aus. Also ist es schon vernünftig dafür einen vermeintlichen Rückschritt zu machen. Der BCB war am Ende nicht mehr C++. Wenn es Borland jetzt, wie versprochen, gelingt, die guten Eigenschaften und Möglichkeiten der VCL in eine echte C++ - Entwicklungsumgebung zu migrieren, dann ist das Fortschritt, und wir werden alle davon profitieren.
Schöne Grüße aus Berlin
Volker
-
hallo,
hallo volkardh, also ich wollte dir ja nicht an den karren fahren, aber ich muss gestehen, ich arbeite eigentlich nur mit c++ weil es den c++builder gibt, in meiner ausbildung (da lerneten wir programmieren mit ms-visual c++ und der gaaaaaanz tollen mfc), war der erste einfühtungssatz unseres dozenten der seit 27 jahren mit dabei ist, das das seltenst sinnvoll eingesetzte feature der sprache c++ mehrfachvererbung ist, und wenn man solchen dinge doch einmal unbedingt benötigen sollte, so wäre es besser diese mit ´den moderneren konzepten der interfaces nachzubilden. naja, wie dem auch sei, ich arbeite seit ca. 5 jahren in der dos/windowsprogrammierung hauptsächlich windows, ich selber habe dieses feature noch nie gebraucht. klar, vielleicht bin ich dazu auch ein viel zu durchschnittlicher programmierer, aber für die dinge die du da angeführt hast, möchte ich auf keinen fall den komfort einer vcl vermissen! das ist es mir einfach nicht wert. für mich heisst der fall ganz klar und eindeutig: nix vcl-mässige klassenbibliothek = kein c++ und an borland: CBuilderX = ohne mich...
mfg
murphy
-
Hallo murphy,
auch ich wollte Dir nicht an den Karren fahren. Entschuldige bitte, wenn Du es so aufgefaßt hast. Ich habe von vielen Leuten zu oft gehört, dass man diese Eigenschaften nicht braucht, und meistens von Leuten, die nicht verstanden haben, worum es eigentlich bei Mehrfachvererbung, templates, RTTI, ... geht. Eigentlich schade, denn das führt dazu, dass viele sich nicht damit beschäftigen. Und ich schließe mich dabei nicht aus.Meine ersten konstruktive Begegnung mit templates hatte ich in einem sehr datenintensiven Projekt, ein Zusatztool auf einer Finanzbuchhaltung. Eigentlich war der Termin nicht mehr zu halten, ich mußte in drei Tagen ca. 15.000 Quelltextzeilen schaffen, und dann auch noch alles sinnvoll einbinden. Dann habe ich aus der Not heraus, weil ich keinen Quelltext mehr sehen konnte, templates eingesetzt, aus den 15.000 Quelltextzeilen sind 2.500 geworden, und ich habe den Termin geschafft. Außerdem hatte ich in diesen Tagen sogar noch etwas gelernt. Vorher habe ich auch gesagt, templates, wozu?
Mit der virtuellen Vererbung das gleiche. Am 4. April 1999 habe ich in einem Workshop in einem größeren Programmierprojekt, in dem ich verantwortlich war, gesagt, dass partielle Mehrfachvererbng nett ist, aber man es nicht braucht (ich hatte es mir bis dato garnicht angesehen, da ich glaubte, man brauche es nicht). Es waren damals 7 Projektmitarbeiter, die mir dieses natürlich auch glaubten. Nur 4 Tage später kam es zu Problemen im Modell, das Konzept war gut, nur lies es sich nicht umsetzen. Einen ganzen Tagen berieten wir, ohne Erfolg. Nachts im Auto, auf dem Weg nach hause, hatte ich plötzlich die Idee, vielleicht könne es ja mit der partiellen Vererbung zu lösen sein? Ich nahm mir ein Buch und arbeitete die Nacht durch. Ich las, probierte Sachen aus und am nächsten Morgen trommelte ich das Team zusammen und stellte am Flipchart das neue / alte Modell vor. Es hatte funktioniert, es wurde im laufe der Wochen verfeinert, aber es blieb bis zum Schluß stabil. Wir hätten es ohne die partielle Vererbung nie geschafft, ein Lebenversicherungssystem mit 6 unerfahrenen und 2 erfahrenen Programmieren in 6 Monaten aus dem Boden zu stampfen, wenn wir uns dieser Mittel nicht bedient hätten.
Warum die Geschichten, passen sie überhaupt noch zum BuilderX? Ich denke ja, denn man muss sich ständig nach vorne bewegen und mit neuem beschäftigen, und wenn man in ein Sackgasse läuft auch den Mut haben, wieder zurück zu gehen. Und jedem, der C++ programmiert, kann ich nur raten, beschäftigt Euch mit diesen Spracheigenschaften, weil es sich wirklich lohnt. Und ich denke, aus meiner Erfahrung in Seminaren und RoadShows, die meisten C++ Entwickler haben noch eine Menge Freiraum, neue Dinge zu lernen.
Schöne Grüße aus Berlin
Volker
-
hallo,
weisst du volker, das kann jetzt ewig so hin und her gehen. niemand sagt doch auch zu dir, das du templates, run time type informations und sogar mehrfachvererbung (obwohl dabei erwiessenermassen ziemlich gezwängte unnatürliche ergebnisse i. d. Regel rauskommen, auch wenn es jetzt bei deinem projekt total gut reingepasst hat) nicht verwenden sollst oder gar kannst. der builder unterstüzt so ziemlich den kompletten offiziellen c++ standard in einem solchen grad, wie kaum ein anderer c++ compiler, auch ist im bcb meist immer als erstes ein neues feature welches zum standard hinzukommen ist eingebaut. niemals habe ich auch behauptet, das templates nicht verwendet werden, templates sind eine geile sache (hat mittlerweile auch borland erkannt, und dieses konzept kurzerhand in delphi-language übernommen-neue version). in der vcl können sie derzeit leider nicht verwendet werden, da eben noch nicht unterstüzt, aber es gibt ja auch noch die stl die man jederzeit im builder nutzen kann. und nocheinmal, ich glaube nicht, das sehr viele builderprogrammierer den komfort der vcl gegen eine unterstüztung der mehrfachvererbung eintauschen wollten, denn genau wie du anführtest, das man immer in immensem zeitdruck ist, denke an alte vcl-lose zeiten. und auch wenn es im bcb geht, es ist niemand dazu gezwungen "quick and dirty" damit zu programmieren (s. hierzu z. B. doc/view-modell für bcb, etc.), es kommt immer nur darauf an, was man selber daraus macht.
ich kenne deine meinung und respektiere die auch, und wenn die borländer was in c++ daherbringen, mit dem so programmieren kann wie mit der vcl dann binn ich der erste der hurra schreit, aber das glaube ich eben nicht, weil hierzu der c++ standard zu sehr verbogen werden müsste um die features zur oberflächengestaltung einzubauen. und für die programme die ich schreibe, brauche ich eine ide mit der sich windows-oberflächen einfach bauen lassen und auf dem neuesten stand halten lassen, wo wie es mir die vcl bietet.mfg
murph
-
hallo murphy,
also erst einmal kann ich dich (und alle anderen) beruhigen, die wxWindows- Libary ist, was Oberflächen betrifft, ebenso leistungsfähig, wie es die VCL war, nur fehlt der Designer noch. Im Performance- Vergleich ist sie sogar deutlich besser. Im preview bekommt man eine erste Vorstellung, in welche Richtung es mit dem Designer einmal gehen wird, auch das ist nicht unbedingt schlechter, als die VCL. Nur ist die Performance des Designers auf Grund der JAVA- Implementierung noch himmelschreiend schlecht, hier darf man auf die richtige Version gespannt sein. Um die Entwicklung von wxWIndows vorhersehbar zu machen, wurde eine Foundation gegründet, in der auch Borland vertreten ist. Borland hilft der Foundation beim Einarbeiten neuer Eigenschaften, wie STL, RTTI, ..., arbeitet also aktiv mit. Man muß auch C++ dafür nicht irgendwie verbiegen, da ja die API ohnehin in C++ geschrieben ist, und es sprachmäßig nicht viel in Delphi gibt, was es in C++ nicht auch gibt, im Gegenteil. Ich bin also fest davon überzeugt, dass der nächste Wurf ein Volltreffer wird, weil technologisch ist Borland immer gut gewesen (vielleicht sollte man etwas an der Kommunikation und dem marketing verbessern).Das was eben noch nicht unbedingt in Sicht ist, sind Komponenten für WebServer, WebServices, ..., aber auch da denke, weiß Borland, was man den Programmieren schuldig ist, ich denke also, wir werden bereits in den nächsten Wochen alle aufatmen können. Vielleicht schafft es ja Borland sogar, die IDE selber in C++ zu schreiben, den ein Problem für die enormen Hardware- Anforderungen und die schlechte Perfomance der IDE sind ja wohl eindeutig in der JAVA- Implementierung zu suchen.
Damit könnten wir unsere Diskussion also beenden, allerdings ist da noch ein Nebensatz von Dir, den ich so nicht stehen lassen will.
obwohl dabei erwiessenermassen ziemlich gezwängte unnatürliche ergebnisse i. d. Regel rauskommen, auch wenn es jetzt bei deinem projekt total gut reingepasst hat
Auch Du trägst die Erbmasse mehrerer Personen in Dir
, trotzdem denke ich nicht, dass Du unnätürlich bist, im Gegenteil. Aus der Mehrfachvererbung kann sicher etwas total sinnlosen werden, aber da reicht auch die einfache Vererbung in den Händen eines schlechten Designers. Nimm Dir doch wirklich einmal die Zeit, lasse Dich nicht von irgendwelchen Informatikprofessoren beeinflussen (oder benutze sie nicht als Ausrede) und beschäftige Dich mit Mehrfachvererbung. Sie ist kein Allheilmittel, sie ist nur ein Sprachmittel unter vielen, aber sie ist sehr mächtig, und deshalb sollte man sie nicht so abhacken, wie Du es hier versuchst, und sogar sagen, dass "erwiessenermassen ..." dabei herauskommen.
Schöne Grüße aus Berlin
Volker
-
dschensky schrieb:
AndreasW schrieb:
Soweit ich das verstanden habe, arbeitet ADO.NET mit XML-Daten.
Die Verwendung von XML als "Datenbank" wird unterstützt, ist aber nur eine Möglichkeit. ADO.NET ist (wie etwa die BDE) eine generisches Datenbank-Zugriffs-Modell. Du kannst genauso auf jede andere Datenbank zugreifen, falls der Hersteller die entsprechenden Treiber zur verfügung stellt (OLEDB, ODBC).
Die "große Neuerung" in ADO.NET ist die Verbindungslosigkeit (keine Cursor auf Server-Seite). Das macht das Programmieren schwerer, verbessert aber die Skalierbarkeit.du hast das falsch verstanden. ADO.NET benutzt XML um die Daten verbindungslos im Arbeitsspeicher zu cachen. Welche Datenbank ist prinzipiell egal, da ADO.NET OLEDB unterstützt.
Aber beachte mal die Speicherrelationen... Zumal sich das beschriebene Verhältnis des Speicherbedarfes zwischen Tags und eigentlichen Daten noch dramatisiert, da auch alle Meta-Daten mitgespeichert werden müssen, um die Daten offline konsistent zu halten. Fatal. Das schlimmste was je aus dem Hause Microsaft gekommen ist. Für HelloWorld- Programme mit Adressverzeichnis in einer Datenbank mag das ja noch gehn, aber für professionellen Datenbankeinsatz ? Mehr als zweifelhaft.dschensky schrieb:
Das macht das Programmieren schwerer, verbessert aber die Skalierbarkeit.
In wie fern ?
-
Hallo und allen ein gutes und erfolgreich Jahr 2004.
Auch ich benutze den C++Builder seit der Version 1.0 und bin mit dieser Entwicklungsumgebung sehr zufrieden.
Es geht ja nicht nur darum, das man die Benutzeroberflächen sehr schnell und einfach erzeugen kann. Ich bin sicher, das das mit wxWindows ebenso einfach und schnell geht, ich kann mir darüber aber kein genaues Urteil bilden, da ich das noch nicht getestet hab.
Das weitere Hightlight am CB ist das Benutzen der nichtvisuellen Komponenten, die der SW gewisse Funktionalitäten zur Verfügung stellen (wie z.B. die Datenbank-Komponenten) und damit den Programmieraufwand erheblich vereinfachen. Man kann ja die Eigenschaften zur Entwurfszeit setzen und auch gewisse Ereignisse eintragen, die dann beim Eintreten als Klassenmethode eines bestimmten Klassenobjekts aufgerufen werden. Diese Möglichkeit betrachte ich eigentlich mit als das genialste Konzept des CB-Compilers. Denn das Aufrufen von Klassenmethoden über Methodenzeiger ist beim normalen C++ ja (leider) so nicht möglich, es sei denn, es handelt sich um eine statische Klassenmethode, die an kein bestimmtes Klassenobjekt gebunden ist.Ich frage mich an dieser Stelle: Kann man denn auch mit andere Designern wie z.B. das wxWindows solche nichtvisuellen Komponenten erstellen?
Gruß Burkhard
-
Hallo,
ich kann zwar den Ausführungen mit statischen und Klassenmethoden etc. nicht ganz folgen, aber im Grunde geht es Dir ja um die Events. Eigentlich ist die Lösung der VCL simple (man musste nur einmal darauf kommen), die Behandlungsmethoden sind auch keine Klassenmethoden (im Gegenteil, sonst könnte man durch Ableitung die Eigenschaften nicht einfach so ändern, oder verschiedenen Edit- Feldern unterschiedliche Events zuweisen), also ist das mit jedem anderen Framework abbildbar. Dafür muss die Sprache auch nicht angepaßt werden, da reicht C++. Und Properties selber gibt es in wxWindows auch, insoweit bin ich überzeugt, der fertige Designer wird hier einen ähnlichen Komfort bieten, wie der BCB6. Ich habe einmal eine xrc- Datei (entspricht in etwa der dfm- Datei) kopiert, hier sieht man, die Parallelen doch deutlich, nur eben xml- basierend.
<?xml version="1.0" encoding="utf-8"?> <wxWindowsXTI> <metadata classname="wxmainform" baseclass="wxFrame" objectname="mainform" unitname="unitname"> <property type="wxPanel *">MainPanel</property> <property type="wxStaticText *">StaticText1</property> <property type="wxTextCtrl *">TextCtrl1</property> <property type="wxButton *">Button1</property> </metadata> <entry name="mainform"> <object class="wxmainform" id="0" name="mainform"> <prop name="Id">100</prop> <prop name="Title">mainform</prop> <prop name="Position">29,22</prop> <prop name="Size">500,400</prop> <prop name="WindowStyle">wxCLIP_CHILDREN|wxCAPTION|wxTHICK_FRAME|wxSYSTEM_MENU|wxRESIZE_BOX|wxCLOSE_BOX|wxMINIMIZE_BOX</prop> <prop name="Children"> <element> <object class="wxPanel" id="1" name="MainPanel"> <prop name="Parent"> <object href="0"/> </prop> <prop name="Id">101</prop> <prop name="Position">0,0</prop> <prop name="Size">492,366</prop> <prop name="WindowStyle">wxTAB_TRAVERSAL</prop> <prop name="Children"> <element> <object class="wxStaticText" id="2" name="StaticText1"> <prop name="Parent"> <object href="1"/> </prop> <prop name="Id">102</prop> <prop name="Label">StaticText1</prop> <prop name="Position">31,19</prop> <prop name="Size">54,13</prop> <prop name="WindowStyle"></prop> <prop name="ExtraStyle">0</prop> <prop name="ForegroundColour">#000000</prop> <prop name="BackgroundColour">#ECE9D8</prop> </object> </element> <element> <object class="wxTextCtrl" id="3" name="TextCtrl1"> <prop name="Parent"> <object href="1"/> </prop> <prop name="Id">103</prop> <prop name="Value">Hallo</prop> <prop name="Position">120,21</prop> <prop name="Size">100,21</prop> <prop name="WindowStyle">wxBORDER_SUNKEN</prop> <prop name="Font"> <object class="wxFont" id="4"> <prop name="Size">8</prop> <prop name="Family">74</prop> <prop name="Face">MS Shell Dlg</prop> <prop name="Encoding">wxFONTENCODING_CP1252</prop> </object> </prop> <prop name="ExtraStyle">0</prop> <prop name="ForegroundColour">#000000</prop> <prop name="BackgroundColour">#FFFFFF</prop> </object> </element> <element> <object class="wxButton" id="5" name="Button1"> <prop name="Parent"> <object href="1"/> </prop> <prop name="Id">104</prop> <prop name="Label">Button1</prop> <prop name="Position">34,78</prop> <prop name="Size">75,23</prop> <prop name="WindowStyle"></prop> <prop name="Font"> <object class="wxFont" id="6"> <prop name="Size">8</prop> <prop name="Family">74</prop> <prop name="Face">MS Shell Dlg</prop> <prop name="Encoding">wxFONTENCODING_CP1252</prop> </object> </prop> <prop name="ExtraStyle">0</prop> <prop name="ForegroundColour">#000000</prop> <prop name="BackgroundColour">#ECE9D8</prop> </object> </element> </prop> <prop name="ExtraStyle">0</prop> <prop name="ForegroundColour">#000000</prop> <prop name="BackgroundColour">#ECE9D8</prop> </object> </element> </prop> <prop name="ExtraStyle">0</prop> <prop name="ForegroundColour">#000000</prop> <prop name="Button1"> <object href="5"/> </prop> <prop name="StaticText1"> <object href="2"/> </prop> <prop name="TextCtrl1"> <object href="3"/> </prop> <prop name="BackgroundColour">#808080</prop> <prop name="MainPanel"> <object href="1"/> </prop> </object> </entry> </wxWindowsXTI>
Es sollte also nicht schwer fallen, hier einen vernünftigen Designer aufzusetzen, der ähnlich der VCL arbeitet. Noch ist das, was man sieht, allerdings wirklich nur ein preview. Außerdem arbeitet Borland ja an der Weiterentwicklung von wxWindows aktiv mit, also wird es interessant, wie es weitergeht.
Was die nichtvisuellen Komponenten betrifft, auch hier ist Borland doch beim migrieren, und mit dbExpress kann auch der CBX mit verschiedenen Datenbanken arbeiten. Durch die Art der Implementierung handelt es sich um echte Komponenten, also sollte es auch einfach sein, um diese noch ein bisschen Bedienerfreundlichkeit herumzustricken. Und wenn ich den offenen Brief richtig gelesen habe, dann hat Borland vor, weitere VCL- Komponenten in die neue Umgebung zu migrieren. Da es ja die erklärte Cross- Plattformumgebung ist, und damit für Linux entscheidend, hoffen ja alle auf leistungsfähige Komponenten für Web- Server.
Schöne Grüße aus Berlin
Volker
Dabei gleich noch einmal eine generelle Anmerkung an alle begeisterten Windows- Programmierer (ich bin übrigens auch einer, und würde am liebsten bis zur weiten Rente weiter für Windows entwickeln), die lieber offene Standards und Portabilität über Bord werfen, und dafür komfortable Programmierung wie in C#, ... oder bisher in der VCL haben wollen. Ich habe gerade in der Computerpartner einen Bericht über die IDC- Prognose für 2004 gelesen, "Linux wird als preisgünstiges Betriebssystem für Unternehmen immer interessanter" (und ich bin bestimmt kein Linux- Freak), hier gibt es also erhebliches Potential. Mich macht das, wie schon gesagt, doch nachdenklich. Wer hätte vor 10 Jahren geglaubt, dass Novell im Netzwerkbereich zum Statisten wird und IPX als Protokoll keine Rolle mehr spielt? Wer hätte vor fünf Jahren geglaubt, dass Linux in Kommunen und Verwaltungen einzieht, und gerade im Bereich Web- Server die dominierende Stellung einnimmt? Wer hat Anfang der 90'er gerglaubt, das Lotus 123 defacto untergeht, und warum haben so viele nicht das Ende von Clipper gesehen? Und, eine ganz aktuelle Frage, Microsoft hat die Weiterentwicklung der Unternehmenssoftware- Apertum vor einigen Monaten, trotz neuem Release abgekündigt, die Nutzergemeinde wehrt sich und verhandelt mit Microsoft, dass die Software weiterbesteht. Auch dieses hätte kurz davor keiner für möglich gehalten. Wer weiss denn heute, welche Entwicklung die nächsten 3 Jahre wirklich bringen? Und genau hier haben viele Manager ein Problem, durch Gesetze sind sie zum aktiven Risikomanagement verpflichtet, Begriffe wie Investitionsschutz spielen eine zentrale Rolle. Gerade Sun und Microsoft führen eine Auseinandersetzung, auch mit erheblichen Werbemitteln, aber bekanntermaßen auch vor Gericht, und die Justiz ist manchmal unberechenbar. Und weil ich nicht weiss, wie sich die EDV entwickeln wird, bin ich froh über den CBX und hoffe, dass Borland, wie in der Vergangenheit schon oft, hier eine gute Arbeit macht. Nur die breite Basis von C++, mit wenig spezielle Firmeninteressen in einem breitgestreuten Komitee weiterentwickeln und ständig aktualisiert, gibt doch Sicherheit, und in genau diese breite Basis steuert die CBX zurück. Ich bedauere eben nur, dass die Nutzer so im Dunkeln stehen, anstatt über Strategien, Ziele, etc. aufgeklärt zu werden, und damit der Raum für die wildesten Spekulationen offen steht. Die Informationspolitik ist wirklich sehr schlecht. Eigentlich schade, denn schon jetzt ist der CBX besser als sein Ruf, und er besitzt eine Menge Potential.
-
Hallo Volker,
danke für deine sehr ausführliche Antwort.
Was ich mit den Klassenmethoden meinte, dazu sieh Dir am besten mal die Borland Hilfe an, und zwar such nach dem Stichwort __closure.Ich habe den CBX schon mal angetestet, da war noch nicht davon so richtig überzeugt, aber da hatte ich auch noch keinen Designer. Ich glaube schon, das der CBX ein gutes Produkt ist, aber ich werde erstmal noch etwas abwarten.
Und ich gebe Dir auch recht in Bezug auf die Zukunft. Keiner kann doch genau vorraussagen, mit welchen Betriebsystem wir uns noch auseinandersetzen werden. OS/2 war ja auch mal der Renner, und plötzlich war es ganz schnell wieder weg vom Markt. Also hilft nur, sich ständig umzusehen und sich mit neuem auseinanderzusetzen.
In diesem Sinne..
Gruß Burkhard
-
Hallo Zusammen,
also, die Aussagen/Meinungen in dem Thread sind wirklich sehr interessant.
Ich hänge auch was die künftige Entwicklung angeht in der Luft.
Ich arbeite seit einigen Jahren mit dem CBuilder und bin im großen und ganzen zufrieden.
Ich denke mal, man kann sich wirklich erst dann ein Bild davon machen wie wertvoll ein gutes Framework ist, wenn man mit verschiedenen gearbeitet hat.
Nehmen wir mal beispielsweise VC++(benutze VC++ 6 ebenfalls, hauptsächlich für Systemprogrammierung).
Streng genommen ist das kein "Visual".
Da ist solide Handarbeit angesagt!Die jenigen die versucht haben mit VC++ etwas zu Zeichnen,Schrift- oder Farbeneigenschaften der Kompos anpassen, wissen wovon ich spreche ...
Da sind die Apis schon relativ schlecht gekapselt, mal ganz abgesehen davon,
daß manche MFC Klassen wirklich nicht gerade gut konzeptioniert sind.Da ist der CBuilder um Welten besser(den Bereich Datenbank Programmierung spreche ich erst gar nicht an, da liegt VC unter dem Durchschnitt)
Dafür wird VC++ im Gegensatz zum Builder aber konsistent in einer Sprache gehalten!
Das stört mich ehrlich gesagt beim CBuilder sehr.Ich halte also den CBuilderX Weg und hier gebe ich Dir,Volker Recht für absolut richtig.
Wird sich C# durchsetzen, oder doch Java?
Ich möchte nicht unbedingt C# lernen und nach einem Jahr feststellen, daß dies doch Zeitverschwendung war.
Oder doch Java?Ich persönlich möchte bei C++ bleiben schon alleine wg. STL
Grüße
epidemic
-
hallo,
@epidemic: "Dafür wird VC++ im Gegensatz zum Builder aber konsistent in einer Sprache gehalten!"
diese ist aber dann auch weit entfernt vom eigentlichen C++ Standard.
mfg
murphy
-
murphy schrieb:
diese ist aber dann auch weit entfernt vom eigentlichen C++ Standard.
Davon war auch nicht die Rede.
epidemic
-
Hallo,
abwarten und Tee trinken wird hier von vielen empfohlen, ein schlechter Rat !
Nüchtern betrachtet bleibt einem doch nicht viel übrig. Wenn der C++ Builder eingestellt ist, ist jede weitere Zeile die ich damit schreibe für den Mülleimer geschrieben, da ich so oder so einmal umsteigen MUß. Der Code ist verloren oder muß umgeschrieben werden. Und bei der Hauruck-Mentalität, ist es nur eine Frage der Zeit bis es wieder heißt ... Entwicklung eingestellt !!!
Also bleibt mir doch eingentlich keine Wahl ... umsteigen, besser früher als später ... doch wohin.
BuilderX ... unausgereift ... wird er es mal sein ?
VisualC++ ... nicht so gut aber bei der Microsoft Art wird er wohl lange überleben.
Eine ganz andere Sprache Deplhi ? alles gelernte weg werfen und bei 0 anfangen .... nicht mit mir.Also ... C++Builder ist tot ... es lebe VisualC++
Pronto
-
Hallo Pronto,
ich kann Deinen Frust verstehen, wenn er auch an der Sache vorbeigeht. Denn auch Microsoft hat gerade mit "managed" C++ nicht gerade für Ruhe in den eigenen Reihen gesorgt. Ich kann auch weiterhin jedem Entwickler, der mit dem C++ Builder arbeitet, nur empfehlen, keine voreiligen Entschlüsse zu ziehen, und sich nicht von Parolen verunsichern zu lassen. Vielmehr muss es das Ziel sein, die eigenen Anwendungen so zu verändern, dass sie später einen entsprechenden Wechsel erlauben. Also Umstrukturieren, die Möglichkeiten von C++ nutzen. Das Problem liegt ja, wie schon sehr oft genannt, nicht in einer Unstetigkeit von C++ selber, sondern in der Unstetigkeit der VCL, die in ihrer Struktur an die Grenzen gekommen ist. Und wenn dann am Ende der Umstrukturierung der eiegnen Programme eine Entscheidung für Microsoft oder GNU getroffen wird, kann ich das auch verstehen, allerdings denke ich, dass ein weiterentwickelter CBX sicher eine gute Programmierumgebung sein wird.Schöne Grüße aus Berlin
Volker
-
Hallo VolkerH,
ich habe die letzten Monate visuelle neue Komponenten entwickelt, die kann ich vergessen. Natürlich ist eine kompatible Programmierung schön, nur nicht ganz praktikabel. Umschreiben muß ich immer.
Und was BuilderX angeht, sind wohl die Schlüsselwörter "sein wird".
Sicher hast du Recht, er hat (oder wird haben) tolle neue Feature. Doch ich muß micht jetzt entscheiden. Stecke ich jetzt die nächten Monate sehr viel Arbeit in das bestehende Projekt und werfe die dann hinterher weg, oder mache ich den Wechsel und habe von dem Code auch im nächsten Jahr noch was. Einfach den Leuten den Boden unter den Füßen weg zu ziehen ist keine Art. Ich kann auch nicht einfach den Kunden sagen, "werft eure ganze Arbeit der letzten Jahre weg, es gibt was Neues". Welche Firma macht so was ?
Pronto