C ist wieder die beliebteste Programmiersprache



  • in_c_we_trust schrieb:

    C ist unbestritten (außer von Trollen) eine großartige Sprache; in ihrer Einfachheit dennoch unglaublich mächtig und auf eine geniale Weise durchdacht. Ein Höhepunkt des Sprachdesigns, der IMHO von keiner anderen Sprache übertroffen worden ist.

    Absolut korrekt. C ist simpel und leistungsstark zugleich. Es gibt keine zweite Programmiersprache, die in Summe ihrer Eigenschaften so perfekt geworden ist.

    Überlegt selbst: nimmt man von C etwas weg, wird es schmerzlich fehlen. Fügt man etwas hinzu, wird man feststellen, daß es nicht wirklich nötig ist.

    Daher wird C auch die nächsten 40 Jahre sehr weit oben sein.



  • CodingJoe schrieb:

    C ist simpel und leistungsstark zugleich. Es gibt keine zweite Programmiersprache, die in Summe ihrer Eigenschaften so perfekt geworden ist.

    Das meinst du ernst? Ja klar, C ist gut entworfen, sonst würden wir ja nicht darüber reden. Aber leistungsstark? Was ist für dich eine starke Sprache?

    Die meisten sehen die Stärken einer Sprache wohl eher in den Abstraktionen, die sie anbietet, und wie gut die zusammenspielen. Und C wohl eines der besten Beispiele für eine Sprache, die viele Abstraktionen weggelassen hat.
    🙂



  • Ohne C gäbe es nur Pasal, Obol, #, ++, Oaml und so forth, das wäre ja schreklich.



  • mngbd schrieb:

    Die meisten sehen die Stärken einer Sprache wohl eher in den Abstraktionen, die sie anbietet, und wie gut die zusammenspielen. Und C wohl eines der besten Beispiele für eine Sprache, die viele Abstraktionen weggelassen hat.

    That does the trick 😉
    C hat nur ein Mindestmaß an Abstraktion. Das macht C-Programmierung sehr direkt und erzeugt performante Programme. Der C-Programmierer muß sich keine Gedanken über das beste Zusammenspiel komplexer Sprachfeatures machen, sondern kann seine Ideen direkt umsetzen. C erzieht auch zu maschinennahem Denken. Nicht umsonst ist C für Betriebssystemkernel und Mikrokontroller die erste Wahl. Auf diesen Gebieten gibt es nichts, was C wirklich ersetzen könnte.



  • mngbd schrieb:

    Die meisten sehen die Stärken einer Sprache wohl eher in den Abstraktionen, die sie anbietet, und wie gut die zusammenspielen. Und C wohl eines der besten Beispiele für eine Sprache, die viele Abstraktionen weggelassen hat.

    C bietet genau die Abstraktionen, die man braucht um portable Programme zu schreiben. Die Sicht, die C einem bietet, entspricht etwa dem, was man auf allen üblichen, real existierenden Computern findet; von plattformspezifischen Besonderheiten wird abstrahiert.

    Andere Sprachen bieten andere (zusätzliche) Abstraktionen, damit landet man in einer anderen Welt, in der bestimmte Dinge verschwinden (von denen abstrahiert wird), und andere Dinge emergent dazukommen. Daraus ergeben sich andere Möglichkeiten und andere Herangehensweisen, ob die besser sind hängt davon ab, was man eigentlich programmieren will.

    (Zu C++ sag ich jetzt besser nichts, das gibt nur wieder einen Flamewar)



  • namespace invader schrieb:

    (Zu C++ sag ich jetzt besser nichts, das gibt nur wieder einen Flamewar)

    Weil du nie was vernünftiges sagst, sondern nur trollst.

    C macht vieles zum unnötigen Krampf. Generische Programmierung ist ohne void*-Orgien oder Makro-Hacks nicht möglich, das resultiert in unnötiger Code-Verdopplung. Objekt-Orientiert zu Programmieren ist auch nur unter Umständen möglich, wenn man all diese Mechanismen selbst nachbildet.

    C ist das, als was es entwickelt wurde: Ein portabler Assembler. Und wer programmiert heute noch freiwillig mit Assembler?



  • Hallo namespace invader,

    namespace invader schrieb:

    (Zu C++ sag ich jetzt besser nichts, das gibt nur wieder einen Flamewar)

    Laß mich bitte dies bitte übernehmen.
    C++ war ein Versuch C zu erweitern. Jedoch hatte C nie eine (solche) Erweiterung nötig.

    Hallo Janjan,

    Janjan schrieb:

    C macht vieles zum unnötigen Krampf. Generische Programmierung ist ohne void*-Orgien oder Makro-Hacks nicht möglich, das resultiert in unnötiger Code-Verdopplung.

    Das ist nicht ganz richtig. Es gibt Bibliotheken. Zum Beispiel diese hier: http://home.gna.org/gdsl/

    Janjan schrieb:

    Objekt-Orientiert zu Programmieren ist auch nur unter Umständen möglich, wenn man all diese Mechanismen selbst nachbildet.

    Ja und Nein. Ein sehr effizientes Objektsystem findest Du zum Beispiel im Linux-Kernel. Wer Objektorientierung in der Sprache selbst wünscht kann Objective-C benutzen. C ist als vollständige Teilmenge in Objective-C enthalten.

    Janjan schrieb:

    C ist das, als was es entwickelt wurde: Ein portabler Assembler.

    Ja. Und deshalb sind C-Programme schlank und schnell in der Ausführung.

    Janjan schrieb:

    Und wer programmiert heute noch freiwillig mit Assembler?

    Kaum jemand. Dafür gibt es C.



  • CodingJoe schrieb:

    Janjan schrieb:

    C macht vieles zum unnötigen Krampf. Generische Programmierung ist ohne void*-Orgien oder Makro-Hacks nicht möglich, das resultiert in unnötiger Code-Verdopplung.

    Das ist nicht ganz richtig. Es gibt Bibliotheken. Zum Beispiel diese hier: http://home.gna.org/gdsl/

    Es gibt Bibliotheken, die aber allesamt häßlich sind. Und solange sie sich nicht widerwärtiger Makro Hacks bedienen, so können sie lediglich Zeiger speichern und sind Typen-Unsicher.

    CodingJoe schrieb:

    Janjan schrieb:

    Objekt-Orientiert zu Programmieren ist auch nur unter Umständen möglich, wenn man all diese Mechanismen selbst nachbildet.

    Ja und Nein. Ein sehr effizientes Objektsystem findest Du zum Beispiel im Linux-Kernel. Wer Objektorientierung in der Sprache selbst wünscht kann Objective-C benutzen. C ist als vollständige Teilmenge in Objective-C enthalten.

    Was außerhalb von Apples Bereichen niemand ernsthaft benutzt.

    CodingJoe schrieb:

    Janjan schrieb:

    C ist das, als was es entwickelt wurde: Ein portabler Assembler.

    Ja. Und deshalb sind C-Programme schlank und schnell in der Ausführung.

    Ist C++ auch.

    Ich verweise mal auf folgenden schönen Artikel:
    http://unthought.net/c++/c_vs_c++.html



  • CodingJoe schrieb:

    C++ war ein Versuch C zu erweitern. Jedoch hatte C nie eine (solche) Erweiterung nötig.

    Schade :(. namespace fänd ich classe.



  • Hallo Janjan,

    Janjan schrieb:

    CodingJoe schrieb:

    Janjan schrieb:

    C macht vieles zum unnötigen Krampf. Generische Programmierung ist ohne void*-Orgien oder Makro-Hacks nicht möglich, das resultiert in unnötiger Code-Verdopplung.

    Das ist nicht ganz richtig. Es gibt Bibliotheken. Zum Beispiel diese hier: http://home.gna.org/gdsl/

    Es gibt Bibliotheken, die aber allesamt häßlich sind. Und solange sie sich nicht widerwärtiger Makro Hacks bedienen, so können sie lediglich Zeiger speichern und sind Typen-Unsicher.

    Persönlicher Geschmack ist IMHO diesbezüglich kein gültiges Kriterium.

    Janjan schrieb:

    CodingJoe schrieb:

    Janjan schrieb:

    Objekt-Orientiert zu Programmieren ist auch nur unter Umständen möglich, wenn man all diese Mechanismen selbst nachbildet.

    Ja und Nein. Ein sehr effizientes Objektsystem findest Du zum Beispiel im Linux-Kernel. Wer Objektorientierung in der Sprache selbst wünscht kann Objective-C benutzen. C ist als vollständige Teilmenge in Objective-C enthalten.

    Was außerhalb von Apples Bereichen niemand ernsthaft benutzt.

    Oder weil in die Sprache integrierte Objektorientierung in Bereichen selten sinnvoll ist, in denen C eingesetzt wird.

    Janjan schrieb:

    CodingJoe schrieb:

    Janjan schrieb:

    C ist das, als was es entwickelt wurde: Ein portabler Assembler.

    Ja. Und deshalb sind C-Programme schlank und schnell in der Ausführung.

    Ist C++ auch.

    Ja, wenn man C++ benutzt wie C.



  • Hallo extc,

    extc schrieb:

    CodingJoe schrieb:

    C++ war ein Versuch C zu erweitern. Jedoch hatte C nie eine (solche) Erweiterung nötig.

    Schade :(. namespace fänd ich classe.

    Sicherlich können manche Features manchmal hilfreich sein. Aber C ist nun mal schlank, minimalistisch und soll auch so bleiben. Name Spaces in C hätten keinen signifikanten Vorteil.



  • CodingJoe schrieb:

    Hallo extc,

    extc schrieb:

    CodingJoe schrieb:

    C++ war ein Versuch C zu erweitern. Jedoch hatte C nie eine (solche) Erweiterung nötig.

    Schade :(. namespace fänd ich classe.

    Sicherlich können manche Features manchmal hilfreich sein. Aber C ist nun mal schlank, minimalistisch und soll auch so bleiben. Name Spaces in C hätten keinen signifikanten Vorteil.

    Und keinen Nachteil. Aber so ist C nunmal... Minimalistisch und extrem unbequem.



  • Hallo Janjan,

    Janjan schrieb:

    CodingJoe schrieb:

    Hallo extc,

    extc schrieb:

    CodingJoe schrieb:

    C++ war ein Versuch C zu erweitern. Jedoch hatte C nie eine (solche) Erweiterung nötig.

    Schade :(. namespace fänd ich classe.

    Sicherlich können manche Features manchmal hilfreich sein. Aber C ist nun mal schlank, minimalistisch und soll auch so bleiben. Name Spaces in C hätten keinen signifikanten Vorteil.

    Und keinen Nachteil.

    Es hätte einen Nachteil: http://en.wikipedia.org/wiki/Feature_creep
    C soll "sauber" bleiben. Das ist eins der Designprinzipien von C und ebenso von Java.

    Janjan schrieb:

    Aber so ist C nunmal... Minimalistisch und extrem unbequem.

    Wo Minimalismus herrscht, hast Du immer eine gewissen Unbequemlichkeit. Sicherlich ist es in C aufwändiger, große Desktop-Applikationen zu schreiben, als zum Beispiel in Java, C#, oder Visual Basic. Trotzdem gibt es auch relativ große Systeme, wie etwa Gnome/GTK, die in C geschrieben wurden.



  • Wer findet schon prozedurale Sprachen nicht geil 🙄


Anmelden zum Antworten