warum gerade C ?



  • TactX schrieb:

    doomcalyptica schrieb:

    linux z.b. ist doch komplett in C

    Gewürzt mit einer kleinen Brise Assembler, ja. Sowie die meisten anderen Kernel auch.

    Meiner is in C++ 😃



  • doomcalyptica schrieb:

    mal eine frage, wieso programmiert ihr gerade mit C ... es gibt doch auch C++ oder andere sprachen.

    der zweck heiligt die mittel. c gibt es für jeden popeligen controller. verständlich, denn die entwicklung eines c-compilers für eine neue plattform ist wesentlich einfacher als einen c++ compiler zu schreiben. einige bauen z.b. einfach den hier um: http://www.cs.princeton.edu/software/lcc/



  • C is ne nette Sprache, mit der man auch grosse Projekte realisieren kann wenn man bissl mitdenkt. (ja klar hat man dann mehere tausend funktionen, aber man hat ja auch mehere 1000 methoden in c++).
    Zu C sollt ich die glib erwaehnen,mit helfer typen/funktion fuer fast alles und sogar nem objekt system...sehr geil 🙂
    Nur zu tippen ist C manchmal mehr als C++ str+="x". vs g_string_append(str,"x")



  • Ich nehme an du hast das objektorientierte Paradigma nicht verstanden.



  • Warum ich C mag?

    1. C ist relativ maschinennahe.
    2. In C lassen sich lustige Pointerkonstruktionen bauen (geht z.B. in Java net)
    3. C ist relativ performant
    4. C ist einfach zu erlernen
    5. Es gibt bei den meisten Compilern auch die Möglichkeit Assembler-Direktiven mit in den C-Code einzubauen.
    6. C-Compiler gibt es für so gut wie jede Hard- und Softwareplattform
    7. C bietet mir einen Präprozessor, der mir in so manchen anderen Sprachen fehlt
    .
    .
    .

    Ok. Ich bin voreingenommen. Der Hauptgrund ist wohl: Weil ich C mag 😃



  • Da C++ ja von C abgeleitet ist treffen ja bekanntlich all deine Vorteile auch auf C++ zu. Einziger Vorteil ist dass es vielleicht mehr C Compiler gibt da sie leicher zu bauen und kleiner(?)sind aber heutzutage gibts ja auch massenhaft gute C++ Compiler und Speicherplatz ist auch kein Thema mehr. Ein großes Programm heutzutage prozedural programmieren ist totaler humbug. Aber wer es macht mir solls egal sein.



  • hackbert schrieb:

    Warum ich C mag?

    1. C ist relativ maschinennahe.
    2. In C lassen sich lustige Pointerkonstruktionen bauen (geht z.B. in Java net)
    3. C ist relativ performant
    4. C ist einfach zu erlernen
    5. Es gibt bei den meisten Compilern auch die Möglichkeit Assembler-Direktiven mit in den C-Code einzubauen.
    6. C-Compiler gibt es für so gut wie jede Hard- und Softwareplattform
    7. C bietet mir einen Präprozessor, der mir in so manchen anderen Sprachen fehlt
    .
    .
    .

    Ok. Ich bin voreingenommen. Der Hauptgrund ist wohl: Weil ich C mag 😃

    1.) Ja
    2.) Toller Grund 🙄
    3.) Ja (Gilt aber genauso, wenn richtig gemacht, für C++)
    4.) Einfach verglichen mit z.B. Java. 😮 Wohl nicht so richtig.
    5.) Ja (Geht mit C++ genauso).
    6.) Von embedded mal abgesehen gibt es C++-Compiler wohl auch recht häufig.
    7.) Kann man in C++ auch nutzen. Sollte man aber mit Bedacht verwenden. Wobei
    der Nachteil der Gleiche ist wie auch in C.



  • Ausserdem hat C-Code eine Ästhetik, die keine andere Programmiersprache
    (außer C++) hat - optisch ist komprimierter C-Code
    ... if((*a->b||!(op--))>=c++[d]) ...
    irgendetwas zwischen Ordnung und Chaos und an Knappheit bei gleichzeitiger
    Lesbarkeit kaum zu überbieten.

    Knapp ist Forth-Code auch (sogar knapper), aber eben erheblich schwerer lesbar,
    da man sich bei Forth-Code ständig den Stackinhalt vorstellen muß.
    Andere Sprachen wie Pascal sind zwar lesbarer, aber mit viel längeren
    Schlüsselwörtern begin...end und nicht so knapp wie C.

    Vermutlich hat diese Ästhetik wesentlich zur Beliebtheit von C/C++ beigetragen -
    das ist doch einfach abwechslungsreicher.

    Alle anderen Gründe (Maschinennähe, Portabilität, Effizienz etc..) wurden ja
    schon genannt.



  • C ist keine general-purpose programmiersprache, sondern auf die Manipulation der Register und des Speichers auf von-Neumann Rechnern spezialisiert. Genauso wie wohl die meisten anderen bekannten Hochsprachen.
    C ist wirklich sehr einfach gehalten und daher wohl so beliebt, weil man mit wenig Grundstoff relativ viel erreichen kann.

    auf bald
    oenone



  • C ist keine general-purpose programmiersprache, sondern auf die Manipulation der Register und des Speichers auf von-Neumann Rechnern spezialisiert.<<

    Nicht-von-Neumann-Rechner spielen ja heute auch eine große Rolle bei der
    Anwendungsentwicklung.
    C ist nicht *eine* general-Purpose-Sprache, es ist *die* general purpose-Sprache.

    Noch was: C ist auch deshalb so beliebt, weil es eine ProgrammierERsprache ist,
    die von Programmierern für Programmierer entwickelt wurde, um damit zu
    programmieren.

    Andere Sprachen wie BASIC, COBOL oder FORTRAN sind dafür gedacht,
    Nicht-Programmierern das Programmieren zu ermöglichen oder sind eher aus
    akademischen oder edukativen Gründen (PASCAL) heraus entstanden.



  • Cacheline schrieb:

    Ausserdem hat C-Code eine Ästhetik, die keine andere Programmiersprache
    (außer C++) hat...

    doch, apl, aber das benutzt heute keiner mehr 😉
    übrigens, ich finde c ist gar nicht so toll lesbar. das meinen wir nur weil wir uns daran gewöhnt haben. die meisten anderen sprachen mit nicht-c ähnlicher syntax sind lesbarer.



  • die meisten anderen sprachen mit nicht-c ähnlicher syntax sind lesbarer.<<

    Sicherlich - ein COBOL- oder MODULA-Programm ist auf den ersten BLick
    leichter lesbar als ein C-Programm - aber eben auch länger.

    Gerade die in Programmen besonders häufigen Elemente wie Block, Indirektion, Inkrement und
    Nulltest etc. sind in C mit {...},*,++,! etc. äußerst kurz formuliert, was zu
    kurzem Programmtext führt.

    Wahrscheinlich war es ein Glück, daß die Rechner, auf denen C 1972 entwickelt
    wurde, nur 4K bzw. 28K RAM hatten - das motivierte natürlich dazu, eine Sprache
    zu definieren, die keine überflüssig langen Konstrukte wie LET oder begin...end
    enthält.



  • Cacheline schrieb:

    Wahrscheinlich war es ein Glück, daß die Rechner, auf denen C 1972 entwickelt
    wurde, nur 4K bzw. 28K RAM hatten - das motivierte natürlich dazu, eine Sprache
    zu definieren, die keine überflüssig langen Konstrukte wie LET oder begin...end
    enthält.

    das glaube ich nicht. so'n compiler wandelt die schlüsselwörter in 1-byte tokens um (das machten selbst die basic-interpreter antiker homecomputer so), dabei ist es egal, wie lang die keywords sind. ich glaub' eher dass die erfinder von c ziemlicher unix-häcker waren, die einfach wenig tippen wollten und c für ihresgleichen machten, d.h. leute mit einigermassen hohem abstraktionsvermögen.

    aber c ist ja sowas wie eine portable assemblersprache. deshalb ist es im auch lowlevel bereich so beliebt



  • dali schrieb:

    Da C++ ja von C abgeleitet ist treffen ja bekanntlich all deine Vorteile auch auf C++ zu. Einziger Vorteil ist dass es vielleicht mehr C Compiler gibt da sie leicher zu bauen und kleiner(?)sind aber heutzutage gibts ja auch massenhaft gute C++ Compiler und Speicherplatz ist auch kein Thema mehr. Ein großes Programm heutzutage prozedural programmieren ist totaler humbug. Aber wer es macht mir solls egal sein.

    Versteht das bitte nicht falsch; Ich mag C++ genauso wie C und alle Vorteile, die ich im letzten Posting aufgezählt habe treffen auch auf C++ zu. Aber der Thread ging nunmal um C 😃



  • Also ich programmiere in C, weil ich damals als ich angefangen habe nur C++ kannte, das kannte jeder vom Namen und da hab ich mir ein Buch gekauft wo in Riesenschrift C++ drauf stand aber eigentlich war es ein C Buch wo höchstens mal printf durch cout ersetzt war. Und deshalb programmiere ich in C jetzt ein paar Jahre.



  • dali schrieb:

    und Speicherplatz ist auch kein Thema mehr. Ein großes Programm heutzutage prozedural programmieren ist totaler humbug. Aber wer es macht mir solls egal sein.

    Du denkst nur in deiner Erlebniswelt. 75% der Software wird in der Industrie nicht für PCs implementiert sondern für Mikrocontroller. Da stimmt deine Aussage einfach nicht.



  • Tsss ich denke da wird der Hauptbewegungsgrund wenn es so sein sollte der sein dass die Leute die da arbeiten halt noch alteingesessene C Hardcorecoder sind :p



  • Herrje, man hat die glib genannt, sieh dir das Ding doch einfach mal an. Das _ist_ objektorientiert und das ganz ohne C++.



  • NochNRealist schrieb:

    dali schrieb:

    und Speicherplatz ist auch kein Thema mehr. Ein großes Programm heutzutage prozedural programmieren ist totaler humbug. Aber wer es macht mir solls egal sein.

    Du denkst nur in deiner Erlebniswelt. 75% der Software wird in der Industrie nicht für PCs implementiert sondern für Mikrocontroller. Da stimmt deine Aussage einfach nicht.

    dali schrieb:

    Tsss ich denke da wird der Hauptbewegungsgrund wenn es so sein sollte der sein dass die Leute die da arbeiten halt noch alteingesessene C Hardcorecoder sind :p

    Quark! C++ ist viel komplexer als C. Das wäre doch Verschwendung die Hardware nach der Sprache und nicht nach dem Zweck zu designen.



  • hackbert schrieb:

    Quark! C++ ist viel komplexer als C. Das wäre doch Verschwendung die Hardware nach der Sprache und nicht nach dem Zweck zu designen.

    HW kann sein wie sie will Compiler schreib ja nicht ich und die HW hat ja garnichts mit der Sprache selbst zu tun 🙄 😮 🙄
    Hier noch ein paar Kommentare von Stroustrup:

    I never saw a project for which C was better than C++ for any reason but the lack of a good C++ compiler.

    I have never seen a program that could be expressed better in C than in C++ (and I don't think such a program could exist - every construct in C has an obvious C++ equivalent). However, there still exist a few environments where the support for C++ is so weak that there is an advantage to using C instead.

    Why is the code generated for the "Hello world" program ten times larger for C++ than for C?
    It isn't on my machine, and it shouldn't be on yours. I have even seen the C++ version of the "hello world" program smaller than the C version. When I recently (2004) tested using gcc -o2 on a Unix, the two versions (iostreams and stdio) yielded identical sizes. There is no language reason why the one version should be larger than the other. It is all an issue on how the implementor organized the libraries. If one version is significantly larger than the other, report the problem to the implementor of the larger.


Anmelden zum Antworten