Warum programmiert ihr in C?
-
C++ hat hier eigentlich nur einen Vorteil, die Entwicklung ist für den Auftraggeber billiger, da der C++ Entwickler schneller voran kommt.
Pauschal geschrieben ist das Käse.
C++-Code sieht zugegebenermaßen besser aus und ist auch meist schneller gebaut.
Soviel dazu.
C++ kann in bestimmten Bereichen genauso performant sein wie C, aber in einigen Dingen kann man unter Verwendung von C-Code noch ein paar Prozent rausholen.Warum seht ihr die Welt immer nur schwarz und weiß ?
Nutzt doch einfach das beste aus beiden Welten.
-
dot schrieb:
Es gibt nur einen einzigen rationalen Grund heutzutage C zu programmieren. Und das ist wenn es für eine Zielplattform keine C++ Implementierung gibt.
Ein nicht rationaler Grund C zu programmieren wäre z.B. das heute relativ weit verbreitete C-Hacker-Syndrom, einige Symptome davon konnten ja auch hier auf den letzten Seiten schon beobachtet werden.An aversion towards using C++ standard library functions and especially data containers because the C-hacker feels that he is not "in control".
Ein für mich absolut nachvollziehbarer Grund. Man weiß schlicht und ergreifend nicht, was hinter den den STL-Containern steckt. Wenn man sich aber genauer mit Containern beschäftigt, weiß man das irgendwann.
Viele nutzen die STL aber, ohne zu hinterfragen, und das ist das Problem. Irgendwer sagt: Jawoll, Container XY ist gut und alle nutzen es, ohne sich überhaupt ne Platte zu machen. Da ist mir lieber, wenn sich einer selbst hinsetzt, einen Container selber austüftelt ( wenn es Sinn macht, auch in C ) und verbessert und dabei mehr lernt, als wenn er irgendwelches vorgefertigtes Zeug unreflektiert verwendet.
-
It0101 schrieb:
C++ hat hier eigentlich nur einen Vorteil, die Entwicklung ist für den Auftraggeber billiger, da der C++ Entwickler schneller voran kommt.
Pauschal geschrieben ist das Käse.
C++-Code sieht zugegebenermaßen besser aus und ist auch meist schneller gebaut.
Soviel dazu.
C++ kann in bestimmten Bereichen genauso performant sein wie C, aber in einigen Dingen kann man unter Verwendung von C-Code noch ein paar Prozent rausholen.Warum seht ihr die Welt immer nur schwarz und weiß ?
Nutzt doch einfach das beste aus beiden Welten.
-
Wieso geht ihr ueberhaupt noch auf das offensichtliche Getrolle der Unregs ein?
-
Ich lowbyte heisse auch re. lowbyte. Ich stehe zu meinem Wort.
-
Wenn du C und C++ code mischt, so wie es auch Stroustrup durchaus begrüßt wenn die Funktionen gut gekapselt sind, dann würde für die meisten hier eine Welt zusammenbrechen. Die sind sich hier selbst nicht einig was nun das beste ist. Zuerst wollte C++ das bessere C sein, dann sollte es bloss nix mit C zu tun haben und so weiter und so fort.
-
Das Problem ist nicht C++, sondern das offensichtlich ein Grossteil der Cler KEINE Ahnung hat von C++.
Auch scheinen sie Komplexe zu haben. Es weiss eh jeder, dass C++ in jeder Hinsicht ueberlegen ist und drum verteidigen sie so aggressiv und polemisch ihr kleines C. Suess
-
nöööööööö schrieb:
Wenn du C und C++ code mischt, so wie es auch Stroustrup durchaus begrüßt wenn die Funktionen gut gekapselt sind, dann würde für die meisten hier eine Welt zusammenbrechen.
ganz genau: Auf die Kapselung kommt es an. Wenn Funktionalität sauber, z.B. in einer Klasse, gekapselt ist, ist doch völlig wurst ob drinnen C oder C++ zum Einsatz kommt. Und wenn in dem Anwendungsfall C-Code oder sogar Assembler-Code Performance-Vorteile bringt, dann ist das aus meiner Sicht absolut legitim.
Das die Only-STL-C++-Fanboys ( will jetzt hier keine Namen nennen ) vielleicht dann einen Herzinfarkt erleiden, ist mir relativ Wumpe, aber ich kenn das von dir angesprochene Problem aus dem Forum hier sehr gut
-
Wer in seinen C++ Code C einbaut, hat einfach keine Ahnung. Das sind dann auch die Leute, die printf() fuer ueberlegener halten als Streams.
-
trolldetector schrieb:
Wer in seinen C++ Code C einbaut, hat einfach keine Ahnung. Das sind dann auch die Leute, die printf() fuer ueberlegener halten als Streams.
Von printf ist hier nicht die Rede... es geht um Performance.
Bei Dateizugriffen und Textausgaben nutze ich auch nur streams...
-
Wo sieht denn C++ Code mit STL, Boost, Templates etc besser aus? Da gruseln sich doch selbst die alten Hasen für solch einem Code.
-
It0101 schrieb:
nöööööööö schrieb:
Wenn du C und C++ code mischt, so wie es auch Stroustrup durchaus begrüßt wenn die Funktionen gut gekapselt sind, dann würde für die meisten hier eine Welt zusammenbrechen.
ganz genau: Auf die Kapselung kommt es an. Wenn Funktionalität sauber, z.B. in einer Klasse, gekapselt ist, ist doch völlig wurst ob drinnen C oder C++ zum Einsatz kommt. Und wenn in dem Anwendungsfall C-Code oder sogar Assembler-Code Performance-Vorteile bringt, dann ist das aus meiner Sicht absolut legitim.
Das die Only-STL-C++-Fanboys ( will jetzt hier keine Namen nennen ) vielleicht dann einen Herzinfarkt erleiden, ist mir relativ Wumpe, aber ich kenn das von dir angesprochene Problem aus dem Forum hier sehr gut
Du bist der erste vernünftige C++ Coder den ich hier gesehen habe
-
It0101 schrieb:
trolldetector schrieb:
Wer in seinen C++ Code C einbaut, hat einfach keine Ahnung. Das sind dann auch die Leute, die printf() fuer ueberlegener halten als Streams.
Von printf ist hier nicht die Rede... es geht um Performance.
Bei Dateizugriffen und Textausgaben nutze ich auch nur streams...Dann nenn mir mal ein Beispiel, wo C gegenueber C++ schneller ist.
-
Zum Beispiel benötigte ich vor längerer Zeit mal eine sehr spezielle Liste. Eine Spezialanwendung sozusagen.
Das von mir selbst programmierte maßgeschneiderte Template mit C-Code war 2% schneller als der dafür am besten geeignete STL-Container...
Manche STL-Container und Klassen sind einfach zu oversized, so dass eine C-Implementierung für Spezialfälle dann durchaus Sinn macht.
Nur als Beispiel... Es gibt sicher in anderen Bereichen noch mehr Beispiele dafür, die nicht mal unbedingt Spezialanwendungen sein müssen.
-
Inwiefern war das C-Code und inwiefern war er schneller als entsprechender C++-Code? Kann man in C++ nicht mehr eigene Container schreiben?
-
It0101 schrieb:
Zum Beispiel benötigte ich vor längerer Zeit mal eine sehr spezielle Liste. Eine Spezialanwendung sozusagen.
Das von mir selbst programmierte maßgeschneiderte Template mit C-Code war 2% schneller als der dafür am besten geeignete STL-Container...
Manche STL-Container und Klassen sind einfach zu oversized, so dass eine C-Implementierung für Spezialfälle dann durchaus Sinn macht.
LOL. Und was hat das jetzt mit C++ zu tun? Du vergleichst gerade C mit der STL. Merkst was?
Wenn ein STL Container nicht passt, dann schreibt man sich halt einen. Nur deshalb gleich auf das unkomfortable C umsteigen, macht Null Sinn.Wieder einmal zeigen die Cler, dass sie einfach keine Ahnung haben und nicht mal wissen, dass C++ einfach eine Obermenge ist. Wenn ich gleichwertigen Code habe, dann ist der in C++ mindestens genauso schnell und wenn ich C++ spezifische Konstrukte habe, dann ist der Nachbau in C MAXIMAL gleich schnell.
-
Erklär das hier mal den Fanboys... Für die meisten ist hier C++ untrennbar mit der STL verbunden Und selbst deine Ansicht, sich selbst nen Container zu schreiben wird hier nicht von vielen unterstützt. Das is praktisch Blasphemie
-
Es gibt sogar Fälle wo man mit C++ Standardmitteln über 30x langsamer als mit C-Mitteln ist. Komfort kostet halt meist Performance und die STL ist bei weitem nicht das Allheilmitteln als das es hier oft angepriesen wird.
Das Optimum aus Performance und Komfort bekommt man wenn man C mit Klassen schreibt und die ganze STL weg lässt.
Ach wie schnell und sparsam wären unsere Systeme wenn alles in sauberen C geschrieben wäre. Dann würde die System auch mit schnellerer Hardware schneller werden und nicht immer langsamer.
-
It0101 schrieb:
Erklär das hier mal den Fanboys... Für die meisten ist hier C++ untrennbar mit der STL verbunden Und selbst deine Ansicht, sich selbst nen Container zu schreiben wird hier nicht von vielen unterstützt. Das is praktisch Blasphemie
Blödsinn. Wenns auf 2% Performance ankommt, kannst du dir ruhig ne eigene Liste schreiben. Du musst mir mal einen zeigen, der dir da widerspricht.
-
amuesierter schrieb:
It0101 schrieb:
Zum Beispiel benötigte ich vor längerer Zeit mal eine sehr spezielle Liste. Eine Spezialanwendung sozusagen.
Das von mir selbst programmierte maßgeschneiderte Template mit C-Code war 2% schneller als der dafür am besten geeignete STL-Container...
Manche STL-Container und Klassen sind einfach zu oversized, so dass eine C-Implementierung für Spezialfälle dann durchaus Sinn macht.
LOL. Und was hat das jetzt mit C++ zu tun? Du vergleichst gerade C mit der STL. Merkst was?
Wenn ein STL Container nicht passt, dann schreibt man sich halt einen. Nur deshalb gleich auf das unkomfortable C umsteigen, macht Null Sinn.Wieder einmal zeigen die Cler, dass sie einfach keine Ahnung haben und nicht mal wissen, dass C++ einfach eine Obermenge ist. Wenn ich gleichwertigen Code habe, dann ist der in C++ mindestens genauso schnell und wenn ich C++ spezifische Konstrukte habe, dann ist der Nachbau in C MAXIMAL gleich schnell.
träum weiter