C++ vs. Entwicklungszeit
-
junix schrieb:
Giovanni schrieb:
[...nachteil von C++...]Die Entwicklungszeit dauert meist länger.
Ja? Wieso?
-junix
Vorschlag:
C++ ist im Gegensatz zu vielen anderen Sprachen komplexer. Man hat somit auch mehr Möglichkeiten, mit der Sprache etwas zu realisieren. Entsprechend muss man auch mehr bzw. komplexere Entscheidungen treffen, wenn man mit C++ entwickelt, was natürlich länger dauert.
-
Ja, Gregor, da hast du da ein schönes Beispiel gemacht. Ich habe am Anfang eine Beispiel mit den AnsiStrings und mit den Datentypen gemacht. Was in VB natürlich viel einfacher ist, dadurch schneller geht. Das kann man natürlich je nachdem als Vor oder Nachteil auslegen. Man hat in C++ eben wie du sagst mehr Möglichkeiten, aber oft möchte man diese nicht nutzen und dann ist es eben ein Nachteil wenn man mehr Dinge beachten muß.
KlausB: ich rede hier nicht von Laufzeit, sondern von Entwicklungszeit. Wenn jemand seine Anwendung einfach schlecht programmiert, kann auch ein C++ Programm langsam sein - von der Laufzeit.
Aber ich glaube wir sind uns da soweit einig.
-
Gregor schrieb:
junix schrieb:
Giovanni schrieb:
[...nachteil von C++...]Die Entwicklungszeit dauert meist länger.
Ja? Wieso?
Vorschlag:
Abgewiesen (o;
Ne im ernst: es kommt wohl sehr auf die Kenntnisse der Sprache an, meinst du nicht? je sattelfester man ist, desto schneller trifft man entscheidungen. Änderst du "Entwicklungszeit" in "Einarbeitungszeit", so würde ich zustimmen.
Ich denke allerdings Giovanni meinte gar nicht das sondern, das - je nach Umgebung und Framework - z.T. etwas gar magere Framework das C++ mitliefert. Sind wir ehrlich VB hat ein riesiges Framework mit tausenden Funktionen die tausend Probleme schonmal vorab lösen. Für Java gilt ähnliches, ebenso wie für massig andere Sprachen und Scriptsprachen. Bei C++ ist das anders. Wobei auch hier z.B. Borland bewiesen hat, dass die Sprache nicht zwingend die Entwicklungszeit in die Höhe treiben muss. (durch ebenfalls eine umfangreiche Library bzw. Framework)
-junix
-
Dann möcht ich an euch Experten gleich noch mal ne Frage stellen!
VB ist von der Entwicklungsumgebung wirklich wesentlich stärker als C++, viel Komfortabler, viele Dinge kann mit sich "erklicken", die man in C++ programmieren muss. Wie schauts da aus mit C++ Borland Builder 6.0 oder C++ Borland Builder 7.0?
Sind diese besser? Bis jetzt arbeite ich mit der 5.0er Version!
-
Giovanni schrieb:
viele Dinge kann mit sich "erklicken", die man in C++ programmieren muss.
Kannst du da mal etwas präziser ein paar Beispiele nennen?
-
Giovanni schrieb:
VB ist von der Entwicklungsumgebung wirklich wesentlich stärker als C++, viel Komfortabler, viele Dinge kann mit sich "erklicken", die man in C++ programmieren muss.
Was hat die Programmiersprache mit der IDE und dem Framework zu tun? Das ist genau das worauf ich dich schon lange drauf zu hieven versuche! ObjectPascal, C++, VB == Programmiersprachen, MSVC, BCB, Kylix, Delphi, VB == IDE (unglücklicherweise heisst die IDE von MS exakt wie die Sprache)
Und meist gibts zu ner IDE auch noch n Framework wie z.B.
BCB hat VCL, CLX
Delphi hat VCL, CLX
Kylix hat CLX,
MSVC hat MFC,
VB hat VB RuntimeUnd das alles hat NIX miteinander zu tun.
-junix
-
Gregor schrieb:
Giovanni schrieb:
viele Dinge kann mit sich "erklicken", die man in C++ programmieren muss.
Kannst du da mal etwas präziser ein paar Beispiele nennen?
Er meinte vermutlich das Rapid Application Development (RAD) Konzept, das Borland seit Delphi, Kylix und BCB, MS mit Visual Basic, etc. verfolgt... Für Leute die nur RAD kennen, wird ein Einstieg z.B. in MSVC mit der MFC ein echter Kulturschock.
-junix
-
Okay, tut mir leid! Aber jetzt hab ihr mich ja aufgeklärt. Halten wir soweit fest, wir sind uns einig dass die "Programmiersprache C++" die beste ist, auch wenn ich nicht so viel davon verstehe wie ihr!
Aber Die IDE von C++ -> der BCB ist im Vergleich mit der IDE von VB, VB vergleichsweise schlecht. Z. B. kann man durch "erklicken" im BCB Textfelder nicht indezieren. In VB geht das mit ein paar klicks. In FoxPro kann ich eine kleine Anwendung erstellen, die Daten vom SQL-Server holt, diese in Textfelder darstellt, und in denen man von Datensatz zu Datensatz wechseln kann. Dazu sind gerade mal 2 Befehle nötig (um von Datensatz zu Datensatz zu springen, der Rest wird "erklickt" - es ist aber auch KEIN Asistent mit dem man sich sein Programm erstellt). Oder, dass es im BCB z. B. kein automatisches Einrücken gibt, ist auch kacke.
-
Giovanni schrieb:
Okay, tut mir leid! Aber jetzt hab ihr mich ja aufgeklärt. Halten wir soweit fest, wir sind uns einig dass die "Programmiersprache C++" die beste ist, auch wenn ich nicht so viel davon verstehe wie ihr!
Wieder nix verstanden. "Die beste Programmiersprache" gibt es nicht. Da gehört immernoch eine beschreibung hin wofür die Programmiersprache die beste ist.
Alle deine Anderen Punkte die du aufführst haben nix mit der IDE sondern mit dem Framework zu tun. (Ausser das Einrücken, das ist ein Problem des Editors). Ich würde auch nicht direkt sagen, die BCB-IDE sei schlecht... da gibts durchaus noch schlimmere... Aber sie hat tatsächlich einige Mängel.
-junix
-
Aber willst Du nicht irgendwann mal anfangen "richtig" zu programmieren? Ich will nur darauf hinaus, dass es sehr viel bringt wenn Du vestehst was im Hintergrund passiert, sprich was der Assistent generiert. Durch dieses Verständnis kannst Du vielleicht sogar besserer Anwendungen schreiben. Später kannst Du dann gerne wieder die Assistenten nutzen... Aber ob Du das dann noch möchtest
Die von dir angesprochen Textfelder in VB sind ActiveX Steuerelemente. Diese kannst du auch in c++ nutzen.
ciao
-
Okay,
Programmiersprache C, C++, VB, Object Pascal
IDE: quasi der Editorund die ganzen Steuerelemente, ob und wie man Textfelder indiziert, der Objektinspektor das ist das das Framework.
So, seh ich das jetzt richtig? Ist der BCB 6.0 oder 7.0 mit einer besseren IDE und einem besseren Framework ausgestattet?
-
Fast richtig.
IDE = Integrated Development Environment == Editor, Compiler, Debugger, Linker, etc. pp.
Framework sind alle Funktionen und Klassen die du z.B. vom C++ Builder zur Verfügung gestellt kriegst.Der OI gehört wiederum auch zur IDE.
Natürlich werden neue Versionen des BCB auch mit einem neuen (verbesserten) meist abwärtskompatiblen Framework ausgestattet. So kennt z.B. VCL 6.0 unterdessen "Anker" für Komponenten, was die VCL 5.0 z.B. noch nicht kannte. etc.
-junix
-
junix schrieb:
Fast richtig.
IDE = Integrated Debug EnvironmentFast richtig: IDE = Integrated Development Environment (integrierte Entwicklungsumgebung)
-
ooops... verdammt... war mit den gedanken schonwieder wo anders... sorry.. hast natürlich recht (o:
-junix
-
dann änder mal schnell deinen beitrag, bevor sich das bei jemandem einprägt.
-
KlausB schrieb:
Ich arbeite mit mySQL im Netzwerk und habe eigentlich mit Builder (C++) keine Schwierigkeiten
Unser Kunde hat da auch ein kleines VB Programm um sich Daten anzeigen zu lassen
(gaehnend langsam)Welche VB Version? vor der 5er Version wurde VB noch nicht kompiliert (wenn ich nicht irre)
Inwiefern soll das anzeigen der Daten so viel zeit fressen? schliesslich werden nur ein paar sachen gezeichnet (und hierbei wird ja nicht VB code aufgerufen, sondern die Zeichenroutinen sind ja in C oder etwas aehnlichem implementiert)
Also unsere VB frontends laufen schnell genug, von der start-zeit mal abgesehen, aber wenn es rennt, dann rennt es.
Mit .NET ist das uebrigens das selbe - die GUI ist pfeilschnell
-
Shade Of Mine schrieb:
Inwiefern soll das anzeigen der Daten so viel zeit fressen? schliesslich werden nur ein paar sachen gezeichnet (und hierbei wird ja nicht VB code aufgerufen, sondern die Zeichenroutinen sind ja in C oder etwas aehnlichem implementiert)
Das Problem hier ist wohl, dass die Daten nicht intelligent gezeichnet werden...
Wenn du ein paar tausend Zeilen (z.B. von 0x0000 bis 0x3FFF) in eine standard MFC Listbox packst (ca. 60-70Zeichen/Zeile), dann wird das auch gähnend langsam... wenn du nur immer die vl. 20 Zeilen die eh angezeigt werden reinschreibst gehts n paar ms.... Das Selbe gilt für die VCL und vermutlich sogar für eine WinAPI S oftware...-junix
-
also mein aktuelles projekt ist in C# implementiert und als backend dient eine MySQL DB
Ich habe zwar nur 2200 Datensätze, aber das geht fix. natürlich nicht wirklich fix, aber es sind konstante startup kosten. ein aktualisieren findet nicht statt, sondern nur ein update der relevanten daten.
läuft auf nem 500 mhzer ohne probleme.
klar, wenn man jedesmal die ganzen daten neulädt, dann ists lahm, aber da hilft der beste C++ Compiler nix.
-
eben