C++Builder oder Delphi?



  • Eigentlich nur, dass (Object)Pascal insgesamt weniger verbreitet ist als C/C++. Es gibt also sicherlich mehr Code Snippets, Beispiele u.ä. für C++ als für Pascal, und im kommerziellen Umfeld wird C++ eben auch öfter eingesetzt. Wenn, dann allerdings meist MS VC++, so dass das auch kein so grosser Nachteil von Delphi gegenüber dem BCB ist.

    Für mich (als Hobbyist) bleibt die Sprachpräferenz das entscheidende Kriterium, deshalb benutze ich den BCB. 🙂



  • Also, wenn du noch nach möglichen Einschränkungen fragst, fällt mir ein:
    Mit dem C++Builder kannst du:
    Reine API-Anwendungen erstellen, die ohne die VCL arbeiten und damit sehr klein sind und sehr schnell, aber sehr viel Aufwand brauchen, wenn man mit Fenstern arbeitet. Ich selbst lagere gerne einzelne Funktionen in dlls aus.
    Die meisten mit MS VC++ erstellten Anwendungen (auch MFC) importieren und kompilieren, jedenfalls ab der Professional Version.
    Das geht beides mit Delphi nicht.



  • Original erstellt von <murph>:
    **hallo,

    ich schließe mich dem jansen an, muß aber auch noch feststellen,
    das in vielen firmen software mit delphi programmiert wird,
    wohingegen ich persönlich keine firma kenne die mit dem builder
    programmiert (es soll aber zumindest auch welche geben...)...

    mfg
    murph**

    mindestens meine Firma programmiert mit dem BCB



  • und meine

    Hauptvorteil gegenüber Delphi ist das so ne Menge Quelltext aus nem GNU C++ Projekt was paralell läuft übernehmen lässt(und das hier keiner Delphi kann 🙄 )



  • wir ( matt & me ) entwickeln auch mit Borland C++ Builder



  • Also ich selbst würd mal sagen:

    In welcher Sprache das Programm geschrieben ist, ist doch (sorry) scheiss egal. Solange das jeweilige Problem gelöst ist.

    Die einzigen Nachteile hat man halt, wenn man in nem programmiererteam arbeitet, wo welche z.b. Vc++ benutzen, andere BCB und dann kommt auf 1x einer mit "hey ich kann nur vb"..., da ist man halt dann "etwas" deplaziert 😛

    Auch sollte man drauf achten (ok eigentlich eher weniger ?) wenn man ne Software in der Firma geschrieben hat und dort irgendwann mal aufhört (aus welchen Gründen auch immer...) das der Nachfolger sich einfach in den Quellcode einarbeiten kann... Es nutzt nix wenn du z.b. Delphi/C++ kannst, der Nachfolger z.b. nur VB (wobei man seinen Nachfolger im Normalfall net kennt / kennen wird ;-)).

    Was ich damit sagen will: Man sollte sich auf ne gewisse Weise danach richten, was in der Programmierbranche mehr gefragt ist, und das ist und bleibt C++.
    Bzw. mit welcher Entwicklungsumgebung gearbeitet wird... (In dem Fall VC++). MS geht mit ihrem .NET scheiss ohnehin den falschen Weg, aber was macht man nicht um für immer eine extrawurst zu bleiben? 😃

    Aber das bleibt letztendlich den Firmen selbst überlassen mit was sie die Software entwickeln wollen. Manche stehen auf Klicki Klicki, manche machen das lieber von Hand. (Der Zeitvorteil bei Klicki Klicki muss ich ja nicht näher angehen oder? Sonst wären wir ja nicht in DIESEM Forum (BCB! ;-)). Aber wie gesagt, die meistgenutzte Sprache ist nunmal C/C++. Ich hab bisher keine professionelle Anwendung gesehen, die mit BCB geschrieben ist (ausser son Renderprogram war das glaub ich, schon eeeeeeeeewig lange her). Die meisten benutzen halt VC++ (leider, warum auch immer. Nur weils von MS ist ?!).

    So long, meine Meinung.

    Mfg
    Mav3k

    [ Dieser Beitrag wurde am 14.10.2002 um 18:42 Uhr von Maverick3000 editiert. ]



  • Hey ich würde den C++ Builder empfehlen da C\C++ wirklich weit verbreitet ist.
    Mir ist es jetzt gerade so ergangen das ich jetzt auf einen anderen Compiler arbeiten muß. Auf den von mir vom ersten moment an gehassten Visual Studio.net
    Es war auf jeden fall ein vorteil vorher C++ Builder programmiert zu haben und ich werde auch wieder Builder programmieren sobald man mir de wahl lässt.

    Zum Thema wer verwendet C++ Builder in meiner ehemaligen HTL wurde zum großteil Builder unterrichtet und nur vereinzelt VC Studio.

    Hoffe das ich dir helfen konnte

    Mfg Guna



  • Für die Nicht Ösis: Erklär mal HTL 🙂



  • Original erstellt von Cheldar:
    mindestens meine Firma programmiert mit dem BCB

    ++Firma;



  • ++Firma 😉

    Grundsätzlich ist c++ halt schon mal (Objekt)Pascal einfach Überlegen in der Ausdrucksstärke der Sprache. Das kann man aber auch als Nachteil werten, weils deswegen komplexer ist. Außerdem sind c und c++ standardisierte Sprachen, während es nur ein Objekt-Pascal gibt. Hier ist man völlig abhängig vom Hersteller.

    Der C++Builder hat ggü anderen C/C++-Compilern den Vorteil, dass es eben auch Delphi kann und einem damit die Möglichkeiten von Delphi zum GUI-Programmieren offenstehen.

    Allerdings merkt man z.T. halt schon, dass das keine c++-Komponenten sind, einfach in der Art und weiße, wie man sie bedient.

    Gegenüber Visual C++ speziell hat er zusätzlich den Vorteil, dass er sich besser an den c++Sprachstandard hält.

    Der große Nachteil ggü. vielen anderen Produkten (v.a. der von VC) ist die Entwicklungsumgebung: Das Autovervollständigen geht praktisch nie (lässt Dich aber ewig vor der Sanduhr warten. Ebenso, wenn Du zur Deklaration einer Variable willst. Der Debugger ist zwar nicht schlecht, aber nur mit 10000en von Klicks zu bedienen. Du kannst z.T. Häcken, die eigentlich grau hinterlegt sind, von denen Du also glaubst, dass sie keine bedeutung haben, vorher (bevor sie grau wurden) deaktivieren, und dann irgendwann in Deinem Projekt auf rätselhafte Abstürze stoßen, wenn in Deinem Projektnamen Bindestriche Vorkommen, kannst Du Dich auf die schönsten Überraschungen freuen, die Reihenfolgen von global definierten Defines ist wichtig (nichts hinter _DEBUG) angeben, er merkt sich zwar, welche Parameter Deinem Prog übergeben werden sollen, zeigt sie aber nicht an etc. Außerdem ist der Compiler saulahm.

    Aber vielleicht ist das mit der Vers. 6 besser geworden?

    Zusammenfassend: Der C++Builder ist vom Prinzip her ziehmlich gut, allerdings lassen einen die ein oder anderen Details im Programmieralltag verzweifeln.

    [ Dieser Beitrag wurde am 16.10.2002 um 10:58 Uhr von kartoffelsack editiert. ]

    [ Dieser Beitrag wurde am 16.10.2002 um 10:59 Uhr von kartoffelsack editiert. ]



  • ++Firma 😉

    [C++ Fehler] frmImportform.cpp(1826): E2379 In Anweisung fehlt ;
    😃

    Aber vielleicht ist das mit der Vers. 6 besser geworden?

    hier und da schon 🙂
    Viele Punkte, die du nennst, sind allerdings Rechnerabhängig. Kauf dir ne vernünftige Kiste, und die Probleme sind weg.

    Wenn du aber schon (angebliche) Nachteile des BCB's gegenüber VC erwähnst, so nenne auch die Nachteile von VC.

    Denk drüber nach, und wirst feststellen, das es sich alles irgendwie ausgleicht.

    Ist sowieso ein nicht endendes Thema.



  • Pentium 4 mit 1,7 MHz und 512 MB Ram.

    Ist das ein vernünftiger Rechner? Ich kann außerdem hier in der Firma feststellen, dass das ganz NICHT rechnerabhängig ist.

    PS.: ich hab auch schon mit dem VC gearbeitet. Hier wärs die z.T. mangelhafte unterstützung von Templates und andere Sachen, wo sich MS nicht an den Sprachstandard hält, was mich nerven würde. Aber die IDE ist einfach um Längen besser und eigentlich könnte es doch für Borland nicht so schwer sein, ne anständig funktionierende Entwicklungsumgebung zu schreiben. Im Programmieralltag ist das schon was, was ins Auge fällt.

    [ Dieser Beitrag wurde am 16.10.2002 um 12:18 Uhr von kartoffelsack editiert. ]


  • Mod

    Hallo

    @Kartoffelsack

    bei mir auf einem AMD 750 128 MB Speicher funktioniert das was du so anmeckerst sehr schnell

    zB. Autovervollständigen in ca 1 s (auch bei groesseren Projekten
    Dies liegt nicht an dem Builder sondern an deinen Einstellungen
    Auch einen schnellen rechner kann man gut bremsen 😃

    Auch der Debugger mit 1000enden Klicks - verstehe ich nicht

    MfG
    Klaus



  • Bitte beim Thema bleiben: BCB vs. Delphi! 😉



  • Original erstellt von kartoffelsack:
    **Aber die IDE ist einfach um Längen besser und eigentlich könnte es doch für Borland nicht so schwer sein, ne anständig funktionierende Entwicklungsumgebung zu schreiben. Im Programmieralltag ist das schon was, was ins Auge fällt.

    [ Dieser Beitrag wurde am 16.10.2002 um 12:18 Uhr von [qb]kartoffelsack** editiert. ][/QB]

    woooooooooooooooooooooooooooooooooooooooooahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh *g*
    Was nimmst du denn für Drogen ? 😮 *die meinung mit kartoffelsack absolut nich teilt*



  • @Klaus
    Ein 1,7 GHz Rechner mit 512 MB sollte auch bei schlechten einstellungen Leistungfähig genug für ein bisschen IDE sein.

    Debugger: Du willst ne Klasse angucken, die hat wieder ne Klasse und die wieder,...
    Du gehst mit dem Kursor auf das Objekt, welches du anschaun willst. Drückst strg-F7, dann bist Du im Auswert/Ändern-Fenster. Wenn Du glück hast, zeigt es Dir die Variable an, wenn Du pech hast, eine andere -> wieder zumachen. Die Variable markieren, strg-c klicken, strg-F7, strg-v zum einfügen. Untersuchen klicken. Und dann kannst Du dich Durch die ganze Struktur durchklicken. Da gibts schlauere Lösungen. Das mit dem aktualisieren klappt auch nicht immer perfekt. Aber ok, auch bei ner Baumdarstellung wie im VC, wird auch manchmal unübersichtlich.
    Wann der Debugger im Überwachungsfenster den Inhalt von Template-Instanzen anzeigen kann und wann nicht, ist mir bis jetzt ein Rätsel geblieben.

    Dass ich mit der Autovervollständigung nicht allein bin, zeigt mir schon, dass das Problem hier im Forum immer wieder auftaucht. Ok, ich hab sie zwischenzeitlich ganz abgeschalten. Hab aber vor kurzem mit der Forte-Umgebung für Java was Programmiert. Da ist das saufix und das ist Java! Ich hab den Eindruck, dass es funktioniert, solang Du nicht viele Module hast. Aber wenn Du Deinen Code in viele Module verteilst, gehts einfach nicht mehr!

    Soll ich weitermachen mit meiner Kritik?
    Eine C++-IDE sollte es unterstützen, dass Klassen möglichst in Module verteilt werden. Pro Klasse ein Modul. Macht der C++Builder nicht, aber das ist noch kein Problem. Was aber wirklich nett wäre ist, wenn man die h und die zugehörige cpp-Datei nebeneinander anzeigen könnte. Mit strg-F6 kann ich zwar umschalten, hab aber immer nur eines da. Man kann zwei Editierfenster machen und beim Einen die Projektverwaltung andocken (und da die cpp-Datei öffnen) und im Anderen den Klassenbaum und da die Header öffnen. Hat man beide offen, funktioniert das Umschalten auch und man kann beide Editierfenster nebeneinander positionieren. Außer wenn man zu viele Dateien offen hat. Dann kann es nämlich durchaus vorkommen, dass er die gleiche Datei 2x öffnet und sie auch nicht mehr synchronisiert sind. Du änderst was in der einen, in der anderen nicht. Welche compiliert wird, hängt vom Zufall und der Laune des Compilers ab.

    Consolenprojekte:
    Macht mal ein Consolenprojekt auf, klickt VCL verwenden weg. Jetzt könnt ihr das Häcken bei "Multithread" wegmachen. Klickt VCL wieder an. Das MultiTread wird grau. Das häkchen ist aber weg. Jetzt kompiliert mal ein 4-Zeiliges Programm, in welchem stringstreams verwendet werden -> wum. Wisst Ihr, wie lang ich gebraucht hab um diesen Fehler rauszukriegen?

    Compilate abspeichern:
    In den Projektoptionen kann man angeben, wo die obj-Files, die exe etc. abgespeichert werden soll. Normalerweise wird es immer dahin gespeichert, wo der Quellcode liegt. Stammt der Code aus verschiedenen Bibliotheken, werden auch die Compilate über die Festplatte verteilt. Also freut man sich, und will alles in ein Verzeichnis Compilieren. Das funktioniert auch wunderbar nur: 1. kann man nicht mehr debuggen (nur noch durch Assembler-Code) und zweitens wird jetzt jedesmal das komplette Projekt neu erzeugt.

    Verzeichnis-Namen
    Warum kann der Compiler nicht mit Projekten arbeiten die unter
    d:\projekte\das-ist-ein-aussagekräftiger-Ordnername\
    liegen. Und wenn ers schon nicht kann, warum sagt er es einem dann nicht. Probiert mal aus, zu welchen seltsamsten Fehlern ihr da kommt.

    Class-Explorer:
    Warum wird hier nur der Klassenname angezeigt, nicht auch noch der Namensraum, in dem sich die Klasse befindet? (Antwort: weils in Delphi keine Namensräume gibt).

    So, jetzt hab ich keine Lust mehr.
    Ich will hier wirklich keinen Flame-War anstiften und arbeite im Großen und ganzen gerne mit dem C++Builder. Aber es gibt einfach Punkte, die sind zum Haare ausraufen. Einige davon kann man auch leicht vermeiden, wenn man weiß, wie. Aber wie lange sitzt man einfach nur verständnislos davor, bis mans rauskriegt?

    Sicher haben auch andere IDEs ihre Nachteile (nur hab ich mich noch mit keiner so viele Stunden beschäftigt). Aber auch wenn ich mich wiederhole: z.T. sind das wirklich billige Bugs, die einem aber den letzten Nerv kosten.

    [ Dieser Beitrag wurde am 16.10.2002 um 13:22 Uhr von kartoffelsack editiert. ]



  • @1nt... Wenn Du willst, schreib ich Dir eine (noch) detallierte Beschreibung der Fehler (die ich nachvollziehen kann).

    Ach ja, zum eigentlichen Thema:

    Willst Du hauptsächlich Oberflächen machen? Nimm gleich Delphi. Willst Du c++-Programme schreiben und hin und wieder ne Oberfläche? Nimm den C++Builder. c++ zu können dürfte im allgemeinen auch wichtiger sein als Delphi. Im großen und ganzen ist ja doch jede Sprache wie die andere 😉



  • hi,

    also kartoffelsack, ich weiß ehrlich nicht was du hast, die probleme die du anführst beim builder die kenne weder ich noch meine ganzen bekannten die damit programmieren. wahrscheinlich hast du einen total verpfuschten pc, wo alles lahm läuft...

    mfg
    murphy



  • Hi,

    @kartoffelsack: ich glaub du bist Urlaubsreif 😉 😃



  • @murph

    ok, dann mach bitte folgendes (jetzt ganz genau):

    starte den c++-Builder.

    Datei->Neu...

    Konsolenexperte anklicken.

    Im anschließenden Dialog Häcken weg bei "VCL verwenden".

    Jetzt ist ein Häkchen bei "Konsolenanwendung" und "Multithreads". Das bei Multithreads machst Du weg. Jetzt machst Du bei VCL verwenden wieder eins hin. "Multithreads" wird grau, Du siehtst aber, dass das Häckchen weg ist.

    -> ok

    Jetzt gibst Du folgendes Programm ein:

    #include <sstream>
    
    int main()
    {
      std::stringstream strm;
      strm << 3;   // HIER
      return 0;
    }
    

    Das Programm stürzt in der markierten Zeile ab.

    Anderes (kleines) Problem:
    Erstelle ein Programm welches Startparameter erwartet:
    Gib die Startparameter ein unter: Start -> Parameter -> Reiter "Lokal" -> Parameter. Klicke auf ok. Öffne den Dialog wieder. Wo sind Deine Parameter?

    Nächstes Problem (und das ist auch nervig, wenn mans weiß): Projekt -> Optionen -> Reiter "Verzeichnisse/Bedingungen": Gib unter Endgültige Ausgabe einen Pfad an (nicht den Pfad in dem das Projekt gespeichert ist!). Compiliere. Drücke F8 und versuche schrittweise durch den Code zu gehen. Geht nicht.
    Nimm ein größeres Projekt mit vielen Modulen. Gib im gleichen Dialog unter "Zwischenausgabe" einen Pfad an. Compiliere. Schreib irgendwo in einem Deiner cpp-Files ein zusätzliches Leerzeichen rein. Aktualisiere Dein Compilat (Projekt->Aktualisieren bzw. strg-F9) -> das gesamte Projekt wird neu erzeugt (d.h. alle Module werden neu compiliert, obwohl Du nur eines geändert hast).

    Die meisten anderen Probleme sind nicht ganz so einfach nachzuvollziehen, aber trotzdem vorhanden.

    PS.: Ich rede von Vers. 5.0 Enterprise mit und ohne Update-Pack 1

    @AndreasW
    Ich schätz Du hast recht 🕶 Ist aber die alleinige Schuld des C++Builders 🙄 😉 😉

    [ Dieser Beitrag wurde am 17.10.2002 um 12:27 Uhr von kartoffelsack editiert. ]


Anmelden zum Antworten