Für welche Programme nutzt ihr C?
-
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.
-
-
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.