Welche Vorteile hat C, was kann man an C loben?



  • c ist standardisiert. das bietet eine gewisse sicherheit bei portierungen.

    naja soweit die theorie, wollen wir uns mal nix vormachen, die praxis sieht da etwas anders aus.

    aber nichts desto trotz mag ich c trotzdem, hab mal mit basic angefangen und bin froh nicht mehr damit zu programmieren, wie gesagt in c kann man so gut wie alles machen, und das sehr schnell.
    aber mit jeder sprache kann man doch alles machen, klar wenn man in basic n spiel coded würde es end langsam werden, aber theoretisch wäre es doch möglich.
    somit wäre der vorteil die geschwindigkeit

    mfg
    blut-lecker



  • blut-lecker schrieb:

    aber mit jeder sprache kann man doch alles machen

    Ach ja!?

    Greetz, Swordfish



  • ich kann mich auch täuschen, aber ich meine, das in irgendeinem buch schonmal gelesen zu haben, aber wenn es falsch ist lasse ich mich gerne korrigieren.

    mfg
    blut-lecker



  • Mit perl zB. den BIOS-ROM auszulesen dürfte IMHO schwierig werden.

    Greetz, Swordfish



  • swordfish: sag das nicht, ich moechte wetten, irgendein irrer langhaariger pinguinlover ( 😉 ) hat dafuer schon den kernel gehackt und ein perl modul zum interface geschrieben.

    wenn du nur einen hammer hast, fangen alle probleme an auszusehen wie naegel.

    C auf embedded ist prima, aber C als z.b. KI-sprache ist hirngeschaedigt.

    ~die "staerke" von c ist nun mal die befriedigung von kontrollfreaks (ich bezeichne mich als teilzeitkontrollfreak). solche leute sind per definition nicht in der lage, die komplexitaet, die sie erschaffen, angemessen zu managen. code faengt an, gross und schwabbelig und traege zu werden, weil der kontrollfreak seine option niemals aufgeben will, alles und immer bis ins feinste detail zu steuern.
    wenn der boss einer firma dem praktikanten jedes mal auf die flossen guckt, waehrend der mal wieder nen pott kaffee ansetzt,... ja was denn dann? dann bleiben wichtige, grosse entscheidungen eben liegen und alles tritt weiter auf der stelle.~



  • c.rackwitz schrieb:

    swordfish: sag das nicht, ich moechte wetten, irgendein irrer langhaariger pinguinlover ( 😉 ) hat dafuer schon den kernel gehackt und ein perl modul zum interface geschrieben.

    Klappe, 'witz, ich hab' lange haare und sitz 'grad vor emacs... 😉

    Ich meinte damit, es sei mit blankem perl nicht möglich.

    Greetz, Swordfish



  • Swordfish schrieb:

    Mit perl zB. den BIOS-ROM auszulesen dürfte IMHO schwierig werden.

    Greetz, Swordfish

    Swordfish schrieb:

    Ich meinte damit, es sei mit blankem perl nicht möglich.

    Greetz, Swordfish

    Wenn ich mich nicht täusche ist sowas auch nicht mit blankem (Ansi-)C möglich.
    Ansi-C kann schließlich nichts außer Daten einzulesen sie zu bearbeiten
    und wieder auszugeben. Für Dinge wie Netzwerk, Grafik... braucht man
    auch wieder spezielle Bibliotheken.

    Was kann man an C loben?
    Ich würde sagen das man mit C alles unter Kontrolle hat (so glaubt man zumindest).



  • Storm.Xapek.de: linux netzwerk/grafiktreiber sind in c geschrieben, weil man in c auch auf hardware zugreifen kann (obgleich dazu im kernelmode irgendwas eventuell assemblermaessiges ausgefuehrt werden muss). sowas koennte als bibliothek gelten, aber nichtsdestotrotz gehts. du kannst ja schliesslich keinem zumuten, treiber in assembly zu schreiben. nicht mal unter windows ist das so.

    > Ich würde sagen das man mit C alles unter Kontrolle hat (so glaubt man zumindest).
    q.e.d.



  • c.rackwitz schrieb:

    [...], aber nichtsdestotrotz gehts.

    Danke.

    Storm.Xapek.de schrieb:

    Ich würde sagen das man mit C alles unter Kontrolle hat (so glaubt man zumindest).

    FULL ACK

    Greetz, Swordfish

    ~edit by c.rackwitz: das war Storm.Xapek.de, nicht ich :)~



  • Swordfish schrieb:

    Klappe, 'witz, ich hab' lange haare und sitz 'grad vor emacs... 😉

    ich hab' auch lange haare aber sass im ganzen leben keine 10 minuten vor emacs 😃

    zum thema: assemblerfans würden aber jetz aber ungläubig gucken, wenn denen einer erzählt man hätte mit einer hochsprache (c) alles unter kontrolle...



  • net schrieb:

    assemblerfans würden aber jetz aber ungläubig gucken, wenn denen einer erzählt man hätte mit einer hochsprache (c) alles unter kontrolle...

    Echte Assembler-Fans denken erst, sie haben alles unter Kontrolle, wenn sie Hammer und Lötkolben in den Händen halten.

    Greetz, Swordfish





  • c absteiger schrieb:

    C ist doch nur was für Masochisten. 👎

    Oder etwas für Leute, die sich intensiv mit einer Sprache befassen wollen, anstatt stupiden Syntaxzucker runterzuleiern, fernab von jeglichem Codedesign. 🙂

    Obwohl ich selbst noch einiges mit C zu tun habe, kann ich keine wirklichen Vorteile sehen. Zumindest wenn man C++ in den Vergleich mit einbezieht. Der einzige Vorteil von C liegt in der starken Verbreitung, und dass praktisch so gut wie für jedes relevante System Compiler existieren. Wurde ja auch schon erwähnt. Hat aber eben direkt mit der Sprache, also der reinen Spezifikation, nicht viel zu tun.



  • Swordfish schrieb:

    Echte Assembler-Fans denken erst, sie haben alles unter Kontrolle, wenn sie Hammer und Lötkolben in den Händen halten.

    Wofür denn den Hammer? Entsorgung gehört doch normalerweise nicht zu Planung. 😉

    Bezüglich man kann mit jeder Sprache alles machen. Das wäre warscheinlich richtig, wenn sich alle Sprachen compilieren ließen und alle Compiler eine gemeinsame ABI benutzten würden. Dann wäre es nämlich wirklich egal.



  • groovemaster schrieb:

    Obwohl ich selbst noch einiges mit C zu tun habe, kann ich keine wirklichen Vorteile sehen. Zumindest wenn man C++ in den Vergleich mit einbezieht.

    c++ ist aufgemotztes c. das ist zwar auf den ersten blick ein segen aber durch solche faxen wie virtuelle funktionen, operator/function overloading, default parameter, selbstdefinierte operatoren wie z.b. >> usw. kann man sehr schnell völlig unverständlichen code produzieren. ausserdem kann es passieren, dass c++ programme einen enormen speicherhunger entwickeln und riesige executables erzeugen wenn man nicht genau aufpasst. der vorteil einer objektorientierten sprache (den benutzer von maschinenspezifischen dingen abzuschirmen) verwandelt sich schnell in einen nachteil. deshalb wird auf kleinstcomputern vorzugsweise c ohne ++ eingesetzt...



  • net schrieb:

    aber durch solche faxen wie virtuelle funktionen,...der vorteil einer objektorientierten sprache...

    😮 Wenn virtuelle Funktionen (die es im übrigen genaugenommen
    gar nicht gibt) für dich Faxen sind, dann würde ich gerne mal
    wissen, wie bei dir OO-Sprachen funktionieren sollen! 😕



  • Javaner schrieb:

    ...dann würde ich gerne mal
    wissen, wie bei dir OO-Sprachen funktionieren sollen!

    so wie java. java finde ich toll 👍



  • Danke für das ironische Antwort! 😃

    Aber ich find' nur Smalltalk geil...

    Java ist das kleiner Übel. 🙂



  • Javaner schrieb:

    Danke für das ironische Antwort! 😃

    das war nicht ironisch. ich mag java wirklich. java ist nicht so'ne wollmilchsau wie c++. aber smalltalk ist bestimmt auch nett, ich hab' nur leider noch nie was damit gemacht...



  • net schrieb:

    c++ ist aufgemotztes c.

    Nope. C und C++ sind strikt voneinander zu trennen. Gemeinsamkeiten rühren lediglich daher, dass C als Basis diente. Nicht mehr und nicht weniger. Genauso könnte man sagen, dass Java ein aufgemotztes (oder abgespecktes?) C++ ist. Genauso so ein Unsinn.

    net schrieb:

    das ist zwar auf den ersten blick ein segen aber durch solche faxen wie virtuelle funktionen, operator/function overloading, default parameter, selbstdefinierte operatoren wie z.b. >> usw. kann man sehr schnell völlig unverständlichen code produzieren.

    Gerade durch Sachen wie Operatorüberladung kann man sehr intuitiven Code schreiben, der leichter verständlich ist. Mir geht C++ da ehrlich gesagt noch nicht weit genug. Ich würde mir zB noch Properties wünschen. Aber das ist ein anderes Thema. Und was soll denn an virtuellen Funktionen oder Funktionsüberladung schlecht sein? Es gibt sogar Leute, die sich wundern, dass man in C keine Funktionen überladen kann. Vllt. kannst du ja mal ein paar konkrete Beispiele nennen, ansonsten kann man mit deiner Aussage nix anfangen.

    net schrieb:

    ausserdem kann es passieren, dass c++ programme einen enormen speicherhunger entwickeln und riesige executables erzeugen wenn man nicht genau aufpasst.

    Das liegt aber nicht an C++, sondern in erster Linie an der STL bzw. deren Implementation. Dass die alles andere als optimal ist, sehe wohl nicht nur ich so. Aber schliesslich zwingt dich niemand dazu, sie zu benutzen. Zumindest ich nicht. 🙂
    C hat dafür genauso Nachteile, ich denke da zB nur an den ganzen ...printf/...scanf Hickhack. Typsicherheit ade, und willkommen ihr Bufferoverruns!

    net schrieb:

    der vorteil einer objektorientierten sprache (den benutzer von maschinenspezifischen dingen abzuschirmen) verwandelt sich schnell in einen nachteil. deshalb wird auf kleinstcomputern vorzugsweise c ohne ++ eingesetzt...

    Nope. Das ist deshalb schon Unsinn, weil C++ keine rein objektorientierte Sprache ist. Und dass auf exotischen Systemen vorzugsweise C eingesetzt wird, liegt vielmehr daran, dass dort eher Compiler und andere Entwicklungstools verfügabr sind. Das wurde ja bereits gesagt.


Anmelden zum Antworten