Warum programmiert ihr in C?



  • Zwischenruf schrieb:

    Ich sehe den Sinn von C++ einfach nicht.

    C in eine einfach zu verwendende objektorientierter Sprache zu verwandeln.



  • großkotzig erzählt dass man in C keine große Software schreiben kann die gut erweiterbar und sicher ist

    Behauptet niemand. Aber ich behaupte: Es ist ungemein aufwendiger.

    Ich sehe den Sinn von C++ einfach nicht.

    Diese Beschraenkung ist dein Problem.

    C-Schnittstellen unterstützen die meisten Sprachen C++ Schnittstellen nicht.

    Das hat andere Gruende.



  • Zwischenruf schrieb:

    Ich sehe halt das Optimum darin Sachen die Performance verlangen oder nahe am System sein müssen in C zu schreiben...

    sry, aber das ist einfach FALSE.

    jede größere lib die ich kenne verwendet im untergrund so viel assembler das dir die augen raus fallen. c wird dort nur als fallback genutzt falls für diese plattform kein assembler code implementiert ist.

    und diese assembler schnipsel werden dann schön mit c verkleistert 😋



  • Visual Basic ist beste was gibt. Basta!

    Der, der sagt, was Sache ist.



  • __-- schrieb:

    jede größere lib die ich kenne verwendet im untergrund so viel assembler das dir die augen raus fallen. c wird dort nur als fallback genutzt falls für diese plattform kein assembler code implementiert ist.

    Nenn doch mal ein paar Beispiele. Ich glaube nicht, dass ein nennenswerter Anteil des Publikums hier weiß, was "__--" für Bibliotheken kennt.



  • Visual was? Ich kenne nur Visual fail 😃



  • Bashar schrieb:

    __-- schrieb:

    jede größere lib die ich kenne verwendet im untergrund so viel assembler das dir die augen raus fallen. c wird dort nur als fallback genutzt falls für diese plattform kein assembler code implementiert ist.

    Nenn doch mal ein paar Beispiele. Ich glaube nicht, dass ein nennenswerter Anteil des Publikums hier weiß, was "__--" für Bibliotheken kennt.

    Ich als Teil des Publikums weise hier einmal auf die GMP Library hin: Beispiel Repositry Link. Man beachte: 24 Assembler-Ordner und 1 C-Fallback-Ordner (generic). Dafür existiert übrigens auch eine C++ Anbindung.



  • Bei High-Performance-Arithmetik-Bibliotheken ist das ja auch nicht so abwegig. Weitere Beispiele, bitte. 🙂



  • Bashar schrieb:

    Bei High-Performance-Arithmetik-Bibliotheken ist das ja auch nicht so abwegig. Weitere Beispiele, bitte. 🙂

    stdlib,bitfields,timing,cpu detection sind so die sachen welche mir spontan einfallen



  • Kein vernünftiges Programm kommt mit OOP alleine aus.
    In irgend einer prozeduralen (C-style) Art und Weise müssen die vielen tollen Schnittstellen, die so ein geniales C++ Objekt 'anbietet', ja auch implementiert werden. Prinzipiell stellt man sich intuitiv unter einem Programm in erster Linie einen (zeitlichen) Ablauf vor, und eher weniger ein sinnloses Nebeneinander irgendwelcher Objekte, die einfach nur da sind (es ist ja schön, wenn sie so verschieden sein dürfen!) und mit denen nichts gemacht wird und die auch von sich aus nichts tun. Zum Leben erweckt werden die Objekte ja immer erst dadurch, dass irgendwelche Funktionen mit diesen Objekten auch arbeiten. Also von daher erscheint mir der geordnete Ablauf eines
    C-Programms (auch wenn es noch so umfangreich sein sollte)
    auch intuitiv leichter nachvollziehbar als eine diffus miteinander verzahnte Klassen- Bibliothek, wo sich alle möglichen Funktionen untereinander in Spaghetti-Manier und in völlig unvorhersehbarer Weise aufrufen.
    Selbst dem Programmfluss einer halbwegs passabel strukturierten C-Anwendung mit mehreren Threads kann man da leichter folgen (und z.B. die Korrektheit des Programms unter allen denkbaren Voraussetzungen verifizieren oder falsifizieren). Bei pompösen und wild miteinander verzahnten Klassen-Bibliotheken gibt's meist keinen 'roten Faden', dem man folgen könnte, dort geschehen ja schon bei der Instanzierung irgend einer Klasse meist so viele implizite Nebenwirkungen und Ausflüge in versteckte Quellcode-Abschnitte, dass man bei jeder C++-Quellcode-Zeile ja nur hoffen kann, dass alles so gut geht, wie es sich der Programmierer vorstellt.
    Also imho ist C einfach nur die intuitiv logischere Programmiersprache als irgendwelche OOP High Level Sprachen, die man auch in kürzerer Zeit erlernen kann. Selbiges gilt für Bibliotheken, mit denen man als C-Programmierer arbeitet. Es genügt meist, sich die Dokumentation einer Funktion anzusehen, damit man sie nutzen kann. Bei C++ Funktionen (deren korrektes Funktionen meistens von allen möglichen vorausgegangenen Initialisierungen irgendwelcher Objekte X, Y, Z abhängt) kann man erst mal sich je nach Umfang der Library erstmal ein paar Wochen lang mit den Interna / Klassenhierarchien etc. beschäftigen, bevor man etwas mit den Schnittstellen anfangen kann.
    Ergo: OOP verkompliziert die einfachsten Dinge. Wo man in C schnell mal unter Zuhilfenahme entsprechender Libraries damit anfangen kann, große Teile eines Programms zu schreiben, findet man sich bei der Verwendung von OOP-Libraries erstmal für mehrere Wochen beim Doku-Studium derselbigen wieder.



  • btw. in linux ist der arch ordner nach den treibern der 2. größte wenn ich mich nicht irre.



  • C und Assembler haben all eure unnötigen Spielzeuge wie VisualBasic ,C++ erschaffen. Also ich will nicht hören das sich mit C keine grossen und sicheren Projekte herstellen lassen. Mann bedenke all die OS'es.
    Und zu sagen mit C könne man keine sichere Software entwickeln ... naja
    Ich sage immer, mann soll nicht jeden Holzkopf an alles heran lassen ...
    Die die 6 - .. Programmiersprachen können, können nach meinen Augen nicht eine einzige richtig ! bzw. sicherer ,performanter ,stabilen und protablen Code zu schreiben.



  • __-- schrieb:

    Bashar schrieb:

    Bei High-Performance-Arithmetik-Bibliotheken ist das ja auch nicht so abwegig. Weitere Beispiele, bitte. 🙂

    stdlib,bitfields,timing,cpu detection sind so die sachen welche mir spontan einfallen

    Das sind also "größere Bibliotheken"? Nicht dass es mir nicht von vornherein klar war, dass da nichts kommt ...



  • malnachdenken 👍

    WinXp Release 2001 ca 27 Mio Zeilen Code, 83% davon sind in C geschrieben, der grösste Restteil ist in C++ geschrieben, der mindere Restteil ist Assembler.

    Das ist zbsp. ein grosses Project !



  • Naja, C ist eben so krude, dass man soviel Quelltext braucht, um einfache Dinge auszudruecken. 🙂



  • ja mei, sicher kann ich in tausend zeilen stdlib funktionen (die großteils in asm sind) aufrufen und dann behaupten ich hätte keine zeile assembler verwendet. was ja auch stimmt wenn man sich nur eine seite der medaille anschaut.



  • __-- schrieb:

    ja mei, sicher kann ich in tausend zeilen stdlib funktionen (die großteils in asm sind) aufrufen und dann behaupten ich hätte keine zeile assembler verwendet. was ja auch stimmt wenn man sich nur eine seite der medaille anschaut.

    Dass ist eben C 😃 Highlevel Assembler :p 😉



  • -lowbyte- schrieb:

    __-- schrieb:

    ja mei, sicher kann ich in tausend zeilen stdlib funktionen (die großteils in asm sind) aufrufen und dann behaupten ich hätte keine zeile assembler verwendet. was ja auch stimmt wenn man sich nur eine seite der medaille anschaut.

    Dass ist eben C 😃 Highlevel Assembler :p 😉

    und ich dachte immer sowas nennt sich funktionale programmierung :p



  • Gott sei dank ...



  • Fliegendes Spaghettimonster sei dank....


Anmelden zum Antworten