Ich glaub alleine der Linux Kernel hebt den C Anteil um 10%, oder so....
Hallo Besucher, der Thread wurde 37k mal aufgerufen und enthält 323 Antworten
letzter Beitrag von Tale-X am
-
-
Der ist aber auch kein Paradebeispiel für guten Code (höhö)
Ich glaube, viele Basis-Libraries sind noch in reinem C, weil sie es für C++ leider nicht gebacken bekommen haben, eine eindeutige ABI zu definieren. D.h. C-Libraries lassen sich mehr oder weniger problemlos in andere Sprachen anbinden, bei C++ gibt es zwischen Compiler, Compiler-Versionen und Compile-Einstellungen unterschiedliche ABIs.
-
Reines C hat eigentlich nur noch historische Bedeutung - alte Programme oder alte Systeme, für die es kein C++ gibt.
Das ist ein Irrtum. Viele aktuelle embedded Chipsets verwenden auch heute noch vorwiegend C-Code, weil die entsprechenden C++ Compiler sehr viel komplexer sind und dadurch anfälliger für Compilerbugs. Bei proprietären Chips müssen ja die Chiphersteller die Compiler selbst erstellen und warten. Daher gibt es Branchen, in denen C nach wie vor der Industriestandard ist.
-
Zudem dürfte C immer noch n Tick schneller sein aufgrund der virtuellen Function tables oder wie das heißt bei C++ usw... sowas könnte eventuell auch noch entscheidend sein. Da stecke ich aber nun wirklich nicht tief genug drin im das beurteilen zu können.
-
Da hast Du zwar vom Grndsatz her recht; aber das kann der Programmierer schon beinflussen durch Auswahl der Sprachfeatures, die er nutzt.
Hingegen ist es Tatsache, dass die C++ Libraries, die hinzugelinkt werden müssen, recht groß sind. Bei Chips wie einen ATMEGA ist der Unterschied dann schon bedeutend, während man den auf den PC vernachlässigt, denn man hat eh genügend Arbeitsspeicher. Das halte ich eigentlich für das Hauptargument.
Für den Compiler auf einer prop. Architektur müsste man eigentlich nur für LLVM oder GCC eine Architektur hinzufügen. Von der Theorie her wenig Unterschiede zwischen C und C++, weil man im Compiler eh erst auf einen architekturunabhängigen Zwischencode geht (den braucht man alo nicht anpassen) und aus diesem dann den Assemblercode für die Zielhardware generiert.
Und auf Ebene des Zwichencodes haben die verschiedenen Programmiersprachen eigentlich keine Bedeutung mehr. -
Das ist ein Irrtum. Viele aktuelle embedded Chipsets verwenden auch heute noch vorwiegend C-Code,
Beispiele?
Ich kenne halt aktuell nur Atmel/Microchip und die verwenden einen C/C++ Compiler (Atmel Studio). Natürlich wird man sich auf reines C beschränken, wenn man nur ein paar Kilobyte Programmspeicher zur Verfügung hat. Aber dann ist man auch schon sehr nahe an der Assemblerprogrammierung. Solche Programme sind dann oft gespickt mir Inline-Assembler und die umfangreicheren C-Libraries werden auch nicht benutzt.
Im Falle von Atmel verwendet man aber trotzdem einen C++ Complier.
Ein typischen C++ Programm für Arduino (Atmel) hat bei mir 3-4 Kbyte (Binärcode). Und das ist echtes C++ mit ein paar Klassen.
-
Im Falle von Atmel verwendet man aber trotzdem einen C++ Complier.
Nicht zwangsweise. sd2iec wird zB mit gcc statt g++ compiliert - der Code verwendet C-Sprachfeatures, die in C++ nicht existieren und ausserdem war das Compilat (nach Entfernen/Umschreiben der problematischen Features) einige hundert Byte grösser ohne auch nur ein C++-Feature verwendet zu haben.
-
Beispiele?
Chipsets mit integrierten proprietären DSPs wie sie z.B. in aktuellen TVs eingesetzt werden.
-
Vielleicht darf ich hier noch mal kurz dazwischen gehen.
Vielen Dank für die LINKs zu BASIC-Compilern für den Pi. Das wäre schon nach meinem Geschmack, wenn ich nicht komplett eine neue Sprache in die Ganglien reinpressen muss. Aus dem Grund lerne ich auch kein Norwegisch.
Habe den Faden jetzt mal komplett durchgelesen und erfahren, dass jeder sein eigenes Süppchen liebt. Man muss es nur begründen können. Gut so.
Ich werde also auf Tiny Basic im PI warten oder es mir präcox besorgen müssen. Dann werde ich ja sehen, ob ich damit überhaupt zurecht komme.
Habe die Ehre.
jomodore
-
Ich werde also auf Tiny Basic im PI warten oder es mir präcox besorgen müssen. Dann werde ich ja sehen, ob ich damit überhaupt zurecht komme.
oder nimm einfach BBC-Basic in der neuen Pico-Edition von RISC OS.
Unterstuetzt auch GPIOs
https://www.riscosopen.org/new…pico-embiggened-once-moreFuer Python (habe heute mal meine ersten Gehversuche damit gemacht auf einem NanoPi NEO2 mit Python 3.4) fand ich diese Seite in deutsch nicht schlecht:
http://www.python-kurs.eu/python3_kurs.php
bzw.
https://readthedocs.org/projec…downloads/pdf/python-3.3/ (als PDF)
oder als Webseite https://py-tutorial-de.readthedocs.io/de/python-3.3/Eine deutsche Version von pyserial ( http://pyserial.readthedocs.io/en/latest/ ) waere auch gut... bzw. eine mit besseren Beispielen
-
Python und RaspberryPi haben zunaechst einmal ueberhaupt nichts miteinander zu tun.
Aber die Raspi Leute moechten das Programmieren naeherbringen und waehlten dazu Python aus.
KOENNTE einem ja zu denken geben in diesem Thread hier
Gibt auch alles fuer C idR. -
Aber die Raspi Leute moechten das Programmieren naeherbringen und waehlten dazu Python aus.
Stimmt - dazu die passende Passage aus Wikipedia:
Namensgebung und LogoDer Name wird wie raspberry pie ausgesprochen, das englische Wort für Himbeerkuchen. Die „Himbeere“ knüpft an die Tradition an, Computer nach Früchten zu benennen, wie etwa Apple oder Acorn. Das „Pi“ steht für „Python interpreter“, ursprünglich sollte der Rechner mit fest eingebautem Interpreter für die Programmiersprache Python geliefert werden, ähnlich wie bei den Heimcomputern der 1980er-Jahre fast durchweg ein BASIC-Interpreter eingebaut war.
Das Logo des Projekts wurde im Rahmen eines öffentlich ausgeschriebenen Wettbewerbs ausgewählt. Es zeigt eine stilisierte Himbeere.
-
Danke für die vielen Links zu Tutorials. Sehr freundlich.
Ich habe mir das Heftchen "Python für Einsteiger" (9,90 €) gekauft: Auch nach ca. 5 Stunden Lesen kapiere ich nicht einmal die einfachsten Dinge.
Wozu brauche ich eine Mac/PC um einen PC wie Raspi zu programmieren? Das ist mir völlig unerklärlich. Der Raspi ist doch ein PC!
Der Autor wirft mit Wörtern um sich, die seinen Studienkollegen vertraut sind. Aber mir nicht! (z.B. Shell). Mir fehlen Erklärungen, die ich mir merken kann.
Der Autor liebt den Satz: "Macht nichts, wenn Sie das noch nicht verstehen. Darauf kommen wir später noch."
Der Autor klärt über 20 Seiten nicht auf, warum er keine Programmnummern vergibt wie bei BASIC. Also gehe ich davon aus, dass es die bei Python gar nicht gibt.
Der Autor sugeriert mit seiner Struktur "Schritt 1, Schritt 2, ..... ", dass hier Wissen sukzessive in Portionen verabreicht wird. Aber ich hätte immer wieder Fragen zu seinen Aussagen, die aber unbeantwortet bleiben. So wird der Einstieg in Python unsystematisch. Und das mag ich überhaupt nicht.
Ich fühle mich in meiner Blödheit nicht ernst genommen. Und ich bin blöd. Denn ich habe 9,90 Euro bezahlt für reines Mitteelmaß.
jomodore
-
Danke für die vielen Links zu Tutorials. Sehr freundlich.
... ich habe sie alle ignoriert und mir fuer 10 eur ein schlechtes (?) Heft gekauft und beschwere mich nun darueber.
-
Ich habe mir das Heftchen "Python für Einsteiger" (9,90 €) gekauft:
[...]
Der Autor klärt über 20 Seiten nicht auf, warum er keine Programmnummern vergibt wie bei BASIC.Ich nehme an, es geht um Zeilennummern. Die gibt es bei keiner aktuellen Programmiersprache, auch nicht bei modernen BASICs.
Und nein, sowas muss in dem Heft nicht erwähnt werden. Wenn "Python für Einsteiger" drauf steht, kann man nicht erwarten, dass "Python für Basic2-Versaute" drin ist. -
Wozu brauche ich eine Mac/PC um einen PC wie Raspi zu programmieren? Das ist mir völlig unerklärlich. Der Raspi ist doch ein PC!
Man kann auch direkt auf dem Raspi programmieren. Man sollte aber auch beachten: Python und Raspi sind nicht unzertrennlich verbunden. Python ist einfach eine Programmiersprache, die auf vielen Plattformen zu finden ist, AUCH auf dem Raspi. Und da Du auf einem Raspi auch Texteditoren usw benutzen kannst, kannst Du logischerweise auch auf dem Raspi in Python programmieren. Keine Ahnung was in dem 9,90-Heft dazu drin steht, aber soweit ich das verstanden habe, sollte es darin nur um die Sprache gehen, von daher ist es letztendlich Dir ueberlassen, auf welcher Plattform Du programmierst. -
-
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." - Edsger W. Dijkstra
("Es ist praktisch unmöglich, gute Studenten gute Programmieremethodik zu lehren, die zuvor einmal mit BASIC in Kontakt gekommen sind: Als potentielle Programmierer sind sie mental verstümmelt, ohne jegliche Hoffnung auf Heilung.")
-
Ja und dieser Mythos zieht sich seit Jahrzehnten im gleichen Tenor in den Zitaten durch.
Wichtiger ist IMHO, dass man etwas offen an Sachen und Problemlösungen rangeht als ständig nur das Bekannte als Nonplusultra heranzuziehen und alles Neue als schlecht abwinkt. -
Ich habe die LINKS hier nicht alle ignoriert. Ich habe einige verfolgt. Aber als ich (zuvor) in einem großen Kiosk vorbeikam, habe ich tatsächlich dieses Heft gesehen und dann sofort gekauft. Ein bisschen Spannung und Erwartung muss ja sein.
Dass das Heft jetzt auf mich BASIC-Dummie nicht so dolle wirkt, liegt eben am Autor. Der zieht sein Ding durch. Ich persönlich mag lieber die Abschweifung vom Thema als das Ständige: "Das erfahren sie später".
Habe gestern per Zufall einen Telekom-Programmierer getroffen. Der wollte mir den Unterschied von PYTHON zu BASIC auf die Schnelle erklären. Aber ich verstand nichts. Sein Hauptsatz: Die Programmzeilen fallen in P weg. P arbeitet mit Methoden.
Das ging mir nicht in den Kopf. Ich fragte mich (und ihn), wie man Programmverzweigungen hinkriegt, wenn man nicht ausdrücken kann, wohin verzweigt wird. Aber ich werde eines Tages noch dahinter kommen.
Oder ich warte, bis BASIC auf dem PI läuft. Das soll ja in der Mache sein.
jomodore