Warum wird C mehr benutzt als C++?



  • _jsb schrieb:

    Ich denke das Objective-C, durch z.B. IPhone-Apps, einiges an Zulauf für sich verzeichen wird und bin mal auf die Entwicklung gespannt. Vielleicht ist das ja wirklich mal eine würdige OOP-Erweiterung für C.

    Yep, hat mir gefallen, was ich da gesehen habe und gibt's auch als Objective Pascal. Man hat nicht versucht, OOP in eine C-like- Syntax zu pressen, sondern ganz klar einen Extender drangebaut. Einzig ärgerlich, daß ich nichts für meine Controller gefunden habe.

    _jsb schrieb:

    ... Das Original C-Programm hatte ca. 5700 Zeilen (147 KB) und meines dann nur noch 1600 Zeilen (51 KB). ...

    Ich denke es lässt sich nicht pauschal sagen ob mit anderen Programierpradigmen weniger oder auch leichter zu versteheneder Quellcode entsteht ... Dadurch das C so schlank gehalten wurde ist es relativ einfach zu lernen und auch auf fast jeder Plattform verfügbar und somit auch immer noch populär. Das es nicht sinnvoll ist alles in C zu machen ... 😉

    Wenn das Konzept blöd ist, hilft keine Programmiersprache oder Paradigma. Vielleicht war auch einfach keine Zeit oder Geld mehr für's Refactoring drin.

    Wenn man's richtig anfängt, kriegt man auch eine GUI in Assembler hin (sh. GEOS) - ich wür's mir nicht antun.

    Was bei dem obig zitierten Fallbeispiel los war, ist leicht zu erklären: Die haben eine firmeneigene Vektorbibliothek zugelinkt, ohne zu beachten, daß nur orthogonale Berechnungen stattfinden werden, was dazu führt, daß weitgehend mit 0ern gefüllte Matrizen mulipliziert werden, während ich nur mit den interessanten Vektorkomponenten hantiert habe. Daß mein Code "nur" zehnmal so schnell ist, schulde ich dem Umstand, daß ich portabilitätshalber nicht RAM- basierend arbeiten wollte, sondern Filebasierend.

    Es gibt keinen Maßanzug von der Stange, die Code- Wiederverwerterei führt oft zu grotesken Ergebnissen. Daß durch Konzepte wie die STL dies dem C++- Programmierer näher liegt mag durchaus zu schlechten Ergebnissen und Ruf der Sprache beitragen, ist aber sicher auch in C möglich.

    Ganz sicher zum schlechten Ruf beitragen werden Mods wie Volkard, die sich in nicht-C++ - Foren aufführen wie die offene Hose:
    Mal eine Provokation nach dem Muster "arrogante Nullmeldung" abdrücken, embedded- Proggern Arroganz und Inkompetenz unterstellen und mangels Argumenten Beleidigungen wie "Idiot" hinterherwerfen ... also, ich weiß nicht.

    Ja, so lieben wir unsere C++ Profis, die gelebte Reklame für die Features einer Sprache. Aber eigentlich werden Trolle hier eher gekickt ... oder? 😃



  • pointercrash() schrieb:

    Ganz sicher zum schlechten Ruf beitragen werden Mods wie Volkard, die sich in nicht-C++ - Foren aufführen wie die offene Hose:
    Mal eine Provokation nach dem Muster "arrogante Nullmeldung" abdrücken, embedded- Proggern Arroganz und Inkompetenz unterstellen und mangels Argumenten Beleidigungen wie "Idiot" hinterherwerfen ... also, ich weiß nicht.

    Ja, so lieben wir unsere C++ Profis, die gelebte Reklame für die Features einer Sprache. Aber eigentlich werden Trolle hier eher gekickt ... oder? 😃

    Zerst generalisiert hat die C++-Bashing-Fraktion, die allen C++-Programmierern unterstellt, nur Mist und lahme Programme zu bauen, oder? Und daß fricky nach Kosenamen bettelt, da bin ich einfach zu weichherzig und gebe ihm gelegentlich welche.
    Außerdem steige ich immer erst ein, nachdem irgendwelche Banausen völlig unhaltbare Gerüchte über C++ verbreiten, und eine an sich feine Sprache schlechtreden, ohne davon Ahnung zu haben.



  • pointercrash() schrieb:

    Daß durch Konzepte wie die STL dies dem C++- Programmierer näher liegt mag durchaus zu schlechten Ergebnissen und Ruf der Sprache beitragen, ist aber sicher auch in C möglich.

    Ganz sicher zum schlechten Ruf beitragen werden Mods wie Volkard, die sich in nicht-C++ - Foren aufführen wie die offene Hose:
    Mal eine Provokation nach dem Muster "arrogante Nullmeldung" abdrücken, embedded- Proggern Arroganz und Inkompetenz unterstellen und mangels Argumenten Beleidigungen wie "Idiot" hinterherwerfen ... also, ich weiß nicht.

    👍



  • pointercrash() schrieb:

    Es gibt keinen Maßanzug von der Stange, die Code- Wiederverwerterei führt oft zu grotesken Ergebnissen.

    In C nennt sich das "Plattformunabhängerei". 🙂



  • Th69 schrieb:

    Ein Ziel bei meiner ganzen Programmierung war und ist jedenfalls die Reduzierung von (unnötigem) Programmcode, und da habe ich mich oft über C geärgert.
    Als Beispiel sei mal meine Diplomarbeit genannt, wo ich bestehendes Programm (in C) zu einer funktionalen Programmiersprache umgesetzt hatte. Das Original C-Programm hatte ca. 5700 Zeilen (147 KB) und meines dann nur noch 1600 Zeilen (51 KB). Allein das Hauptprogramm des C-Codes bestand aus ca. 1000 Zeilen mit drei ineinander verschachtelten Schleifen sowie diversen selbst entwickelten Strukturen für Listen, Bäume, Hash-Maps etc.

    warum eigentlich? für allerwelts-datenstrukturen wie listen usw. gibt auch für C genügend fertige und getestete implementationen. C wird zu unrecht vorgeworfen, dass man jedesmal 'das rad neu erfinden' muss.

    pointercrash() schrieb:

    Ganz sicher zum schlechten Ruf beitragen werden Mods wie Volkard, die sich in nicht-C++ - Foren aufführen wie die offene Hose:
    Mal eine Provokation nach dem Muster "arrogante Nullmeldung" abdrücken, embedded- Proggern Arroganz und Inkompetenz unterstellen und mangels Argumenten Beleidigungen wie "Idiot" hinterherwerfen ... also, ich weiß nicht.

    naja, es ist nun mal nicht leicht, mitzukriegen, wie etwas, in das man viel zeit und kraft investiert und dem man eine grosse zukunft vorhergesagt hat, so langsam den bach runtergeht und immer mehr an akzeptanz verliert. wenn dann noch welche darauf rumhacken, passieren schon mal, vor lauter frust, ein paar aussetzer und man pfeift auf jede sachlichkeit. so'n verhalten ist sogar ziemlich normal und menschlich.
    🙂



  • Mich nervt nur Dein Einsatz überall, hunderte von threads entführst Du mit deinem C++-Bashing. Du hast auch mit C viel mehr Gründe, traurig zu sein, weil die Sprache ein mickriges Schattendasein führt. Anscheinend bist Du auch sehr wütend und mußt immer auf den armen großen Bruder einschlagen.



  • volkard schrieb:

    Mich nervt nur Dein Einsatz überall, hunderte von threads entführst Du mit deinem C++-Bashing.

    nö, das liegt eher an diesen c++ 'viral advertising' aktivisten, die c++-freie threads mit sätzen wie: nimm doch c++, c++ ist besser als ...,c++ ist ja so toll weil..., usw. attackieren. dass ich sowas nicht unkommentiert stehen lassen kann, ist doch kein wunder.

    volkard schrieb:

    Du hast auch mit C viel mehr Gründe, traurig zu sein, weil die Sprache ein mickriges Schattendasein führt. Anscheinend bist Du auch sehr wütend und mußt immer auf den armen großen Bruder einschlagen.

    als pc-only coder kommts dir vielleicht so vor, als würde C ein schattendasein fristen, aber dem ist nicht so. und nö, ich verwende zwar C, finde es an sich auch eine gelungene sprache, aber wenn ab morgen sämtliche entwicklungskits statt C turbo-pascal (oder wass-weiss-ich) als grundlage hätten, dann wär mir das auch egal. jedenfalls: grosser und kleiner bruder leben in verschiedenen welten. von daher gibt es keinen grund, auf den grossen böse zu sein, weil er dem kleinen sowieso nicht schaden kann. bis jetzt endete fast jeder versuch des grossen, dem kleinen das territorium streitig zu machen, in einer schmählichen niederlage.
    🙂



  • @volkard: Wenn man nicht wüsste dass du hier moderierst würden Viele sich glatt diverse Synonyme für Inkompetenz Fachrichtung "übern Tellerrand schauen" für dich ausdenken. C und ein Schattendasein tztztz...

    Ich persönlich habe auch schon versucht mich mit C++ anzufreunden aber finde es einfach nur hässlich und unötig kompliziert. Es reicht schon wenn Informatik eine Wissenschaft ist, da muss es nich auch noch die Programmiersprachen sein. Für mich ist das Lernen von C++ reine Resourcenveraschwendung, brauchen tut es keiner da gibt es viele Werkzeuge die schneller zum Ziel führen wenn man unbedingt OOP etc braucht.



  • @volkard: Wenn man nicht wüsste dass du hier moderierst würden

    Hier? Nein, soweit ist es noch nicht.



  • Das ist Alterssturheit bei volkard. Der ist mit C++ verheiratet und findet alle anderen hässlich.



  • onmyshoulder schrieb:

    Das ist Alterssturheit bei volkard. Der ist mit C++ verheiratet und findet alle anderen hässlich.

    Du verkennst die Lage. Meistens sorgt Alterssturheit dafür, daß Leute, die 10 oder mehr Jahr lang C verwendet hatten, nicht mehr dazulernen wollen und C++ nie eingeführt wird. Warum kommt mir jetzt fricky in den Sinn? Innerhalb von C++ bin ich einer, der besonders viele Sachen häßlich findet, aber reines veraltetes C ist in den allermeisten Verwendungszwecken definitiv häßlicher. 😋
    Das bringt mich aber gar nicht dazu, immer, wenn jemand was in C machen will, rumzublöken, daß C kacke sein. Gelegentlich helfe ich auch im C-Forum. Die Streit-Initiative geht stats von anderen aus, die rumblöken, daß C++ kacke sei. Nehmen wir mal diesen "Java oder .NET"-Thread. Jemand schlägt vor, Qt (und damit C++) zu nehmen. Und fricky hat nichts besseres zu tun, als erstmal ein Riesenfaß aufzumachen, in dem er tausende von scheinbaren Nachteilen von C++ aufzählt. Wenn er C vorschlagen will, soll er's doch tun. Aber warum immer diese Angriffe?



  • volkard schrieb:

    Nehmen wir mal diesen "Java oder .NET"-Thread. Jemand schlägt vor, Qt (und damit C++) zu nehmen. Und fricky hat nichts besseres zu tun, als erstmal ein Riesenfaß aufzumachen, in dem er tausende von scheinbaren Nachteilen von C++ aufzählt. Wenn er C vorschlagen will, soll er's doch tun. Aber warum immer diese Angriffe?

    in einem thread, in dem es um Java v. .NET geht, ist C genauso unangebracht wie C++. ich käme nie im leben auf die idee, dort vorzuschlagen, man solle C nehmen. sowas wäre ziemlich absurd (ausser einer hätte nach 'ner JNI-erweiterung gefragt). dass fass haben diese 'c++ ist besser trolle' aufgemacht. mein fehler war allerdings, darauf einzugehen. das war überflüssig, denn wer Java oder .NET verwendet, würde sich sicherlich, auch ohne mein zutun, nicht in die C++-steinzeit beamen lassen.
    🙂



  • Warum stehst du nicht einfach drüber und reagierst nicht darauf? Dafür wäre mir die Zeit zu schade, um ehrlich zu sein.



  • ;fricky schrieb:

    dass fass haben diese 'c++ ist besser trolle' aufgemacht.

    Vorher hat jemand BASIC vorgeschlagen und Du bist nicht wie toll drauf losgegangen. Das scheint dafür zu sprechen, daß Du einen speziellen C++-Hass vorträgst. Warum nur?

    ;fricky schrieb:

    mein fehler war allerdings, darauf einzugehen. das war überflüssig, denn wer Java oder .NET verwendet, würde sich sicherlich, auch ohne mein zutun, nicht in die C++-steinzeit beamen lassen.

    Es ist generell überflüssig, dieses Faß aufzumachen. Finde Dich damit ab, daß in der PC-Welt es durchaus C++-Anhänger gibt. Übrigens gibt es dieses lustige C++/CLI, das ist beinahe C++ und hat das ganze .NET drin.



  • Solche Fragen hatten wir doch schon öfter von Usern, die immer nur das aller Neueste nutzen wollen.

    C wie C++ bieten doch beide die Möglichkeit Quellcode so zu schreiben das er einfacher oder schwieriger nachzuvollziehen ist.

    Schwer zu durchschauender Code zeugt vom "Können" des Programmierers?



  • Keins ist besser. Es kommt auf die Phantasie des Programmautors und den Algorythmus
    an. Erfahrungen in der gewählten Sprache vorrausgesetzt. Man kann Pfusch mit jeder
    Programmiersprache anstellen - am einfachsten geht das mit C++.

    Für mich brächte C++ keine Vorteile, ich müßte mich da auch monatelang reinwühlen -
    die Zeit habe ich nicht. In der Zeit kann ich besser Geld verdienen als eine Sache
    mit ungewissem Ausgang einzugehen.

    Wenn schon OO dann etwas, das weiterentwickelt ist. Der Entwurf ist von 1979 (!),
    das als Hype zu bezeichnen ist lächerlich. In 30 (!) Jahren hätte sich das entwickeln
    können. So ist das eine Schutthalde die sich in 30 Jahren organsisch entwickelt hat
    (so wie der Mock im Abfallkasten. Irgendwann riecht der streng und moddert).



  • _jsb schrieb:

    Mal davon abgesehen das OOP nur in ganz wenigen großen Projekten wirklich Sinn macht.

    Das musst du mir mal erklaeren. In wieweit ist ein gutes OOP Design nur in "wenigen großen Projekten" sinnvoll und wieso ist es in der Mehrzahl an Projekten nicht angebracht?



  • volkard schrieb:

    ;fricky schrieb:

    dass fass haben diese 'c++ ist besser trolle' aufgemacht.

    Vorher hat jemand BASIC vorgeschlagen und Du bist nicht wie toll drauf losgegangen. Das scheint dafür zu sprechen, daß Du einen speziellen C++-Hass vorträgst. Warum nur?

    mit BASIC war bestimmt VB gemeint, oder? das ist, nach C#, die zweite oft benutzte sprache unter .NET, also in diesem thread nicht ganz am thema vorbei. und klar hasse ich C++, weil ich einige male mitbekommen habe, wie leute voll in's C++klo gegriffen haben. siehe dazu weiter oben und auch pointercrash()s erfahrungsbericht.

    ;fricky schrieb:

    Übrigens gibt es dieses lustige C++/CLI, das ist beinahe C++ und hat das ganze .NET drin.

    c++/cli finde ich nicht so schlimm. es ist eine von vielen .NET-sprachen und dient wahrscheinlich nur dem zweck, bestehenden C und C++ code unter der .NET plattform zum laufen zu bewegen.
    🙂



  • volkard schrieb:

    onmyshoulder schrieb:

    Das ist Alterssturheit bei volkard. Der ist mit C++ verheiratet und findet alle anderen hässlich.

    Du verkennst die Lage. Meistens sorgt Alterssturheit dafür, daß Leute, die 10 oder mehr Jahr lang C verwendet hatten, nicht mehr dazulernen wollen und C++ nie eingeführt wird.

    Und wieder wird C++ einfach so als logische Nachfolge von C definiert. Vielleicht setzt man C++ auch aus anderen Gründen nicht ein? Vielleicht hat man ernsthafte Schwierigkeiten Gründe für C++ zu finden? Ein bißchen mehr Reflexion könnte manchmal nicht nur C++ nicht schaden...



  • Scheppertreiber schrieb:

    Für mich brächte C++ keine Vorteile, ich müßte mich da auch monatelang reinwühlen -
    die Zeit habe ich nicht. In der Zeit kann ich besser Geld verdienen als eine Sache
    mit ungewissem Ausgang einzugehen.

    c++ nicht, denn 'c++ considered harmful', aber wenn du nicht gerade mikrocontroller, treiber und ähnliches low-level zeugs programmierst, ist C auch nicht das ultimative mittel der wahl. für dicke PCs gibts weitaus praktischere und sicherere/stabilere sprachen und umgebungen, mit denen du schneller ans ziel kommst, weil erstens die programmiersprachen sehr einfach und logisch aufgebaut sind (ok, ist C ja auch) und zweitens, dir eine unglaubliche fülle an existierenden libraries zur verfügung steht, was du willst, von pdf-erzeugung über eingebettete DBMS bis hin zu benutzerinterfaces, die wahlweise in einem fenster oder einer webseite darstellbar sind, ist alles dabei. also mach uns keine schande und erzähle, dass du dich nicht in was neues einarbeiten willst, denn sonst kommt wieder einer und sülzt rum: 'die doofen c-programmierer sind irgendwo stehengeblieben und wollen nix neues lernen'.

    Scheppertreiber schrieb:

    Wenn schon OO dann etwas, das weiterentwickelt ist. Der Entwurf ist von 1979 (!),
    das als Hype zu bezeichnen ist lächerlich. In 30 (!) Jahren hätte sich das entwickeln
    können. So ist das eine Schutthalde die sich in 30 Jahren organsisch entwickelt hat
    (so wie der Mock im Abfallkasten. Irgendwann riecht der streng und moddert).

    vollkommen richtig, c++ ist übelste programmierer-steinzeit. mit c++0x bekommt der faustkeil jetzt 'nen morschen holzgriff verpasst, aber wenn das konzept vorher schon marode war, helfen solche flickschustereien auch nicht viel.
    🙂


Anmelden zum Antworten