C++ vs. Entwicklungszeit



  • Hallo,

    ich hätte eine Frage an euch betreffend der Entwicklungszeit in C++.
    Ich bin Azubi im 2 Lehrjahr, zum AE. Ich programmiere schon ne Weile in C++, und bin für einen Azubi ganz gut. Aber nicht überragend. Nun stelle ich mir die Frage, wie sinnvoll es ist C++ zum Entwickeln zu nehmen. Die Anwendungen die ich mache sind nicht zeitkritisch. Wäre da nicht VB, C# oder Delphi besser geeignet?

    Nehmen wir beispielsweise die Strings in C++. Es gibt strings, AnsiStrings und Char. Die sind untereinander nicht kompatibel, dann gibt es noch andere Datentypen, die man ständig umwandeln muss. In VB wird alles intern über den Datentyp Variant gemacht, einfach zuweisen und finitio. Geht wesentlich schneller.

    Was könnt ihr mir für einen Rat geben, betreffend der Entwicklungszeit?

    Danke!



  • Hier stehen bereits einige Statements in Form eines Doppelposts:
    http://www.c-plusplus.net/forum/viewtopic.php?t=58066

    -junix



  • Ja, genau. Ich gehts jetzt weiter. Also, hat mir jemand ein paar Argumente für den C++ Builder? Wenn ich z. B. FoxPro mit C++ vergleiche. Da erstelle ich in 5min eine Oberfläche, die Daten vom SQL Server holt und diese in einem MemoFeld darstellt. In C++ bräuchte ich ein vielfaches der Zeit.

    Die Oberfläche! Der C++ Builder kann z. B. (meines Wissens) keine Textboxen indizieren, in VB ist das in 10 Sekunden gemacht. Der C++ Builder kann nicht mal Text einrücken, in VB schon lange vorhanden.



  • In welchem Bereich programmierst du denn? Datenbanken, Datenaustausch über Ethernet usw. ? Was genau machst du auf der Arbeit, welche Anwendungen schreibst du?



  • Hauptsächlich im bereich Datenbanken, was anderes eigentlich nur selten.



  • Giovanni: Sei jetzt nicht eingeschnappt. Aber deine Aussagen sagen mir primär, dass du das Werkzeug C++ und das Werkzeug VCL doch nicht sooo gut kennst wie du selber gern glauben würdest...

    Aber zurück zur eigentlichen Frage: Du kannst hier nicht Äpfel mit Birnen vergleichen. Jede Sprache und jede Entwicklungsumgebung hat ihre Vor- und ihre Nachteile. Jede Sprache wurde für spezielle Anwendungen erschaffen. Es gibt dementsprechend nicht "DIE" sprache. FoxPro ist für Datenbanken ausgelegt. Entsprechend ist es da bestimmt stark, während es vermutlich bei hardware-naher Programmierung schlicht versagt. Man sollte sich auch nicht auf irgendwelche Sprachen versteifen.

    Merk dir folgende Aussage:
    Die Sprache ist lediglich ein Werkzeug und sollte entsprechend dem Problem und den Ressourcen ausgewählt werden.

    Man kann mit allen Sprachen alle Probleme lösen. Nur ist vielleicht nicht jede Sprache dafür optimal.

    Genau so, wie der Handwerker kaum mit einer Wasserpumpenzange eine M2 Schraube rausdrehen oder anziehen wird, wenn er einen M2-Schlüssel zur Verfügung hat, sollte man auch bei der Sprache darauf achten, wo sie ihre Stärken und ihre Schwächen hat und entsprechend abwägen.

    Manchmal gibt es allerdings ausnahmen. Hat der Handwerker nämlich keinen M2-Schlüssel, aber dafür ne Wasserpumpenzange und nen Engländer (rollgabelschlüssel) zur Auswahl, so wird er kaum die Wasserpumpenzange nehmen, sondern sich für die, zwar nicht beste, aber bestimmt bessere Lösung entscheiden und den Engländer benutzen.

    Ich hoffe du verstehst meine Metapher.

    -junix



  • junix schrieb:

    Giovanni: Sei jetzt nicht eingeschnappt. Aber deine Aussagen sagen mir primär, dass du das Werkzeug C++ und das Werkzeug VCL doch nicht sooo gut kennst wie du selber gern glauben würdest...-junix

    Ich habe erst vor ein paar Wochen mit Klassen angefangen, ich bin kein Experte, das weiß ich auch.

    junix schrieb:

    [b]Die Sprache ist lediglich ein Werkzeug und sollte entsprechend dem Problem und den Ressourcen ausgewählt werden.

    Man kann mit allen Sprachen alle Probleme lösen. Nur ist vielleicht nicht jede Sprache dafür optimal.
    -junix

    Erst mal, danke dass du mir so ausführlich geschrieben hast. Ich finde dein Statement, gut. Es wäre wirklich ein Zeichen von Unflexiblität und beinah schon ein Armutszeugnis wenn ein AE nur mit einer Sprache programmieren könnte.

    Aber was sind dann die Stärken von C++?

    FoxPro ist klar eine Datenbanksprache
    VB ist gut für Netzwerke geeignet (glaub ich)
    und Delphi auch für Datenbanken

    C++ ist meiner Meinung eine richtige Entwicklungssprache, wenn du Anwendungen brauchst, die wirklich schnell laufen sollen. Betriebssysteme, Grafikprogramme, Treier und so. Lieg ich da richtig?



  • Mit nur C++ wirst du kein Betriebssystem schreiben.
    Da kommen noch Assembler und C hinzu!

    Also ich kenne kein andere Sprache wie C++, die es dir ermöglich alles zu Schreiben, was dein kleines Programmierherz erfüllt!



  • Du kannst in C++ ziemlich gut Backends schreiben (also den Teil vom Programm, der die eigentliche Logik erledigt)

    Mit dem BCB hast du auch ne vernünftige Architektur für das Frontend, wobei VB, .NET,... hier immer noch einfach sind.

    VB würde ich zB dann nehmen, wenn man ein kleines Frontend zu einer Access DB braucht - dafür ist es ziemlich ideal. Letztens habe ich das Frontend zu einer MySQL DB mit C# gemacht - hat auch recht gut geklappt.

    Die Frage ist im Prinzip: was muss das Programm erledigen.
    Kann man diese Aufgaben aufteilen?

    zB das Frontend in VB und das Backend in C++

    Oder eben alles in VB
    Delphi bringt gegenüber dem BCB IMHO nicht viel. Da ist der BCB sogar besser, da du mit C++ wesentlich mehr Möglichkeiten hast, als mit Delphi.

    Es ist nicht immer leicht das richtige Werkzeug zu wählen, IMHO braucht man dazu ein feingefühl, dass man aber erst haben kann, wenn man schon länger diverese Sprachen einsetzt.



  • also Visual Basic 6 solltest du überhaupt keine Beachtung mehr schenken. Das ist für nichts mehr nützlich. Höchstens VB .NET.



  • Giovanni schrieb:

    junix schrieb:

    Giovanni: Sei jetzt nicht eingeschnappt. Aber deine Aussagen sagen mir primär, dass du das Werkzeug C++ und das Werkzeug VCL doch nicht sooo gut kennst wie du selber gern glauben würdest...-junix

    Ich habe erst vor ein paar Wochen mit Klassen angefangen, ich bin kein Experte, das weiß ich auch.

    Aber wenn du nicht mal den elementarsten Teil deines Werkzeugs kennst, wie kannst du dich dann darüber beschweren, dass es mit diesem Werkzeug langsamer voran geht als mit anderen Werkzeugen die du (vermutlich) besser kennst?

    Giovanni schrieb:

    junix schrieb:

    [b]Die Sprache ist lediglich ein Werkzeug und sollte entsprechend dem Problem und den Ressourcen ausgewählt werden.

    Man kann mit allen Sprachen alle Probleme lösen. Nur ist vielleicht nicht jede Sprache dafür optimal.

    Erst mal, danke dass du mir so ausführlich geschrieben hast. Ich finde dein Statement, gut. Es wäre wirklich ein Zeichen von Unflexiblität und beinah schon ein Armutszeugnis wenn ein AE nur mit einer Sprache programmieren könnte.

    Korrekt.

    Giovanni schrieb:

    FoxPro ist klar eine Datenbanksprache

    Jupp.

    Giovanni schrieb:

    VB ist gut für Netzwerke geeignet (glaub ich)

    Den erklär mir mal.

    Giovanni schrieb:

    und Delphi auch für Datenbanken

    Datenbanken && Oberflächen. Dazu kommt auch die Tatsache, dass ObjectPascal einfach erlernbar ist, da die Grundsprache mit dem Ziel eine Lehrsprache zu entwickeln entwickelt wurde.

    Giovanni schrieb:

    C++ ist meiner Meinung eine richtige Entwicklungssprache, wenn du Anwendungen brauchst, die wirklich schnell laufen sollen. Betriebssysteme, Grafikprogramme, Treier und so. Lieg ich da richtig?

    Naja Geschwindigkeit ist sicher mal der Hauptvorteil. Der Witz an C++ ist, dasss man sich die Abstraktion je nach Problem und effizientester Lösung variieren kann. Ich kann mit C++ gleichzeitig maschinen nah aber trotzdem auch sehr abstrakt (mit Objekten) programmieren. Das erreichst du mit praktisch keiner anderen Sprache.

    C++ wird allerdings auch häufig an orten eingesetzt, wos eigentlich bessere Werkzeuge gäbe. Aber hier kommt obiges Ausnahmebeispiel zum Zug:
    Wir haben:
    Wasserpumpenzange
    Engländer

    Wir brauchen M2 Schlüssel
    > Lösung: Wir nehmen den Engländern,denn extra wegen dem M2 Schlüssel in den Baumarkt zu fahren kostet zuviel...

    -junix



  • Datenbanken sind in VB über ADO/DAO so einfach, einfacher gehts kaum. Das ist auch das Hauptanwendungsgebiet von VB.



  • Hallo

    Datenbanken ist die Spezialitaet von Delphi/Borland Builder
    Dafuer ist VB nicht gerade das beste (Geschwindigkeit)

    MfG
    Klaus



  • @KlausB
    ich wette, dass kein User merkt, ob die Anwendung in C,C++,Java,C#,Delphi oder VB geschrieben wurde. Bei einer DB Anwendung ist der Flaschenhals ja nicht das Frontend, sondern die DB selber.



  • Hi! Also ich bin auch Azubi im 2ten Lehrjahr zum AE. Momentan beschäftige ich mich vom Betrieb und der Schule aus mit C++. Soll ne Inventaranwendung schreiben. Was wir zum Teil auch schon Kopfschmertzen bereitet. Habe so schon einwenig in C# und ne Menge in Delphi gearbeitet. Ich muss zwar sagen, das ich diese Inventarverwaltung beispielsweise in Delphi recht schnell realisieren könnte, aber da ich es für meine Abschlussprüfung brauche, werd ich mehr in C++ machen. Von der Arbeit her mit der Syntax und den Befehlen arbeite ich aber trotzalledem lieber in Delphi. Vielleicht liegt es daran, das ich mich momentan damit mehr auskenne. Aber ich werde mich auch weiterhin mit C++ beschäftigen, weitere Anwendungen damit entwickeln und hoffen später einmal mehr Sprachen zuberherschen. Es ist nie falsch mehere Sprachen zubeherrschen, man kann Probleme in den Sprachen mal schneller und in denen auch mal nicht so schnell lösen. Es ist wichtig effizient zuarbeiten und die Größe der Anwendung so gering wie möglich zuhalten.

    😃 Ambesten man arbeitet im Assembler!!! 😃



  • Eben, wie willst du vergleichen, ob eine Anwendung in C++ oder eine Anwendung in VB Daten von einem SQL-Server schneller darstellt?

    Wenn es um Geschwindigkeit geht, geht es darum eine Anwendung möglichst gut und möglichst schnell zu entwickeln. Und mit Delphi/VB oder FoxPro kann man eben Datenbankanwendungen schneller entwickeln als mit C++.



  • Aber wenn es darum geht, sich für eine Primärsprache zu entscheiden (natürlich sollte man nie starr selben Sprache bleiben), geht es auch um Zukunftsaussichten, es geht aber auch um Verbreitung. Phyton ist zwar nicht schlecht, nur wird Phyton zu vielleicht 2-3% in der Industrie eingesetzt, Java, C++ und VB machen aber bestimmt 75% aus. Die Verbreitung wäre schon beinahe ein Grund sich für eine Sprache zu entscheiden, gerade im Hinblick auf den heutigen Arbeitsmarkt.

    Aber eine Frage hätte ich noch. Weiß jemand von euch, wie es in einem FH-Studium mit Progen ausschaut. Welche Sprache da am ideallsten wäre (höchstwahrscheinlich C++)??? Zum Lernen, um möglichst viel über Programmieren allgemein zu lernen und gleichzeitig tief in die Materie hineinzugehen ist C++ wohl absolut unschlagbar. Könnt ihr mir da zustimmen?



  • Giovanni schrieb:

    Aber eine Frage hätte ich noch. Weiß jemand von euch, wie es in einem FH-Studium mit Progen ausschaut. Welche Sprache da am ideallsten wäre (höchstwahrscheinlich C++)??? Zum Lernen, um möglichst viel über Programmieren allgemein zu lernen und gleichzeitig tief in die Materie hineinzugehen ist C++ wohl absolut unschlagbar. Könnt ihr mir da zustimmen?

    Also in all den Berufschulen die ich kenn, in denen FI´s ausgebildet werden, wird hauptsächlich C++ verwendet. Und diese Sprache ist wie die schon sagtes eine sehr tief in die Materie eintringende Sprache. Wobei es in den Firmen wieder anders ausschaut. Bei uns ist es so, wir haben als Vorgabe für Windows Apllicationen Delphi. Da die Entwickler unserer Firma alle Delphi können und somit das bearbeiten der Anwendungen wesentlich leichterfällt. Da ich aber C++ für die Schule brauche, bin ich der erste in der Firma, der mit C++ arbeitet bzw. damit beginnt.



  • Vor allem solltest Du Dir Gedanken machen, ob die Anwendungen in Zukunft nur auf Windoof Plattformen laufen, oder vielleicht auch auf Linux (stark im kommen). Dann wäre wahrscheinlich c++(mit crossover Libs) oder halt JAVA angesagt. Ansonsten bist Du wohl mit VB schon recht gut bedient(für DB Frontends).

    ciao



  • Also, erstmal danke für alle Beiträge und für alle dies sich die Mühe gemacht haben mir ein paar Fragen zu bwantworten.

    Ich denke C++ hat trotz allem einen großen Nachteil gegenüber anderen Programmiersprachen. Die Entwicklungszeit dauert meist länger. Aber C++ hat auch deutlich mehr Vorteile. Eben die zu letzte Angesprochene Portabilität die VB oder Net.VB oder auch Delphi nicht hat. C++ ähnelt Java und zusammen werden beide Sprachen zu über 50% in der Industrie verwendet. Hinzukommt dass C++ an vielen Schulen/FHs/Unis unterrichtet wird und man viel Informationsmaterial dazu findet und natürlich gute Foren 🙂 Ich denke die Verwandschaft von C++ zu vielen Sprachen wie Java oder PHP ist auch ein sehr gutes Argument sich für C++ zu entscheiden, aber auch natürlich die Geschwindigkeit.

    🙂 Giovanni


Anmelden zum Antworten