borland c++builder 5.0, 18 jahre alt



  • Habe ich vom Flohmarkt erworben. Eine CD, 5 Eur.
    Die Oberfläche erinnert an visual BASIC, das C++ steckt unter der Haube. Vom ersten Eindruck sehr ansprechend.

    Frage1: kann man damit auch Programme für DOS und Win16 und Win32-Textmodus erstellen?
    FRage2: hat cpp builder heute noch irgendeine Relevanz?

    Danke im Voraus ...



  • Hi,

    ich arbeite teilweise selber mit dem BCB 6, also eine Version später. Man kann damit Win32 und DOS-Programme erstellen. 16 Bit weiß ich nicht, habe ich nie versucht.

    Relevanz: Wenn man eine recht durchdachte IDE nutzen möchte, jedoch kein .NET, ist der BCB in meinen Augen genau das Richtige. Meine Programme, die ich damit erstelle, funktionieren bestens auch unter Windows Server 2016 oder Windows 10, sowie aber auch unter Windows 2000 oder gar NT 4.0.

    Die meisten Windows-Programme bauen heutzutage allerdings auf .NET auf, also z. B. mit Microsoft Visual Studio geschrieben. Dafür sind sie weniger kompatibel für ältere Windows-Systeme.

    Also die Relevanz ergibt sich durch das Einsatzgebiet. Breitgefächerte Windows-Plattformen oder selbst WINE unter Linux können die mit dem BCB kompilierten Programme gut interpretieren. Deshalb nutze ich den BCB 6 nach wie vor.

    Viele Grüße und viel Spaß damit
    Nico



    1. Ja, kann er. Das kannste auch selbst einfach ausprobieren, guck dir doch einfach die verschiedenen Projekttypen an. Ansonsten hier der Wikipedia Artikel

    2. Was heisst Relevanz? Ich denke, der Marktanteil für C++ Entwicklung ist ziemlich klein, bei Delphi sieht´s anders aus. Ich würde heute auch niemandem empfehlen, mit dem RAD Studio C++ zu entwickeln:
      - die Vollversion gibt es als Trial-Version, die nur 30 Tage kostenlos benutzt werden kann, danach wird sie unbenutzbar.
      - die Free-Version ist stark eingeschränkt (zB. kein Debugger, das allein ist ein KO-Kriterium)
      - teures Lizenzmodell und restriktive Updates. Für Privatkunden und/oder Hobbyprogrammierer einfach zu teuer (Vollversion ca. €3100, jährliche Subscription ca. €680). Zweimal jährlich erscheint ein Release, das Bugfixes enthält. Ohne Subscription bekommt man keine Updates mehr, selbst wenn der Compiler groben Bockmist baut (der Codegenerator hatte in 10.1 und 10.2 noch grobe Schnitzer)
      - Versionssprünge führen zu Inkompatibilitäten mit 3rd Party Libraries. Jedes Release bekommt eine neue Versionsnummer und oft ändert sich iwas am Delphi Binärformat. Die mitgelieferten Bibliotheken sind alle in Delphi geschrieben und die Brücke von Delphi nach C++ bringt einige Einschränkungen mit sich. Patches, die Bugs beheben und die Major-Versionsnummer nicht verändern sind mir seit 2007 nicht mehr untergekommen. Das führt dazu, dass bereits gekaufte 3rd Party Libraries nicht mit der neuen Version funktionieren und für die 3rd Party entweder ebenfalls eine Subscription benötigt wird oder neu gekauft werden muss.

    Mein Fazit:
    Finger weg vom RAD Studio!
    Das Microsoft Visual Studio Express ist für Privatanwender kostenlos und darf eingeschränkt kommerziell benutzt werden. Wenn man frisch anfängt zu programmieren und keine Altlasten pflegen muss ist das mMn das Tool der Wahl.



  • DocShoe schrieb:

    Das Microsoft Visual Studio Express ist für Privatanwender kostenlos und darf eingeschränkt kommerziell benutzt werden.

    So eingeschränkt finde ich es für kommerzielle Nutzung nicht. Wenn sich die Lizenz nicht geändert hätte würde es sogar noch für unsere Firma ausreichen, da wir weder 250+ PCs noch 1 Million USD Jahresumsatz haben (und das wird auf absehbare Zeit auch so bleiben).



  • Ich sag ja nur, dass es eine Einschränkung gibt. Inwiefern die jetzt für den geplanten Einsatz wichtig ist muss halt jeder selbst entscheiden.



  • DocShoe schrieb:

    1. Ja, kann er. Das kannste auch selbst einfach ausprobieren, guck dir doch einfach die verschiedenen Projekttypen an. Ansonsten hier der Wikipedia Artikel

    2. Was heisst Relevanz? Ich denke, der Marktanteil für C++ Entwicklung ist ziemlich klein, bei Delphi sieht´s anders aus. Ich würde heute auch niemandem empfehlen, mit dem RAD Studio C++ zu entwickeln:
      - die Vollversion gibt es als Trial-Version, die nur 30 Tage kostenlos benutzt werden kann, danach wird sie unbenutzbar.
      - die Free-Version ist stark eingeschränkt (zB. kein Debugger, das allein ist ein KO-Kriterium)
      - teures Lizenzmodell und restriktive Updates. Für Privatkunden und/oder Hobbyprogrammierer einfach zu teuer (Vollversion ca. €3100, jährliche Subscription ca. €680). Zweimal jährlich erscheint ein Release, das Bugfixes enthält. Ohne Subscription bekommt man keine Updates mehr, selbst wenn der Compiler groben Bockmist baut (der Codegenerator hatte in 10.1 und 10.2 noch grobe Schnitzer)
      - Versionssprünge führen zu Inkompatibilitäten mit 3rd Party Libraries. Jedes Release bekommt eine neue Versionsnummer und oft ändert sich iwas am Delphi Binärformat. Die mitgelieferten Bibliotheken sind alle in Delphi geschrieben und die Brücke von Delphi nach C++ bringt einige Einschränkungen mit sich. Patches, die Bugs beheben und die Major-Versionsnummer nicht verändern sind mir seit 2007 nicht mehr untergekommen. Das führt dazu, dass bereits gekaufte 3rd Party Libraries nicht mit der neuen Version funktionieren und für die 3rd Party entweder ebenfalls eine Subscription benötigt wird oder neu gekauft werden muss.

    Mein Fazit:
    Finger weg vom RAD Studio!
    Das Microsoft Visual Studio Express ist für Privatanwender kostenlos und darf eingeschränkt kommerziell benutzt werden. Wenn man frisch anfängt zu programmieren und keine Altlasten pflegen muss ist das mMn das Tool der Wahl.

    Danke für die Info.

    Ich habe wohl die kommerzielle, teure Vollversion.
    Auf der CD steht "Borland C++ Builder Enterprise Suite". Ein Datenbanksystem (Interbase) und eine Versionskontrolle (TeamSource) sind auch dabei.
    Debugger ist dabei und bei der Installation musste ich auch einen Lizenzschlüssel eingeben. Seltsam dass die CD so billig war, wenn das Produkt mal hunderte von Euros gekostet hat.

    Die IDE (RAD studio?) finde ich super.

    Was ich noch nicht gefunden habe: wie man WinAPI direkt aufrufen kann.
    Auch kein WinAPI-Helpfile.
    Und diese bekannte Custom-Control-Library (mit dem grünen Häkchen am Button), die bei Delphi und Turbo-C++ dabei ist, scheint auch nicht da zu sein.

    Auf .NET kann ich verzichten. Ist eh nur ein Java-Plagiat



  • Die WinAPI-Funktionen sind mit inbegriffen. ShellExecuteEx usw. kann man nativ aufrufen.



  • - Versionskontrollsysteme gibt´s inzwischen wie Sand am Meer. Team Source Control scheint inzwischen ausgestorben zu sein, wenn du ein VCS einsetzen möchtest dann nimm was Modernes (zB. git, Mercurial oder Bazaar).

    - die WinAPI Hilfe kann man als MSDN Helpfile direkt von Microsoft herunterladen. Such mal nach MSDN Library.

    Dass die CD so billig war ist nicht wirklich erstaunlich. Immerhin ist das Produkt 18 Jahre alt. Ich würde meine Hand nicht für die Standardkonformität des Compilers in´s Feuer legen. 1998 wurde die für C++ essenzielle STL standardisiert, und ich glaube nicht, dass BCB 5 die 100%ig umsetzt. Allein das ist schon ein Grund dafür, lieber doch eine moderne Suite zu benutzen.



  • RetroGuy schrieb:

    Ich habe wohl die kommerzielle, teure Vollversion... Seltsam dass die CD so billig war, wenn das Produkt mal hunderte von Euros gekostet hat.

    Du meinst du hast die damals, vor 18 Jahren, teure Vollversion gekauft. Teuer und Teuer sind 2 Paar Schuhe und gerade in der IT können schon wenige Jahre einen großen Unterschied machen. Auch sind seit damals sehr viele Firmen von der Software abgesprungen, das merkt man schon am rapiden Sterben der Komponentenhersteller, ebenso an den Kommentaren der noch existierenden (wie Devexpress: Bei einem Wunsch haben die fast wortwörtlich geschrieben das dieser mit Sicherheit nicht mehr umgesetzt wird, da es einerseits ein nicht geringen Umbau erfordern würde, anderseits die Lizenzeinnahmen für die Delphi-Komponenten für solche Änderungen zu gering [im Vergleich zu den .Net Komponenten] sind).

    Selbst für 5€ hätte ich diese CD wohl nicht mehr gekauft (oder nur "just for fun"). Zudem rate ich von Interbase und TeamSource zu heutigen Zeiten ab. Debugger wiederum ist nichts was man bei einer Entwicklungsumgebung extra erwähnen muss, und gerade der könnte dir auf aktuellen Windowsversionen einige Probleme bereiten.

    RetroGuy schrieb:

    Die IDE (RAD studio?) finde ich super.

    Ich war selbst (bis eben zu der BCB 5.0-Zeit) ein Fan von dem BCB, inzwischen weiß ich warum ich den C++ Builder (selbst mit einer aktuellen Version, wie ich diesen noch beruflich nutzen muss) ablehne. Und keiner in unseren Team (selbst unser Chef, der lange den C++ Builder in Schutz genommen hat) will ihn noch nutzen - wir sind aber dazu derzeit noch gezwungen. Altcode lässt sich nicht einfach umstellen, gerade nicht wenn alle Entwicklerkapazitäten noch fleißig an der Umsetzung von Kundenwünschen gebunden sind. Aber wenn du davon so begeistert bist: wir suchen demnächst einen weiteren Entwickler, der a) meine Arbeit nach und nach übernimmt* und b) uns entlastet.

    * Ich bin "nur" noch bis Anfang 2021 "sicher" hier (darüber hinaus gebe ich keine Zusage), wobei wir ohnehin mehr Entwickler brauchen. Mein Kollege hat selbst gesagt das er mich NICHT ersetzen kann.

    RetroGuy schrieb:

    Und diese bekannte Custom-Control-Library (mit dem grünen Häkchen am Button), die bei Delphi und Turbo-C++ dabei ist, scheint auch nicht da zu sein.

    Du kannst Glück haben: einige Altbibliotheken, die schon seit Ano Dazumal nicht mehr gewartet werden laufen noch auf dem BCB 5, nicht aber mehr auf aktuellen Plattformen (aktuelle Komponenten wirst du aber nicht mehr unter den BCB5 zum laufen bekommen).

    RetroGuy schrieb:

    Auf .NET kann ich verzichten. Ist eh nur ein Java-Plagiat

    Wer keine Ahnung hat und meint mit einem BCB5 glücklich zu werden...
    Es wurde ursprünglich mal mit dieser Intension gestartet, doch .NET und Java sind trotz Ähnlichkeiten durchaus sehr unterschiedlich (und das nicht erst seit kurzem).



  • DocShoe schrieb:

    Ich würde meine Hand nicht für die Standardkonformität des Compilers in´s Feuer legen. 1998 wurde die für C++ essenzielle STL standardisiert, und ich glaube nicht, dass BCB 5 die 100%ig umsetzt.

    Das tun nicht einmal die aktuellen C++ Builder, wenn man, wie wir, noch auf den "classic"-Compiler festgelegt ist. Eine Portierung habe ich einmal versucht, aber selbst die erste compilierbare Version (noch nicht lauffähig) hat alleine die Compilezeiten weit mehr als verdreifacht (glaube der letzte Stand war 3 Minuten gegenüber mehr als 15 [und da habe ich den Compiler abgeschossen und das Projekt vorläufig beerdigt]).



  • Ja, das war bei uns ähnlich und hat für eine mittelschwere Krise gesorgt 😉
    Ich habe ein Projekt, das mit dem clang out of the box knapp 4 Stunden zum Übersetzen braucht. Andererseits ist der klassische Compiler dabei immer wieder mit Internal Compiler Error ausgestiegen, da hatten wir die Wahl zwischen Pest und Cholera. Die Lösung hat dann TwineCompile auf einem 8+8 Core PC gebracht, damit bin ich jetzt bei ca. 30 Minuten Übersetzungszeit für das komplette Projekt. Der klassische Compiler hat dafür 45 Minuten gebraucht.



  • DocShoe schrieb:

    Ja, das war bei uns ähnlich und hat für eine mittelschwere Krise gesorgt 😉
    Ich habe ein Projekt, das mit dem clang out of the box knapp 4 Stunden zum Übersetzen braucht. Andererseits ist der klassische Compiler dabei immer wieder mit Internal Compiler Error ausgestiegen, da hatten wir die Wahl zwischen Pest und Cholera. Die Lösung hat dann TwineCompile auf einem 8+8 Core PC gebracht, damit bin ich jetzt bei ca. 30 Minuten Übersetzungszeit für das komplette Projekt. Der klassische Compiler hat dafür 45 Minuten gebraucht.

    Wir arbeiten auch mit dem TwineCompile, auf einen ähnlichen PC (Dual Xeon E5-2665; 8+8 Kerne [32 Threads], demnächst wohl Dual-Xeon mit jeweils 10+ Kernen). Der Versuch ist eine Weile her, damals war der Classic Compiler mit TC dennoch weit schneller fertig (nur der Linker braucht ewig im Vergleich). Aktuell sind wir bei etwa 5 min compilierung, und brauchen gefühlt fast genauso lange fürs linken.



  • asc schrieb:

    Ich war selbst (bis eben zu der BCB 5.0-Zeit) ein Fan von dem BCB, inzwischen weiß ich warum ich den C++ Builder (selbst mit einer aktuellen Version, wie ich diesen noch beruflich nutzen muss) ablehne. Und keiner in unseren Team (selbst unser Chef, der lange den C++ Builder in Schutz genommen hat) will ihn noch nutzen - wir sind aber dazu derzeit noch gezwungen. Altcode lässt sich nicht einfach umstellen, gerade nicht wenn alle Entwicklerkapazitäten noch fleißig an der Umsetzung von Kundenwünschen gebunden sind. Aber wenn du davon so begeistert bist: wir suchen demnächst einen weiteren Entwickler, der a) meine Arbeit nach und nach übernimmt* und b) uns entlastet.

    Ich bin nur Hobby-Programmierer. Ich sehe Programmieren eher als künstlerische Tätigkeit an. Wenn ich programmieren müsste um Geld zu verdienen, fände ich das schrecklich.

    Mir ist klar, dass der alte BCB kein aktuelles C++ und STL kann. Aber das ist mir nicht so wichtig. Wenn ich das will, nehme ich irgendwas GCC-basiertes.

    Den BCB nehme ich, um auf die Schnelle kleinere Windows-Tools zusammenzuklicken. Ich habe viel selbst geschriebene Programme für den Textmodus, die werde ich mit dem BCB erstmal auf Klicki-Bunti aufpeppen.

    asc schrieb:

    Wer keine Ahnung hat und meint mit einem BCB5 glücklich zu werden...
    Es wurde ursprünglich mal mit dieser Intension gestartet, doch .NET und Java sind trotz Ähnlichkeiten durchaus sehr unterschiedlich (und das nicht erst seit kurzem).

    Ich bin da sehr eigen. Ich mag Programme, die nur aus einer EXE bestehen und die man von überall starten kann, ohne irgendwas installieren zu müssen. Sowas furchtbar Träges wie NET und Java, mit virtuellen Maschinen und riesigen Librarys, beleidigt mein ästhetisches Empfinden und meinen Hang zum Minimalismus.

    Du siehst, als Berufsprogrammierer bin schon deshalb denkbar ungeeignet. :p



  • DocShoe schrieb:

    Ja, das war bei uns ähnlich und hat für eine mittelschwere Krise gesorgt 😉
    Ich habe ein Projekt, das mit dem clang out of the box knapp 4 Stunden zum Übersetzen braucht.

    Was ist denn das für ein riesiges Programm? Lässt sich das nicht modularisieren, so dass man nicht immer alles neu bauen muss?



  • Ja natürlich ist das modularisiert 😉
    Aber vor einem Release macht man schon mal ein Build-All.

    Und da kommen wir zu den Macken des Builders: Er erkennt nicht immer, welche Subprojekte up-to-date sind, daher muss man schon mal wieder ein Build All machen.



  • Schau dir mal CMake an. Das ist ein Build-System für große Projekte. Ich persönlich habe es noch nicht benutzt, aber dem Hörensagen nach soll es ganz gut sein. https://cmake.org/



  • RetroGuy schrieb:

    Ich bin da sehr eigen. Ich mag Programme, die nur aus einer EXE bestehen und die man von überall starten kann, ohne irgendwas installieren zu müssen. Sowas furchtbar Träges wie NET und Java, mit virtuellen Maschinen und riesigen Librarys, beleidigt mein ästhetisches Empfinden und meinen Hang zum Minimalismus.

    Zunächst zur "nur eine exe"-Mentalität:
    Diese Mentalität ist ein Grund für viele Probleme die wir hier haben. Zumal wir dies inzwischen ohnehin aufgeben mussten, das statische linken aller nötigen Komponenten macht der Linker nicht mehr mit.

    Wäre das Projekt rechtzeitig in Bibliotheken aufgeteilt wurden, wäre vermutlich sowohl die Schichtentrennung als auch die Compilezeiten für einzelne Bereiche besser (man ändert meist nur an wenigen, begrenzten Stellen; Wenn die Compilezeit reicht um sich gemütlich einen Kaffee zu kochen, lenkt dies bloss ab).

    Doch nachträglich das Projekt zu modularisieren, ist vielleicht zuviel aufwand, wenn man weiß, das man eh die Plattform wechseln muss. Den vorhandenen Code können wir ohnehin zumeist nicht verwenden, auch wenn mein Chef dies nicht einsehen will (trotz anderer Meinung der Entwickler). Ganz zu schweigen das einige grundlegende Basiskonzepte auf dem Prüfstand für eine Neuumsetzung ständen, dies also auch von logischen Aspekten nur eingeschränkt klappen könnte.

    Zur Trägheit:
    Ich habe inzwischen viele .Net- und zumindest einige Java-Programme erlebt. Dabei habe ich eins festgestellt: Bei größeren Geschäftsanwendungen macht es, bei guter Programmierung, kaum einen nennenswerten Unterschied ob man nativ oder mit Java oder .Net entwickelt. Anders mag es bei Anwendungen die sehr Rechen- oder Grafikintensiv sind aussehen. Aber eine "typische" Businessanwendung kann man auch in Java oder .Net so schreiben, das sie nicht träge erscheint.

    Zu VM:
    Die Konzepte haben sich selbst bei Java inzwischen geändert. Auch Java arbeitet im Grundsatz inzwischen mit einem JIT (JIT: Just in Time Compiler, es wird bei der ersten verwendung compiliert, anschließend das nativ compilierte verwendet; was .Net wohl seit Anfang macht).

    Rein von der Theorie her, kann ein JIT sogar schnelleren Code produzieren als ein nativer Compiler - da er den Code auf die konkrete Plattform kompilieren kann (bei einem nativen Compiler macht man das nur im seltenen Fall, normalerweise soll ein Programm ja ab einer bestimmten Rechnergeneration laufen). Das ist einer der Gründe (von mehreren) warum die "Trägheit" vor allem beim ersten Aufruf einer Programmfunktion merkbar ist. In der Praxis ist ein JIT aber nur dann auch im Endeffekt schneller, wenn die Compilezeit des JIT, zusammen mit der Anzahl der Aufrufe, durch den optimierteren Code tatsächlich eine Beschleunigung erzielt.

    Native Compilierbarkeit:
    Man kann übrigens schon seit vielen Jahren auch Java und .Net-Anwendungen nativ compilieren. Das hat aber gewisse Einschränkungen und sollte immer abgewägt werden. Es wird bei .Net Core gefühlt auch häufiger genutzt als noch bei klassischen .Net, auf gewissen Zielplattformen (z.B. über Xamarin auf iOS und Android) ist es schon Standard, da diese nur nativen Code erlauben oder es sich als praktikabler erwiesen hat.



  • asc schrieb:

    Zunächst zur "nur eine exe"-Mentalität:
    Diese Mentalität ist ein Grund für viele Probleme die wir hier haben. Zumal wir dies inzwischen ohnehin aufgeben mussten, das statische linken aller nötigen Komponenten macht der Linker nicht mehr mit.

    Wäre das Projekt rechtzeitig in Bibliotheken aufgeteilt wurden, wäre vermutlich sowohl die Schichtentrennung als auch die Compilezeiten für einzelne Bereiche besser (man ändert meist nur an wenigen, begrenzten Stellen; Wenn die Compilezeit reicht um sich gemütlich einen Kaffee zu kochen, lenkt dies bloss ab).

    Doch nachträglich das Projekt zu modularisieren, ist vielleicht zuviel aufwand, wenn man weiß, das man eh die Plattform wechseln muss. Den vorhandenen Code können wir ohnehin zumeist nicht verwenden, auch wenn mein Chef dies nicht einsehen will (trotz anderer Meinung der Entwickler). Ganz zu schweigen das einige grundlegende Basiskonzepte auf dem Prüfstand für eine Neuumsetzung ständen, dies also auch von logischen Aspekten nur eingeschränkt klappen könnte.

    Ich hab´ da grade ein Deja Vue 😃



  • DocShoe schrieb:

    Ich hab´ da grade ein Deja Vue 😃

    Prima, jemanden mit Vorerfahrung könnten wir brauchen *duckundweg*... ;p



  • Was zahlt ihr denn? 😃


Anmelden zum Antworten