Warum programmiert ihr in C?
-
Cönner schrieb:
Bezüglich in C geschriebene Software muss sich C++ hinten anstellen, Microsoft-Software (Windows XX, Word), Firefox und KDE sind alle nicht besonders performant, bei Linux, Emacs, mutt und GNOME sieht das alles gleich besser aus. ... Aber das sind keine objektiven Argumente gegen C++.
Trotzdem möchte ich kurz darauf eingehen, weil andere Teilnehmer das in wütenden Beweisführungen vortragen.
Nur mal so eine Idee:Es gibt Leute, die schlichte Eleganz mögen. Leute, für die Einfachheit was tolles ist. Leute, die davon überzeugt sind, daß man für ein schnelles Auto zuerst mal auf den elektisch einfahrbaren Kofferraumgriff verzichten sollte, satt hinten einen Spoiler dranzuschrauben. So Leute mag ich. Die gehen eher zu Gnome als zu KDE, eher zu Linux als zu Windows. Ich nenne sie im Folgenden mal KISS-Leute.
Vor 20 Jahren war C++ technisch langsamer als C. Man hat für den (damals) Luxus der Objektorientierung bezahlen müssen.
Die KISS-Leute gingen nicht nur mehr zu Gnome, sondern auch mehr zu C. Logisch.
Jetzt ist C++ technisch nicht mehr langsamer.
sprungmarke:
Die KISS-Leute sind aber noch mehr bei Gnome und C zu finden. DADURCH sind C-Programme oft bescheidener und schneller.
Und jetzt kommt die sich selbsterfüllende Phophezeihung: http://de.wikipedia.org/wiki/Selbsterfüllende_Prophezeiung
Wenn ich ein neuer KISS-Leut bin, schaue ich mir KDE/C++ an und Gnome/C und stelle fest, daß mir Gnome/C mehr gefällt.
Wenn ich ein neuer Bloat-Leut bin, schaue ich mir KDE/C++ an und Gnome/C und stelle fest, daß mir KDE/C++ mehr gefällt.goto sprungmarke;
---
Kleine Anektode am Rande. Hier war mal einer, der hat ein Virenschutzprogramm für Win mitentwickelt und beworben. Ich wünste mir entschieden ein Kommandozeileninterface, damit ich nach Gusto den Prüfer durchlaufen lassen kann. Auch in den Windows-Taskplaner reintun. Nix da! Geschäftsleitung erlaubt sowas nicht. Stattdessen wird ein eigener Taskplaner gebastelt und mitgeliefert, der natürlich dann mitlaufen muß und wieder ein wenig Rechenzeit und RAM klaut.
Jeder Virenscanner oder Defragmentierer, den man für Windows kaufen kann, hat so einen Taskplaner dabei. Es wird aus Prinzip nicht der eingebaute verwendet. Seltsam das. Und unangenehm.Oder jüngst erlebt. Ich benutze im Moment ein gentoo-Linux auf USB-Stick. Bin ein wenig am rumfummeln. Da gibt es einen recht simplen Texteditor namens Mousepad. Ich war an sich glücklich damit. Bis ich ihn mal als root ausgeführt hatte. Da wird das Textfenster um eine Zeile verkleinert und oben schiebt sich eine feste rot hinterlegte Zeile ein "Warning, you are using the root account, you may harm your system."
Was soll der Quatsch?
-
realistee schrieb:
Ich frag mich wie viele der Cler hier schon an richtig großer Software geschrieben haben mit GUI, Netzwerk, Datenbankanbindung etc. Wird bestimmt sehr übersichtlich der Code mit purem C.
Cler leben halt doch eher in ihrer kleinen Treiber/Hack-Welt, die eher dem Jahr 1980 als 2010 entspricht. In der realen Welt ist es den Kunden scheissegal ob die Anwendung 2% langsamer läuft. Der will einfach schnellstmöglich Ergebnisse, denn SW Entwicklung ist schweineteuer.
Aber ich erwarte nicht, dass das unsere unstudierten Cler verstehen.
also zugegeben hab ich noch nie eine richtig große software erstellt. aber wer hat das schon? übersichtlichkeit kommt durch schnittstellen. ob ich meine funktionen jetzt mit
my_class::abc()
oder über
my_class_abc()
aufrufe macht keinen großen unterschied... einzig die übergabe des für oop notwendigen parameter könnte man als argument anführen. was übersichtlich ist und was nicht hängt vom entwickler ab. hingerotztes c++ ist genau so unleserlich wie schlampiges c. wenn man sich aber ein bischen mühe gibt, kann man in beiden saubere/leserliche/wartbare software schreiben.
-
evtl. sollte ich noch anmerken, dass die größten bisher geschriebenen software pakete in c daher kommen?
-
Ich denke der Grund warum es mehr C-Programmierer gibt als die die C++ können liegt darin begründet dass C++ zu den am schwersten zu lernenden Sprachen gehört. Wenn man es denn sehr gut kann ist es extrem schnell und auch meist ein Allzweckwerkzeug, aber das können eben nicht vielen und haben auch irgendwann keine Lust mehr so weit zu gehen da es heutzutage mehr als genug Alternativen gibt.
Oft wird sogar nur noch extrem zeitkritische oder systemnahe Geschichten in C oder C++ als Lib geschrieben und der Rest eben in OOP Hochsprachen die schnell zu lernen sind und viele Fehler von vornerein gar nicht erst zu lassen.
Ich denke daran wird sich auch nichts mehr ändern schließlich dreht sich die Welt immer schneller und schon gutes OOP zu lernen dauert seine Zeit und irgendwann will man neben der ganzen zu lernenden Informatik hinter allem auch mal anfangen zu arbeiten. Eine Sprache die dann noch mal viel Zeit abverlangt hat du heute keine große Chance mehr und wird nur noch genutzt weil einige Entwickler nichts anderes können oder man alten Code weiterverwenden muss.
-
Ich programmiere lieber in C++, denn es bietet mir Funktionalitäten, die mir C nicht bietet, z.B.:
- Operatorenüberladung
- Vererbung
- Konstruktoren und Destruktoren ermöglichen automatische Initialisierung bzw. Freigabe von Speicher. Auf sowas muss ich in C extra achten.
- Daten und Zugriffsfunktionen sind in einen Objekt zusammengefasst
- Exceptions, die eine einfachere Fehlerbehandlung ermöglichen.C++ ist ebenso wie C maschinennah und damit sehr schnell, schliesslich ist C++ ja auch mal aus C enstanden. Und: Auch in C++ kann optimiert programmiert werden.
Das ist meine Antwort auf die ursprüngliche Frage.
-
Nur war die ursprüngliche Frage nicht "Warum programmiert ihr in C++?" sondern "Warum programmiert ihr in C?" Meine Antwort dazu:
- kein unötiger Schnickschnack
- ich kann C vollständig in relativ kurzer Zeit lernen
- C Runtime unter Linux schneller als C++
- Es gibt viel mehr C-Programmierer als C++ler
- Programmfluß ist im Gegensatz zu C++ nachvollziehbar
- Um Daten und Zugriffsfunktionen zusammenzufassen brauche ich keine Klassen in C.
- Exceptions funktionieren in C++ nicht wirklich immer wie hier irgendwo im Forum schon von C++lern beschrieben wurde, also muss man eh was Eigenes schreiben oder eine Lib nutzen.Auf Deutsch wenn ich C++ programmieren muss könnt ich mir jedesmal den Finger in den Hals stecken.
-
lookwindows schrieb:
Nur war die ursprüngliche Frage nicht "Warum programmiert ihr in C++?" sondern "Warum programmiert ihr in C?" Meine Antwort dazu:
Falsch. Du antwortest auf "Welche Vorwände habt ihr euch zurechtgelegt, um zwar in C, aber nicht in C++ zu programmieren?"
lookwindows schrieb:
- kein unötiger Schnickschnack
- ich kann C vollständig in relativ kurzer Zeit lernen
- C Runtime unter Linux schneller als C++
- Es gibt viel mehr C-Programmierer als C++ler
- Programmfluß ist im Gegensatz zu C++ nachvollziehbar
- Um Daten und Zugriffsfunktionen zusammenzufassen brauche ich keine Klassen in C.
- Exceptions funktionieren in C++ nicht wirklich immer wie hier irgendwo im Forum schon von C++lern beschrieben wurde, also muss man eh was Eigenes schreiben oder eine Lib nutzen.Sehr vage ausgedrückt und meist in dem Maße falsch, wie es konkret wird oder objektiv erscheinen soll.
lookwindows schrieb:
Auf Deutsch wenn ich C++ programmieren muss könnt ich mir jedesmal den Finger in den Hals stecken.
Ja, laß es doch dabei und versuche nicht, noch zu beweisen, warum du C++ nicht magst.
Warum müßt ihr immer, statt einfach zu erklären, was Euch an C gefällt, eine kleine Haßtirade gegen C++ starten? Minderwertigkeiskomplexe?
-
Mit den "Haßtiraden" haben die C++ler angefangen ...
Ist so wie in eine Motorradforum die Fragen nach dem richtigen Öl oder Zündkerzen.
-
Scheppertreiber schrieb:
Mit den "Haßtiraden" haben die C++ler angefangen ...
Lies nochmal genauer.
Insbesondere die erste Seite und Didaktiker5s Eröffnung.
-
Ich mag das nicht nochmal alles lesen.
Ich verwende C und nicht C++ und es wird erst einmal so bleiben.
Die Gründe dafür ? Ich schätze mal 1 Jahr um es zu beurteilen.Ich lebe vom Programmieren und habe dieses Jahr nicht.
Mag sein das Script-Kiddies die Zeit haben ... Ergebnisse ? Keiner
hat hier mal aussagefähige Benchmarks oder so aufgeführt (da zähle
ich auch die Entwicklungszeit hinzu).
-
Ich mag das nicht nochmal alles lesen.
Du solltest nur die erste Seite lesen, da sie deine vorherige Aussage widerlegt.
Ich lebe vom Programmieren und habe dieses Jahr nicht.
Hier fehlt doch was.
-
lookwindows schrieb:
Nur war die ursprüngliche Frage nicht "Warum programmiert ihr in C++?" sondern "Warum programmiert ihr in C?" Meine Antwort dazu:
- kein unötiger Schnickschnack
Definiere Schnickschnack.
lookwindows schrieb:
- ich kann C vollständig in relativ kurzer Zeit lernen
Konnte ich bei C++ auch, ging schneller, als C zu lernen.
lookwindows schrieb:
- C Runtime unter Linux schneller als C++
- Hab Windows, kann da keinen Unterschied feststellen, ob ich z.B. memmove nun unter C oder C++ aufrufe. Wenns da einen Unterschied gibt, sollte mal der entsprechende Compiler für Linux überarbeitet werden.
lookwindows schrieb:
- Es gibt viel mehr C-Programmierer als C++ler
Historisch bedingt, C war vor C++ da, bei uns in der Firma gibts allerdings nur sehr wenige C und sehr viele C++ Programmierer, aber das kann man nicht verallgemeinern.
lookwindows schrieb:
- Programmfluß ist im Gegensatz zu C++ nachvollziehbar
Schon klar, wenn man C++ nicht kann.
[IRONIE]
Ich kann kein F#, deshalb ist für mich der Programmfluss eines F# Programs nicht nachvollziehbar und somit ist F# schlecht.
[/IRONIE]lookwindows schrieb:
- Um Daten und Zugriffsfunktionen zusammenzufassen brauche ich keine Klassen in C.
Klassen gibts in C ja auch gar nicht.
lookwindows schrieb:
- Exceptions funktionieren in C++ nicht wirklich immer wie hier irgendwo im Forum schon von C++lern beschrieben wurde, also muss man eh was Eigenes schreiben oder eine Lib nutzen.
Ach nein, komisch, bei mir tun sie immer das, was sie sollen, vielleicht sitzt dann das Problem ja vor dem Monitor?
lookwindows schrieb:
Auf Deutsch wenn ich C++ programmieren muss könnt ich mir jedesmal den Finger in den Hals stecken.
Jetzt hast du doch einen Grund für den Einsatz von C++, es sorgt bei dir immerhin für eine schlanke Figur. Meinen Glückwunsch.
-
Burkhi schrieb:
lookwindows schrieb:
- C Runtime unter Linux schneller als C++
- Hab Windows, kann da keinen Unterschied feststellen, ob ich z.B. memmove nun unter C oder C++ aufrufe. Wenns da einen Unterschied gibt, sollte mal der entsprechende Compiler für Linux überarbeitet werden.
memmove ist natürlich gleich. Ich weiß auch nicht, welche runtime da gemeint ist.
-
lookwindows schrieb:
- Exceptions funktionieren in C++ nicht wirklich immer wie hier irgendwo im Forum schon von C++lern beschrieben wurde, also muss man eh was Eigenes schreiben oder eine Lib nutzen.
Die gute Exception-Lib...
-
Scheppertreiber schrieb:
Ich lebe vom Programmieren und habe dieses Jahr nicht.
Lustigerweise spart dir das 1 Jahr (wenn denn soviel Notwendig ist) lernen einer anderen Sprache (muss ja nicht C++ sein) deutlich mehr als 1 Jahr auf dein ganzes Leben gesehen.
Mag sein das Script-Kiddies die Zeit haben ... Ergebnisse ? Keiner
hat hier mal aussagefähige Benchmarks oder so aufgeführt (da zähle
ich auch die Entwicklungszeit hinzu).C ist, wenn du die reine Zeit effizienz des Programmieres betrachtest eine ziemlich schlechte Sprache... Es hat andere Vorteile, aber zeiteffizienz gehört da wirklich nicht dazu.
Warum fällt es vielen Leuten so schwer eine Sprache sachlich zu analysieren. Es gibt Situationen wo ich C verwende. Es gibt Situationen wo ich C++ verwende. Es gibt auch Situationen wo ich Java oder C# verwende. Ich kann diese Situationen meistens gut begründen - manchmal ist es aber auch ein Bauchgefühl. Dazu muss ich aber nicht sagen C ist dumm und stinkt, weil ich hier Java für besser halte. Oder C++ ist dumm und stinkt, weil ich hier Python für besser halte.
Ich denke das hat einfach mit dem Tellerrand zu tun über den man gelegentlich schauen sollte...
-
Shade Of Mine schrieb:
.... Es gibt Situationen wo ich C verwende. Es gibt Situationen wo ich C++ verwende. Es gibt auch Situationen wo ich Java oder C# verwende. Ich kann diese Situationen meistens gut begründen - manchmal ist es aber auch ein Bauchgefühl. Dazu muss ich aber nicht sagen C ist dumm und stinkt, weil ich hier Java für besser halte. Oder C++ ist dumm und stinkt, weil ich hier Python für besser halte.
Ich denke das hat einfach mit dem Tellerrand zu tun über den man gelegentlich schauen sollte...
Genauso sieht es aus. Wenn ich für einen Mkrocontroller keinen Java, C++ oder was weiss ich Compiler bekomme, dann muss ich eben das nehmen, was es dafür gibt, oder ist lasse es sein. Aber deswegen kann ich doch nicht sagen, dass das Teil "Scheisse" ist.
Treiber für Windows müssen meines Wissens ja auch in C geschrieben werden.
-
Shade Of Mine schrieb:
Scheppertreiber schrieb:
Ich lebe vom Programmieren und habe dieses Jahr nicht.
Lustigerweise spart dir das 1 Jahr (wenn denn soviel Notwendig ist) lernen einer anderen Sprache (muss ja nicht C++ sein) deutlich mehr als 1 Jahr auf dein ganzes Leben gesehen.
Mag sein das Script-Kiddies die Zeit haben ... Ergebnisse ? Keiner
hat hier mal aussagefähige Benchmarks oder so aufgeführt (da zähle
ich auch die Entwicklungszeit hinzu).C ist, wenn du die reine Zeit effizienz des Programmieres betrachtest eine ziemlich schlechte Sprache... Es hat andere Vorteile, aber zeiteffizienz gehört da wirklich nicht dazu.
Erzähl doch nicht so ein Mumpiz, wenn ich für jeden Scheiß gleich mit Klassen anfangen ist das sehr ineffizient und da muss mein Projekt schon ziemlich groß sein damit sich OOP auch lohnt. Wenn man C++ so programmiert wie es hier immer verlangt wird ist es alles andere als Ressourcensparend und effizient.
Shade Of Mine schrieb:
Warum fällt es vielen Leuten so schwer eine Sprache sachlich zu analysieren. Es gibt Situationen wo ich C verwende. Es gibt Situationen wo ich C++ verwende. Es gibt auch Situationen wo ich Java oder C# verwende. Ich kann diese Situationen meistens gut begründen - manchmal ist es aber auch ein Bauchgefühl. Dazu muss ich aber nicht sagen C ist dumm und stinkt, weil ich hier Java für besser halte. Oder C++ ist dumm und stinkt, weil ich hier Python für besser halte.
Ich denke das hat einfach mit dem Tellerrand zu tun über den man gelegentlich schauen sollte...
Da wo Systemnähe gefragt ist nimmt man C, für den Rest gibt es andere Sprachen. Aber C++ würde ich nie und nimmer einsetzten, es ist einfach eine total verfrickelte Sprache. Gute C++ Programmierer zu finden ist bestimmt nicht einfach und das wäre für mich als Chef schon ein Nogo für die Sprache.
Ich verstehe eh nicht was sich hier C++ler einmischen. Wir mögen die Sprache aus guten Gründen nicht so wie sie viele andere Menschen auch nicht mögen. Da könnt noch so viele objektive Gründe nenne warum C++ so toll das sie fast mit PHP von der Popularität mithalten kann, trotzdem mögen wir sie nicht. Und ja viele haben C++ auch ausprobiert und finden es trotzdem kacke.
Vielleicht kapiert ihr es ja so. Früher gab es Betamax und VHS als Videotechnik Betamax war technisch viel besser aber die Leute haben VHS gekauft. OSX ist auch das bessere System ich bleibe bei Linux/Windows und PCs. C++ hat theoretisch auch die besseren Karten ich finde es sehr anstrengend C++ zu programmieren und lasse es und habe es noch nie bereuen müssen. Es gibt nicht einen einzigen Grund warum ich jemals eine Zeile C++ schreiben müsste, also warum soll ich mir das Flickwerk antun?
-
cpphuster schrieb:
Shade Of Mine schrieb:
Scheppertreiber schrieb:
Ich lebe vom Programmieren und habe dieses Jahr nicht.
Lustigerweise spart dir das 1 Jahr (wenn denn soviel Notwendig ist) lernen einer anderen Sprache (muss ja nicht C++ sein) deutlich mehr als 1 Jahr auf dein ganzes Leben gesehen.
Mag sein das Script-Kiddies die Zeit haben ... Ergebnisse ? Keiner
hat hier mal aussagefähige Benchmarks oder so aufgeführt (da zähle
ich auch die Entwicklungszeit hinzu).C ist, wenn du die reine Zeit effizienz des Programmieres betrachtest eine ziemlich schlechte Sprache... Es hat andere Vorteile, aber zeiteffizienz gehört da wirklich nicht dazu.
Erzähl doch nicht so ein Mumpiz, wenn ich für jeden Scheiß gleich mit Klassen anfangen ist das sehr ineffizient und da muss mein Projekt schon ziemlich groß sein damit sich OOP auch lohnt. Wenn man C++ so programmiert wie es hier immer verlangt wird ist es alles andere als Ressourcensparend und effizient.
Erzähl doch nicht so ein Mumpiz, keiner soll für jeden Scheiß gleich mit Klassen anfangen. Wir sind in C++ nicht bei Java, wo man das tun muß. OOP lohnt sich schon froh, wie die stream-Bibliothek von C beweist.
Bleib mal nicht bei dem Scheinargument stehen, C++-Code sei automatisch langsam. Und auch mit dem Abweichen, daß Du sagst, C++ sei automatisch langsam, wenn man fehlerfreien oder "hübschen" C++-Code schreibt, wird es nicht richtiger.
Die exe wird größer sein, weil man gerne Speicher bezahlt, um Geschwindigkeit zu kaufen, nimm es meinetwegen nicht für embedded systems. Aber das war auch schon alles.
-
cpphuster schrieb:
Es gibt nicht einen einzigen Grund warum ich jemals eine Zeile C++ schreiben müsste
Wird sich wohl schwer vermeiden lassen, wenn du C schreibst.
-
cpphuster schrieb:
Ich verstehe eh nicht was sich hier C++ler einmischen.
Weil Ihr es traditionell nicht schafft, zu sagen, daß Ihr C mögt, ohne als Begründung schauerliche Lügen über C++ zu erzählen.
cpphuster schrieb:
C++ hat theoretisch auch die besseren Karten ich finde es sehr anstrengend C++ zu programmieren und lasse es und habe es noch nie bereuen müssen. Es gibt nicht einen einzigen Grund warum ich jemals eine Zeile C++ schreiben müsste, also warum soll ich mir das Flickwerk antun?
So geht's. Das ist doch ein gutes Glaubensbekenntnis für Eure kleinen Truppe.