Warum programmiert ihr in C?



  • Einen hab ich noch: Linux ist besser als Windows.



  • Erkenner des Besseren schrieb:

    Einen hab ich noch: Linux ist besser als Windows.

    Und deshalb lassen sich WINAPI Programme/Module aus den frühen 90ern selbst nach 20 Jahren noch problemlos kompilieren und ausführen (und gewiss auch 2020 noch - eine API für die Ewigkeit.)
    Eine in Punkto Umfang (&Robustheit) her vergleichbare LINAPI, die auf jedem Linux-System verfügbar oder gar halbwegs abwärts- sowie aufwärtskompatibel konzipiert wäre, gab und gibt es nicht. Bei der Nutzung von OS-Schnittstellen muss man das Rad für Ubuntu, RedHat, Suse und Debian jeweils auf's Neue erfinden und kann große Teile des Quelltexts in spätestens 3 Jahren verschrotten.
    Wir lernen: Wirklich portable (sowohl alte als auch neue Windows-Rechner), wiederverwendbare und beständige (einem etablierten Standard - der sich nicht alle 3 Jahre ändert - folgende) Quelltexte wird man wohl noch ziemlich lange nur für Windows schreiben können.



  • StandardFan schrieb:

    Eine in Punkto Umfang (&Robustheit) her vergleichbare LINAPI, die auf jedem Linux-System verfügbar oder gar halbwegs abwärts- sowie aufwärtskompatibel konzipiert wäre, gab und gibt es nicht.

    Das kann es auch nicht geben, da die Unix Philosophie schon immer lautete:
    * Schreibe Computerprogramme so, dass sie nur eine Aufgabe erledigen und diese gut machen.
    * Schreibe Programme so, dass sie zusammenarbeiten.
    * Schreibe Programme so, dass sie Textströme verarbeiten, denn dies ist eine universelle Schnittstelle.

    Und daran hielt sich viele Jahre lang auch Linux und das ist gut so.
    Die Winapi ist dagegen Bloatware und heutzutage im Vergleich zu den Alternativen wie gtk+ & co nicht mehr zeitgemäß und eine Zumutung.

    Die Unix Pipes sind aber selbst heute noch ne super Sache.

    Unix Pipes und die dafür entwickelte Tools wie grep, bc, ls usw. funktionieren schon seit Jahren und sind abwärts und aufwärtskompatibel.

    http://de.wikipedia.org/wiki/Unix-Philosophie

    Unix und damit auch Linux verfolgt das KISS Prinzip und C tut genau da gleiche.
    Die WinAPI fällt also aus der Reihe.



  • Na ja, die WINAPI hat mal als "Graphischer DOS-Aufsatz" angefangen, nicht als
    eigenständiges und unabhängiges Teil wie bei Unix/Linux. Diese saubere Trennung
    existiert halt nicht, also wird auch seit Urzeiten aller Müll mitgeschleppt.

    Versuche mal, das einem "Entscheider" zu erklären ... 😡



  • Und jedes mal wieder die alten Geschichten.
    C ist besser als C++. Nein C++ ist besser als C ...

    Und jeder der Code mischt ist noch schlimmer als die jeweilige Gegenseite...

    *gähn* langsam geht mir eure sturheit auf den Sack 😃 Öffnet euch doch mal für Neues. Die Cpp-ler lernen endlich mal memset, memcpy und Pointerarithmetik zu benutzen und die C-ler lernen mal ordentliche Kapselung und Objektorientierung 😃



  • Michael E. schrieb:

    Wir sind aber noch Meilen entfernt von einem Faktor 10 oder gar 30, der hier so gerne genannt wird.

    Vielleicht kommen wir auf den Faktor, wenn bei C++ im Millisekunden-Takt Exceptions fliegen und abgefangen werden 😃 Das dürfte ganz schön Performance kosten 😃

    Bei C# jedenfalls ist das der Performance-Tod 😃



  • It0101 schrieb:

    Vielleicht kommen wir auf den Faktor, wenn bei C++ im Millisekunden-Takt Exceptions fliegen und abgefangen werden 😃 Das dürfte ganz schön Performance kosten 😃

    Wills Du wirklich auf der Performance des Exception-Handlings und der Fehlerbehandlung in C herumreiten?



  • @Volkard: ich weiß, dass dir die Fehlerbehandlung in C nicht behagt 😃



  • Und man muss auch brachten dass Exception-Handling anderens implementieren kann und dementsprechend auch andere Kosten hat: Dwarf, SJLJ, SEH,...



  • It0101 schrieb:

    Michael E. schrieb:

    Wir sind aber noch Meilen entfernt von einem Faktor 10 oder gar 30, der hier so gerne genannt wird.

    Vielleicht kommen wir auf den Faktor, wenn bei C++ im Millisekunden-Takt Exceptions fliegen und abgefangen werden 😃 Das dürfte ganz schön Performance kosten 😃

    Bei C# jedenfalls ist das der Performance-Tod 😃

    Nicht wirklich, aber na ja... Wenn du im ms-Takt Exceptions bekommst, hast du ganz andere Sorgen als Performance. Unabhängig davon heißen die nicht umsonst Exceptions und stellen Ausnahmen dar, die nicht zur Steuerung des Programmflusses benutzt werden (sollen).



  • erklärbär schrieb:

    Und jeder der Code mischt ist noch schlimmer als die jeweilige Gegenseite...

    Solange Compiler & Linker sowohl aus C, C++ oder Pascal-Quelltexten nichts weiter als 10111101100001001 usw. produzieren, ist auch jederlei Code-Mischung unbedenklich, wenn sie eine Problemstellung zufriedenstellend löst. Der Maschine ist es ja ebenfalls egal, ob die Instruktionen, die sie ausführen soll, ursprünglich als C, C++, Delphi- oder in sonst einem Quelltext-Gemisch abegefasst worden sind.
    Nur einigen, unverbesserlichen und gänzlich unpragmatischen C++ - Quelltext - Ästheten sind die C-Konstrukte im C++ Quelltext ein Dorn im Auge, und wenn sie auch ihre Teilaufgabe im C++-Gesamtprogramm noch so zuverlässig erfüllen sollten -> man darf sie nicht zulassen, weil ein 'Graus für das Auge.'
    Naja, vielleicht lernen auch die C++ - Puristen eines Tages mal ein Quäntchen Pragmatismus.



  • It0101, wie oft willst du dich eigentlich noch laecherlich machen?



  • KennerDerInkompetenten schrieb:

    It0101, wie oft willst du dich eigentlich noch laecherlich machen?

    Du bist kein Kenner.
    Du gehörst noch nicht zu unserer Gilde.

    Der Älteste



  • naja, Cuda setzt auf C auf. Wenn man viel mit (recht unterschiedlichen) Mikrokontrollern zu tun hat, ist C recht praktisch. Weil der Sprachumfang eingeschränkt ist, lässt sich C schnell lernen und gut beherrschen. Es kommt aber auch immer auf die Entwicklungsumgebungen und Programmiertools, die man bekommen kann, an.
    Man hätte auch fragen können, warum programmierst du Java? Könnte einer meinen, weil die an der Uni das so vorgegeben haben...oder die Tools für Anfänger gut sind oder weil Java Multimediafreundlich ist oder weil Handys eine Javaschnittstelle haben usw.

    Betriebssysteme und Hardware sind unterschiedlich sprachfreundlich, so ist für schnelle Ergebnisse Visual Basic und Nachfolger in Windows gut und C für Unixtypen, lange Zeit hatten Kleinstcomputer ein einfaches Basic im Angebot. Und nur mal so hackerhistorisch betrachtet...;)



  • Warum programmiere ich in C?

    Weil C mit der Winapi die direkte Schnittstelle zu Windows ist und unter Linux ist es nicht anders und weil es in angenehmer Zeit zu erlernen ist und in kleinen Funktionen/Modulen relativ leicht zu überblicken ist was wirklich passiert.

    Hmm warum noch? Ich habe z.B. noch nie wirklich OOP gebraucht. Habe viel darüber gelesen und es klingt auch alles sehr praktisch aber ich brauchte es nie wirklich und glaube auch nicht das ich es in Zukunft brauchen werde. Ist für mich ähnlich wie der kommende Cloudkram eher ein Hype.



  • nocheinerfuerc schrieb:

    Hmm warum noch? Ich habe z.B. noch nie wirklich OOP gebraucht. Habe viel darüber gelesen und es klingt auch alles sehr praktisch aber ich brauchte es nie wirklich und glaube auch nicht das ich es in Zukunft brauchen werde. Ist für mich ähnlich wie der kommende Cloudkram eher ein Hype.



  • Nicht so voreilig. Es soll noch als SW-Entwickler tätige Informatik-Absolventen geben, die in großen Konzernen kaufmännische Anwendungen entwickeln/weiterentwickeln/pflegen, die auf Großrechnern laufen und in COBOL geschrieben sind, die sich mit Objektorientierung nicht auseinandersetzen müssen.



  • Ich habe z.B. noch nie wirklich OOP gebraucht

    Was braucht man schon ... welchen Mehrwert hat diese Aussage?



  • Belli schrieb:

    Nicht so voreilig. Es soll noch als SW-Entwickler tätige Informatik-Absolventen geben, die in großen Konzernen kaufmännische Anwendungen entwickeln/weiterentwickeln/pflegen, die auf Großrechnern laufen und in COBOL geschrieben sind, die sich mit Objektorientierung nicht auseinandersetzen müssen.

    Zu wenige, um relevant zu sein.
    Konstruiertes Beispiel.



  • Mhm, wie viele sind 'zu wenige'?
    Und überhaupt, zu wenige Entwickler, oder zu wenige Konzerne? Oder beides?

    Aber gleich 'konstruiertes Beispiel'?
    Das bestreite ich. Es gibt nach wie vor einen Markt für IBM-Mainframes - und vermutlich ebenso für Siemens - Großrechner.

    Viele große Kommunen unterhalten eine solche Maschine, jede Menge kleiner Kommunen sind an ein Rechenzentrum angeschlossen, welches so einen Mainframe unterhält, im Banken- und Versicherungsbereich spielen Großrechner noch eine bedeutende Rolle - und die jeweiligen Buchhaltungssysteme sind zum größten Teil in COBOL geschrieben.

    Ihren Zenit haben diese Rechenanlagen zwar überschritten und der Trend geht in eine andere Richtung, aber noch gibt es eine ganze Menge.

    Eine aktuelle Studie:
    http://www.pressebox.de/pressreleases/bmc-software-gmbh/boxid/384608


Anmelden zum Antworten