Für welche Programme nutzt ihr C?



  • Solange jede Systemschnittstelle (Windows, Unix, Linux ...) in C gehalten ist, werde ich auch C verwenden. Klar kann C bis zu einem gewissen Grad schneller sein, doch die Regel ist es nicht! Kommt auf den Code und die Implementierung an.
    Aber wir müssen uns nicht darum streiten was jetzt besser ist oder was nicht, denn beide sind nicht mehr wegzudenken. Hier sagte einer "C und memory leaks".
    Ja und!? Musst eben dafür sorgen das der Speicher wider freigegeben wird! free(mem); ist das so schwer? 😉
    Kannst Dir ja ein Code Analyse Tool bauen das Memoryleaks erkennt.
    Aber immer auf C herum trampeln...



  • C hat euem kramm wie OPP und C++ doch erst Beine gegeben!
    Also kommt!



  • Ich verwende C wenn ich Systemprogrammierung betreibe. Als Treiber,Dienste und Api's! C++ immer dann wenn ich ne GUI mit baue.
    C ist schnell aber auch C++ mit TMP (Template Meta Programing) ist sehr schnell.
    Soweit wie ich gesehen habe bricht C++ mit (TMP) in bereiche wo vorher nur Fortran heran gekommen ist.

    Natürlich ist TMP nicht einfach, aber mit etwas Übung schaft man auch das.
    Sowieso erübrigt sich die Diskussion ob C oder C++ da C seine Zielgruppen hat genau so wie C++.

    Es werden auch kaum Leute Micro Controller mit C++ Programmieren auch wenn dies vereinzelt möglich ist.

    PS:
    Jemand hat im Verlauf des Threads geschrieben er kenne nicht was man nicht eleganter mit Scheme/Lisp eleganter lösen kann. Jedenfalls ist der Quicksort mit reinem Lisp ein grauss.



  • Cefour schrieb:

    Jemand hat im Verlauf des Threads geschrieben er kenne nicht was man nicht eleganter mit Scheme/Lisp eleganter lösen kann. Jedenfalls ist der Quicksort mit reinem Lisp ein grauss.

    Aber symbolisches Differenzieren paßt auf zwei Seiten.



  • volkard schrieb:

    Aber symbolisches Differenzieren paßt auf zwei Seiten.

    Was meinst du damit? (passt auf zwei Seiten)



  • Cefour schrieb:

    volkard schrieb:

    Aber symbolisches Differenzieren paßt auf zwei Seiten.

    Was meinst du damit? (passt auf zwei Seiten)

    Wahrscheinlich etwa sowas:
    http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_sec_2.3.2



  • Cefour schrieb:

    volkard schrieb:

    Aber symbolisches Differenzieren paßt auf zwei Seiten.

    Was meinst du damit? (passt auf zwei Seiten)

    http://www.google.de/url?sa=t&source=web&cd=6&ved=0CEMQFjAF&url=http%3A%2F%2Fwww.eecs.berkeley.edu%2F~fateman%2Fpapers%2Fderiv.pdf&rct=j&q=lisp derivate&ei=Dz2DTbaDEIi2hAevm7GuBA&usg=AFQjCNH50lm-rkJOYalVOgMHj719PIAV6Q&cad=rja
    edit: zu spät. und µngbd hat auch was hübscheres gefunden.



  • Achso ok!
    Ich wollte aber jetzt auch nicht Lisp/Scheme schlecht rädern. Sind im allgemeinen Wunderbare Programmiersprachen. Mein Beitrag war nur so gemeint, das man in Lisp vor allem bestimmte Dinge schwer darstellen kann. Die Matrixmultiplikation ist z.B auch ein Fall der schwer implementierbar in Lisp ist.

    Alles was sich mit Grammatiken beschreiben lässt (Programmiersprachen,Symbolische Differenzierung Intergrierung....), ist super für Lisp geeignet!



  • Jemand hat im Verlauf des Threads geschrieben er kenne nicht was man nicht eleganter mit Scheme/Lisp eleganter lösen kann. Jedenfalls ist der Quicksort mit reinem Lisp ein grauss.

    Wenn du nochmal genau liest, hat er das Gegenteil geschrieben. 😉
    Wenn auch unabsichtlich, da knivil ein bekannter Lisp/Scheme Fan ist.

    Die Matrixmultiplikation ist z.B auch ein Fall der schwer implementierbar in Lisp ist.

    Findest du? Ist zwar Scheme, aber auch die Common Lisp Variante ist doch nicht sonderlich kompliziert. Ich verstehe zwar nur so halb was da abläuft, aber jemand der fließend Lisp oder Scheme spricht, hat damit wahrscheinlich absolut keine Probleme.



  • Irgendwer schrieb:

    Wenn du nochmal genau liest, hat er das Gegenteil geschrieben. 😉

    Ertappt ...



  • Scheme ist sehr gut für alle Dinge geeignet zu Programmieren! Bei der Section für Common Lisp siehst du ja das allein das erstellen einer 2d Struktur über listen schwierig ist!

    Ich bin auch ein Fan dieser Programmiersprachen, aber Lisp <<nur Lisp>> verliert in bestimmten Fällen seine Eleganz. Wie alle voll funktionalen Programmiersprachen. Gerade z.B bei der Matrixbehandlung



  • Cefour schrieb:

    Wie alle voll funktionalen Programmiersprachen. Gerade z.B bei der Matrixbehandlung

    Aber die beiden sind ja gerade keine rein funktionalen Sprachen. Zeigermagie ausgenommen kann man jedes C-Programm rein schematisch nach Scheme übersetzen, genauso wie man es auch nach Javascript übersetzen kann. Das erkauft man sich mit einigem Laufzeitoverhead.

    Darüber hinaus kann man natürlich in Lisp, wie in fast jeder anderen Sprache auch, Arrays verwenden. Ein Rätsel: warum schreiben wir nicht gleich alles in Scheme oder Javascript?



  • µngbd schrieb:

    Ein Rätsel: warum schreiben wir nicht gleich alles in Scheme oder Javascript?

    Tun wir doch! Man nennt dann seine Eigenentwicklung Python, Ruby, Javascript, ... . Auch die Abbildung auf Maschinencode braucht nicht zwangsweise uber die Zwischensprache C erfolgen.

    Das erkauft man sich mit einigem Laufzeitoverhead.

    Kommt drauf an.

    Ansonsten gab es kuerzlich bei Heise developer einen Beitrag zu Lisp. Reinhoeren lohnt sich: Episode 28: Bedeutung, Einsatzszenarien und Perspektive von Lisp



  • laut Tiobe Index werden nach wie vor doppelt soviele kommerzielle programme in c geschrieben als in c++. 'kommerzielle programme' umfasst ja auch mehr als nur
    ein paar computer spiele, darunter fallen ja auch so eher stinklangweilige
    sachen wie treiber, systemnahe apis, firmware, industrie/medizin. roboter usw.
    . die müssen ja auch von irgendwem gemacht werden und das erklärt dann halt
    den sehr hohen verbreitungsgrad von c. eine phyisch-reale cpu beherrscht nun
    mal einfach keine template meta programmierung und kann die arbeitsweise
    ihrer register nicht ohne weitere generisch verändern. insofern sind oop,
    polymorphie, generics, mehrdeutige OP-Codes (function overloading)
    usw. in der maschinen- und systemnahen programmierung einfach nur als
    themenverfehlung zu bezeichnen, weswegen in diesen 'öden' bereichen C naturgemäß
    den vorteil gegenüber C++ genießt.
    auch bei der aller meisten proprietären, nicht-quelloffenen standard-software
    kann man davon ausgehen, dass nach wie vor eine C/C++ mischsprache
    abseits aller standards verwendet wird, weil ja selten so dinge wie 100% ige
    portabilität angestrebt werden, ohnehin nicht der plan besteht, den quellcode
    je zu veröffentlichen, und die besten progger nun mal jene sind, die schon
    sehr viel mehr erfahrung haben als die junge, arbeitsscheue C++ fangilde.
    zuerst hat ja jemand das beispiel mit oracle gebracht. die sind beileibe keine
    ausnahme-erscheinung unter den 'ganz großen', auch bei autodesk, adobe usw.
    wird noch der großteil ein c geschrieben, bevor es mit C++ mit einer GUI
    verpackt wird.
    einzig JAVA scheint laut tiobe index noch weiter verbreitet zu sein, als C.
    nur C scheint auf der liste ganz konstant und schon seit jeher immer auf den
    vordersten plätzen auf, und das ist gewiss kein zufall oder ein fehler in der
    tiobe-liste, sondern hat eben die oben genannten gründe (die ohnehin jeder
    kennt). auf dem weg zum profi führt kein weg an exzellenten C Kenntnissen vorbei, aber c++ ist kein must-have. einem erfahrenen, alten C-hasen traut
    man auch eher zu, sich schneller in anderen sprachen zurecht zu finden, als
    <vector> verwöhnten C++ - usern ohne irgendein abstraktionsvermögen oder gar
    eigenständiger problemlösungskompetenz.



  • Tiobe Index

    Wo ist der Fehler?

    sehr hohen verbreitungsgrad von c

    Wahrscheinlich liegt es nur am Alter der Sprache.

    phyisch-reale cpu beherrscht nun mal einfach keine template meta programmierung

    Dafuer gibt es ja Kompiler.

    maschinen- und systemnahen programmierung einfach nur als themenverfehlung zu bezeichnen

    Denkste ... ?

    sich schneller in anderen sprachen zurecht zu finden

    Vielleicht ist er auch von seiner imperativen Denkweise zu stark vorgepraegt, um sich ueberhaupt auf die Sprache einzulassen.



  • knivil schrieb:

    Tiobe Index

    Wo ist der Fehler?

    sehr hohen verbreitungsgrad von c

    Wahrscheinlich liegt es nur am Alter der Sprache.

    phyisch-reale cpu beherrscht nun mal einfach keine template meta programmierung

    Dafuer gibt es ja Kompiler.

    maschinen- und systemnahen programmierung einfach nur als themenverfehlung zu bezeichnen

    Denkste ... ?

    sich schneller in anderen sprachen zurecht zu finden

    Vielleicht ist er auch von seiner imperativen Denkweise zu stark vorgepraegt, um sich ueberhaupt auf die Sprache einzulassen.

    Wo ist der Fehler?



  • närrischerTuck schrieb:

    Wo ist der Fehler?

    tiobe ist der Fehler.

    tiobe ist technisch nicht in der lage korrekte ergebnisse zu liefern. dazu ist der ansatz einfach zu kaputt.



  • Fakt ist:

    - in C werden kleine als auch sehr große un sichere Projekte(Oracel, Ngix, Gnome, Gimp etc) realisiert.
    - in C wird mindestens genauso viel programmiert wie in C++
    - Memory Leaks sind bestimmt nicht weniger schlimm als schlechtes OOP-Design. Es gibt bestimmt nicht viele die gut C++ können und auch gute OOP-Designer sind.
    - die Lernkurve ist bei C++ wesentlich flacher, weswegen die meisten Programmierer C++ wenn überhaupt nur zur Hälfte beherrschen.
    - Wenn C++ eine ganz tolle Erweiterung zu C gewesen wäre hätte Apple sich nicht für Objective-C entschieden. Man kann Steve Jobs so einiges nachsagen, aber wenn es um Softwareentwicklung geht ist er absoluter Perfektionist.



  • FaktenFaktenFakten schrieb:

    - Wenn C++ eine ganz tolle Erweiterung zu C gewesen wäre hätte Apple sich nicht für Objective-C entschieden. Man kann Steve Jobs so einiges nachsagen, aber wenn es um Softwareentwicklung geht ist er absoluter Perfektionist.

    Nein, das Argument ist schlicht weg unsinnig. NeXT hat sich damals für Objective-C entschieden. Damals gab es nur C with Classes und kein C++. Da Apple nur die NeXT Frameworks übernommen hat, wurde natürlich nicht der Aspekt der Programmiersprache neu entschieden, sondern man blieb bei Objective-C. De facto ist Apple die einzige Firma die Objective-C verwendet, sonst hat diese Sprache keinen nennenswerte Verbreitung.


Anmelden zum Antworten