Grüß euch!
Falls ich lieber ins pc Forum sollte, verschiebt mich bitte.
Ich programmiere bisher in c, ausschließlich microcontroller. Ok vor
wirklich vielen Jahren hatte ich mal eine c++ Schulung aber da würde ich
nicht mal von realen Grundkenntnissen sprechen. Grundhahnung sag ich
mal.
Raspberry hat mir python gezeigt und das benutze ich inzwischen
eigentlich nur statt matlab.
Ich habe jetzt vor, mich in c++ hinein zu arbeiten. Aber nicht furz
trocken am pc sondern schon am raspberry Pi. Etwas zusatzhardware soll
auch dazu. Dafür suche ich hilfreiche Materialien.
Für c++ generell habe ich das Buch c++ primer als empfehlenswert
identifiziert. Ich bin aber nicht der weltweit größte checker, so dass
ich die Brücke zum raspberry Pi benötige. Und zwar am besten
exemplarisch. Könnt ihr mir da irgendwelche Empfehlungen machen über das
o.g. Buch hinaus? Beim raspberry werden sich Performance Sünden
vermutlich bemerkbarer machen als am pc. Die uc artige Hardware ist dann
noch da und generell habe ich von Qt und leider auch linux nochnicht so
viel Plan.
Nein ich versuche wirklich nicht zu Trollen....könnte mir denken dass
das so aufgefasst werden kann. Ich hoffe mal es gibt Gleichgesinnte die
mein Anliegen verstehen und am besten helfen können.
Ciao
Welchen Vorteil versprichst du dir von c++ gegenüber c am Raspberry? Ich
muss sagen das seitdem es andere gute Objektorientierte
Programmiersprachen gibt, reizt mich c++ so überhaupt nicht mehr, schon
gar nicht ums einfach nur zu lernen. Objektorientierung hast du auch in
Python, Java oder C#, außer wenn du eventuell was mit Qt machen willst,
würde ich heute nicht mehr freiwillig c++ lernen.
Hi,
Ich würde das gerne auch lernen. Ich sehe darin eine verwandte Sprache,
mit der ich auch mal in modernere Software Design Techniken rein kommen
kann.
Und die Performance ist doch bei c++ eigentlich immer noch gut.
C/C++ auf dem RPi ist eigentlich ziemlich einfach:
VisualStudio Code installieren, ein hello world in test.cpp speichern,
F5 drücken und auswählen womit es kompiliert werden soll.
Das geht auch bequem remote von einem anderen PC aus: auf dem PC VSCode
installieren, remote ssh extension installieren. Wenn man sich mit dem
RPi mit RemoteSSH verbindet, dann wird ein VSCode Server auf dem RPi
installiert und man kann sofort remote editieren, kompilieren und
debuggen.
Aber C++ auf µC ist genauso einfach.
Ich stimme tim_taylor zu.
Wenn es doch unbedingt C++ sein soll, dann achte darauf, dass die
Lehrmaterialien modern sind und mindestens C++17 Niveau haben. Gibt
genug (gebrauchte, Bibliothek etc.) Lehrbücher die noch so etwa auf
C++98 Niveau sind, also Asbach Uralt.
Ansonsten verbreitet sich Rust immer mehr im vorherigem C++ Umfeld.
A. N. schrieb:> Ich stimme tim_taylor zu.>> Wenn es doch unbedingt C++ sein soll, dann achte darauf, dass die> Lehrmaterialien modern sind und mindestens C++17 Niveau haben. Gibt> genug (gebrauchte, Bibliothek etc.) Lehrbücher die noch so etwa auf> C++98 Niveau sind, also Asbach Uralt.>> Ansonsten verbreitet sich Rust immer mehr im vorherigem C++ Umfeld.
Das ist schon lustig: da kommt jemand und sagt, daß er gerne C++ lernen
will, und schon wird ihm in zwei von drei Antworten empfohlen, doch
lieber etwas vollkommen anderes zu machen. Klassischer Fall von Thema
verfehlt, würde ich sagen.
Lieber TO, es gibt unter C++ keine RasPi-spezifischen Sachen: einfach
nur das Metapackage "build-essential" installieren ("apt-get install
build-essential") und schon stehen Dir der C-Compiler gcc und der
C++-Compiler g++ zur Verfügung, wie unter so ziemlich allen
debian-basierten Linux-Systemen auch. Dazu noch einen anständigen Editor
-- und ja: für den Anfang würde ich eher einen Editor als eine IDE
empfehlen, das erleichtert und verbessert das Verständnis der
Zusammenhänge -- und schon kann es losgehen.
Zu den sehr angenehmen Eigenschaften von C++ gehört es übrigens, daß
sich damit nicht nur die C++-eigene Standard Template Library benutzen
läßt, sondern auch eine Unmenge weiterer C- und C++-Bibliotheken. Großer
Beliebtheit erfreuen sich beispielsweise die Boost-Bibliotheken [1], die
sehr umfangreiche Funktionen zur Verfügung stellen und stetig
weitergepflegt werden. Gleichzeitig kannst Du aber beispielsweise zum
Zugriff auf die RasPi-Hardware die GPIOs natürlich ohne jede
Einschränkung auf die etablierten C-Libraries zurückgreifen,
GUI-Bibliotheken wie etwa Qt oder auch Webframeworks wie Wt [2]
benutzen, ganz wie Du magst.
[1] https://www.boost.org/
[2] https://www.webtoolkit.eu/wt
Hiho,
Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen,
aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich
will z. B. den spi benutzen und Blöcke per dma zu einem Display
schicken.
Das ist doch zielhardware spezifisch oder wie stelle ich mir das am
besten vor? Hat einer einen link parat für so was?
Ansonsten bin ich generell mit dem c++ Primer gut beraten außer das das
halt nur c++11 bietet?
VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert.
Man kann für den Anfang natürlich auch ein test.cpp in nano oder vi
erstellen und einfach per g++ übersetzen (das müsste der Pi schon
mitbringen). VSCode ist aber sowas wie ein Schweizer Messer für mich
geworden und kann für viele Sprachen verwendet werden, oder um einfach
git Repos zu verwalten wegen der mittlerweile sehr guten git
Integration.
Für einen alten Teil meiner Heimautomatisierung habe ich ein RFM69 Modul
am RPi, das hat auch ein SPI. Dafür hatte ich ein Program auf github
gefunden, das benutzt die wiringPi Lib. Der Autor der Lib wurde vor ein
paar Jahren sauer gefahren und hat den Support eingestellt, aber der
vorhandene Code funktioniert immer noch. Vielleicht gibt es da was
Neueres, würde mich auch interessieren.
Das Programm hatte ich mal mit Eclipse cross compiliert, aber die
Installation und die Bedienung ist ein K(r)ampf gegenüber VSCode!
Und die Online Compiler sind mittlerweile auch Top, können aber
natürlich die Pi HW ansteuern :)
Dobby schrieb:> Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen,> aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich> will z. B. den spi benutzen und Blöcke per dma zu einem Display> schicken.
Rein theoretisch könnte man einen Raspberry pi oder sowas ähnliches auch
ohne Betriebssystem nehmen und alles selbst bauen.
Das wirst du aber nicht wollen.
Stattdessen wirst du den unter Linux laufen lassen wollen.
Dann siehst du von irgendwelchen Geräten keine Adressen oder sowas,
sondern hast für SPI bspw. einen Treiber, der dir ein device zur
Verfügung stellt. Das öffnet man mit seinem Namen im Dateisystem; im
einfachsten Fall liest und schreibt man dadrin rum und konfiguriert
vielleichtn noch ein bißchen..
Also musst du nur nach Doku und/oder Beispielen für das jeweilige device
suchen.
Etwas anders sieht es natürlich aus, wenn du selbst Treiber für sowas
bauen willst. Das wird aber so schnell nicht der Fall sein, vermute ich.
Johannes S. schrieb:> VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert.
Da muß ich mich Sheevas Empfehlung anschließen, am Anfang ohne IDE zu
arbeiten und zunächst nur einen Editor, den Compiler, und später ggf.
etwas wie make oä. zu benutzen. IDEs sind ja in der Regel ohnehin nur
Frontends für solche Tools, die womöglich zu einigen Features dieser
Werkzeuge keinen Zugang bieten, und es ist schon durchaus sinnvoll zu
lernen, was die Werkzeuge tatsächlich können.
> Man kann für den Anfang natürlich auch ein test.cpp in nano oder vi> erstellen und einfach per g++ übersetzen (das müsste der Pi schon> mitbringen). VSCode ist aber sowas wie ein Schweizer Messer für mich> geworden und kann für viele Sprachen verwendet werden, oder um einfach> git Repos zu verwalten wegen der mittlerweile sehr guten git> Integration.
All das geht ganz wunderbar auch auf einer Kommandozeile, und uralte
"Editoren" wie Emacs und vi konnten das schon, als es VSCode noch gar
nicht gab. Auch die moderneren Alternativen wie Atom und Sublime können
das natürlich mit links.
> Für einen alten Teil meiner Heimautomatisierung habe ich ein RFM69 Modul> am RPi, das hat auch ein SPI. Dafür hatte ich ein Program auf github> gefunden, das benutzt die wiringPi Lib. Der Autor der Lib wurde vor ein> paar Jahren sauer gefahren und hat den Support eingestellt,
Die jüngste Änderung an WiringPi war erst letzten Monat [1],
offensichtlich arbeiten also immer noch Leute an der Library.
[1] https://github.com/WiringPi/WiringPi
Dobby schrieb:> Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen,> aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich> will z. B. den spi benutzen und Blöcke per dma zu einem Display> schicken.> Das ist doch zielhardware spezifisch oder wie stelle ich mir das am> besten vor? Hat einer einen link parat für so was?
Vielleicht solltest du dich zuvor erstmal mit Linux vertraut machen. Du
bist auf dem Pi in der Regel nicht "bare metall" unterwegs, sondern
gehst bei Hardwarezugriffen über den entsprechenden Triber des
Betriebssystems. Das alles ist erstmal unabhängig von der später
verwendeten Programmiersprache und unterscheidet sich um einiges von dem
Arbeiten mit einem einfachen µC.
https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md#driver
VSCode ist da immer noch ein einfacher Editor, verglichen mit Eclipse
und CDT wo man gar nicht mehr sieht was abgeht. Zum Kompilieren gcc oder
g++ oder make Aufruf in tasks.json eintragen und das ist eine
transparente Vereinfachung. Für mehr Komfort gibt es cmake oder sonstige
Unterstützung, aber man kann es trotzdem einfach halten.
Bei Fehler läuft ein vorkonfigurierter parser über den Output und
liefert den Luxus das man mit einem Klick an der Fehlerstelle im
Quellcode ist. Der Parser verwendet RegExp, kryptisch aber auch
standard.
Ein gdb ist fürs debuggen ebenfalls vorkonfiguriert.
Nur_ein_Typ schrieb:> Die jüngste Änderung an WiringPi war erst letzten Monat [1],> offensichtlich arbeiten also immer noch Leute an der Library.
ok, nur nicht mehr der org Autor, was im ersten Satz mit 'unofficial
fork' genannt wird. Aber das ist OSS, da kann jeder weiterentwickeln.
Johannes S. schrieb:> VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert.
Alternativ kann man auch VSCodium verwenden. Ist das gleiche, nur ohne
die Microsoftsche Nachhausetelefonierfunktion.
Nur_ein_Typ schrieb:> Da muß ich mich Sheevas Empfehlung anschließen, am Anfang ohne IDE zu> arbeiten und zunächst nur einen Editor, den Compiler, und später ggf.> etwas wie make oä. zu benutzen.
Heute ist da eher CMake angesagt. Selber Makefiles zu schreiben, macht
man heute eigentlich kaum noch. Und CMake wird auch von sehr vielen IDEs
und Editoren direkt unterstützt.
Moby schrieb im Beitrag #6727156:
> Der durchschnittliche C++ Programmierer wird immer mehr Hw-Ressourcen> benötigen als der durchschnittliche C (oder gar Asm) Programmierer.
Wer hat dir denn den Quatsch erzählt?
Rolf M. schrieb:> ...>> Moby schrieb:>> Der durchschnittliche C++ Programmierer wird immer mehr Hw-Ressourcen>> benötigen als der durchschnittliche C (oder gar Asm) Programmierer.>> Wer hat dir denn den Quatsch erzählt?
Was er vermutlich nicht meint, aber trotzdem so ist:
Rechner und auch kleine Rechnerchen werden für viele verschiedene Dinge
benutzt. Das fängt an bei eher schlichten Spielereien wie LED blinken,
oder wenn der Wasserpegel steigt dann abpumpen. Am anderen Ende ist es
wesentlich komplexer mit allerlei Netzwerkkommunikation,
Sicherheitsanforderungen, oder was man halt auf Tausenden Seiten an
Anforderungen stellen kann, inkl. Testbarkeit, geregelte
Entwicklungsbedingungen, Teamarbeit, Kombination verschiedener
Zulieferer, Wiedervertbarkeit und anderen Randbedingungen.
Während man am einen Ende noch gut mit Assembler auskommt, braucht man
auf dem Weg zum anderen Ende auch bessere Werkzeuge, um die Komplexität
effizient in den Griff zu bekommen. Das kann dann bspw. über C zu C++
gehen, oder ganz anderen Umgebungen.
Insofern ist Assembler eher am unteren Ende, C++ eher am oberen zu
finden.
Wenn C++ also im Schnitt für komplexere Projekte sinnvoll ist, wird der
durchschnittliche C++-Entwickler natürlich auch mehr Resourcen brauchen
- nicht wegen der Sprache, sondern weil er halt mehr macht als eine LED
blinken zu lassen.
Wahrscheinlich aus Versehen ist der Satz damit wohl doch richtig im
Wortlaut.
>Oder ist deren Ersatz durch einen Raspi Ausdruck der Einsicht, daß es>für C++ ein Hardware-Update braucht? 😀
Ich entnehme eurer Diskussion, dass das ein altes thema hier ist....
Aber so ist es.
In c fühle ich mich auf uc wohl und habe mich zu 80% auf einen
Lösungsansatz eingegrooved. Sprich da weiß ich wie ich für mich die
Software organisiere und Probleme löse.
Wenn ich in c++ reingucke, dass auch ohne Handbremse und vor allem ohne
Damoklesschwert über mir. Für mich ist das nicht verwerflich.
Daher schiele ich auf den Raspi - das ist ja nun doch eher ein
vollwertiger Computer mit angenehmen Zusatzfeatures.
Dobby schrieb:>>Oder ist deren Ersatz durch einen Raspi Ausdruck der Einsicht, daß es>>für C++ ein Hardware-Update braucht? 😀>> Ich entnehme eurer Diskussion, dass das ein altes thema hier ist....
Du entnimmst richtig, und unser Mobby ist dabei seit Jahren der mit
Abstand unsachlichste und fanatischste "Kommentator". Dabei hat er es
mit einer bemerkenswerten Penetranz, gebetsmühlenhaften Wiederholungen
von falschen, widerlegten Behauptungen und ausufernden unsachlichen
Zerstörungen fremder Threads sogar geschafft, daß der hiesige Betreiber
ihm ein Hausverbot ausgesprochen hat, das er, wie auch hier wieder,
beharrlich ignoriert. Seit mittlerweile mehreren Jahren bombardiert er
das Forum und seine Nutzer mit persönlichen Beleidigungen gegen den
Betreiber und die Moderatoren, so daß mittlerweile eine Reihe von
Überlegungen wie zum Beispiel diese [1] angestellt worden sind, wie man
diesen... "Herrn" eliminieren könnte.
[1] Beitrag "Lästiger Dauerspammer."> Aber so ist es.
Wie ist es? Daß C++ mehr Ressourcen benötigen würde? Diese Aussage ist
in dieser Pauschalität leider nicht ganz richtig. Richtig ist, daß es
davon abnängt welche Features von C++ genutzt werden. Klassen und
Templates gibt es kostenlos, diese Features benötigen im Vergleich mit
einer äquivalenten reinen C-Lösung überhaupt keine zusätzlichen
Ressourcen, helfen aber ungemein dabei, den Sourcecode besser zu
organisieren, Boilerplate und andere Wiederholungen zu vermeiden, und
den Code lesbarer und übersichtlicher zu gestalten. Vererbung benötigt
minimale Ressourcen für die Virtual Method Table (VMT) sowie beim Aufruf
einer vererbten Methode ein paar wenige CPU-Ticks für den Lookup in der
VMT. Exceptions dagegen sind relativ teuer und in stark limitierten
Umgebungen tendenziell keine gute Idee, ähnliches gilt für die Standard
Template Library (STL). Aber welche Features man nutzt und welche nicht,
hängt natürlich sehr wesentlich von der Zielplattform und von dem
konkreten Anwendungsfall ab -- wenn zum Beispiel so etwas wie USB,
Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel kommen,
wird Assembler schnell unbeherrschbar komplex und umfangreich, und C++
kann hier wesentlich helfen, die Komplexität zu beherrschen.
> Wenn ich in c++ reingucke, dass auch ohne Handbremse und vor allem ohne> Damoklesschwert über mir. Für mich ist das nicht verwerflich.
Nein, ist es auch nicht. Letzten Endes ist so etwas ja immer eine
ökonomische Betrachtung im Dreieck aus den Kosten für die
Laufzeitumgebung, die Stückzahl und die Entwicklungszeit -- wobei
möglicherweise noch einige weitere Randbedingungen berücksichtigt werden
müssen, je nach Anwendungsfall.
> Daher schiele ich auf den Raspi - das ist ja nun doch eher ein> vollwertiger Computer mit angenehmen Zusatzfeatures.
Richtig, und zwar mit allen Annehmlichkeiten und Unannehmlichkeiten, die
damit einher gehen. Im Vergleich zu einem kleinen 8-Bit-Microcontroller,
bei dem der Entwickler im Grunde genommen den "Betriebssystemkernel" für
den Controller entwickelt und sich deswegen auf das Timing verlassen
kann, ist das bei einem Raspi überlicherweise etwas anders, wenn man
keine entsprechenden Vorkehrungen trifft, und solche Unterschiede muß
der Entwickler berücksichtigen.
Insofern viel Spaß, Freude und Erfolg beim Erlernen von C++!
Moby schrieb im Beitrag #6727486:
>> USB, Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel>> kommen>> kann man sich aber selbst dann noch mit angeflanschter,> spezialisierterer Hardware für diese Zwecke behelfen.
klar, beim 8 Bitter muss man jedes Bit kennen, und für o.g. gibt man
alles wieder aus der Hand? So black Boxes mit Eigenleben sind einfach
nur ein Krampf. Auf einer MCU lässt sich alles bis ins kleinste Detail
debuggen und Dank großer Community gibt es tolle Librarys zum kleinen
Preis. Nur das Assembler nur zu sich selbst kompatibel ist und kaum eine
große Lib in Asm populär ist.
Moby schrieb im Beitrag #6727569:
> Sicher. Aber will man das unbedingt immer oder will man sich nicht> vielmehr auf Kernaufgaben konzentrieren?
Ich benutze den Debugger auch zum analysieren, ich weiß nicht immer
sofort ob ich Funktionen richtig nutze und oft auch aus Neugier zum
Verständnis.
Moby schrieb im Beitrag #6727569:
> Man muss das passende in der Vielfalt überhaupt erst mal finden. Es muss> dann wirklich passen. Es muss fehlerfrei und vertrauenswürdig sein.
Deshalb schrieb ich nicht ‚kostenlos‘ :)
Eine Grafik wie lvgl, ein Dateisystem oder einen Asynchronen Webserver
mit Websockets schreibt man nicht mal eben selber. Und alles das ist
heute embedded, nicht mehr nur HD44780 LCD, serielle Schnittstelle und
handverlesene SD Karten.
Und die Kanonen wie F7 oder RPi Zero werden immer günstiger, bei
letzterem ist eben ein kleines Linux von Vorteil wenn man Dateisystem,
Ethernet und USB haben möchte. Was auf einem F7 auch geht, aber schon
einen Tick komplizierter ist.
Moby schrieb im Beitrag #6727486:
> Rolf M. schrieb:>> Wer hat dir denn den Quatsch erzählt?>> Nun, solcherlei Antworten sind, wie einige weitere sicher alles andere> als sachliche Argumente.
Ich habe von dir in dem Thread bisher auch nichts sonderlich sachliches
gelesen. Nur irgendwelche Behauptungen, die ziemlich aus der Luft
gegriffen wirken. Deshalb meine Frage.
> Nur_ein_Typ schrieb:>> Daß C++ mehr Ressourcen benötigen würde? Diese Aussage ist in dieser>> Pauschalität leider nicht ganz richtig.>> Das hat auch niemand behauptet.> Um mit C++ (wie OOP ganz allgemein) aber ähnlich sparsam hinzukommen wie> mit C oder gar der Stufe darunter braucht es aber eine gewisse Umsicht> und eines gewissen Knowhows. Allzuschnell benötigt man damit mehr> Speicher und Rechenzeit als nötig. Die Gegenseite dieser Münze mag> gewonnene Bequemlichkeit sein- wirklich leisten kann man sich das aber> eben erst ab einem gewissen Hardware-Niveau. Das ist bei kleinen> 8-Bittern sehr oft noch nicht gegeben. Wenn>>> USB, Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel>> kommen>> kann man sich aber selbst dann noch mit angeflanschter,> spezialisierterer Hardware für diese Zwecke behelfen.
Klar, es ist natürlich kein Problem, beliebig komplexe Programme in
Assembler zu schreiben, wenn man konsequent alle Teile, die tatsächlich
komplex sind, in externe Komponenten auslagert. Diese sind aber sehr
wahrscheinlich nicht mehr in Assembler implementiert.
Moby schrieb im Beitrag #6728289:
> Die Tatsache, daß es ganz anders gekommen ist wird doch vermutlich etwas> bedeuten, oder?
Ja, es werden immer wieder die gleichen Vorurteile hervorgekramt:
Moby schrieb im Beitrag #6728289:
> In der Praxis verschleudert OOP viel zu oft Speicher und Rechenzeit.
Moby schrieb im Beitrag #6728289:
> Sehr viele Anwendungen aber benötigen weder Grafik, Netzwerk, USB,> Dateisystem.> Zum Beispiel Aktoren und Sensoren, um im Bild zu bleiben.
Es ging aber um C++ auf Raspberry Pi. Wenn das nicht gebraucht wird,
dann kann man einen kleinen CM0 nehmen und trotzdem Von C++ profitieren.
Aber da fängt der Kreislauf dieses Nullsummenspiels wieder von vorne an.
Wann das TO wirklich C++ lernen will, dann ist der PC eigentlich genau
die richtige Basis.
Pi geht natürlich auch, aber da ist die Toolchain sicherlich um
Größenordnungen lahmer. Die ganze Bedienung ist zäher.
Auf den Mobby Schwachfug gehe ich da gar nicht groß ein. Entweder macht
man mit C++ auf µC, oder eben nicht. Bleibt doch jedem selber
überlassen(im Hobby).
Irgendwelche Prediger brauchts da nicht zu.
Moby schrieb im Beitrag #6728315:
> Johannes S. schrieb:>> immer wieder die gleichen Vorurteile>> Da wär ich in der Be- und Abwertung wesentlich vorsichtiger.
Bist du aber nicht. Du behauptest einfach irgendwas und erwartest, dass
andere das als gottgegeben hinnehmen, nur weil du das so sagst.
> So wirklich erklärt hat der TO Dobby ja nicht, warum und wofür es denn> nun C++ sein muß, wenn es doch Python auf dem Raspi genauso tut.
Doch, hat er:
Dobby schrieb:> Ich habe jetzt vor, mich in c++ hinein zu arbeiten.
Es muss C++ sein, weil er vor hat, das zu lernen. Da macht es wenig
Sinn, sein Programm stattdessen in Python zu schreiben.
Moby schrieb im Beitrag #6728315:
> Vielleicht etwas überspitzt zusammengefasst: Was> der gute Programmierer hinterher wirklich mit C++ an Zeit in seinen> Projekten spart ist vorher in seine Ausbildung geflossen.
Lernen und Weiterbildung sehe ich nicht als Nachteil. Es gibt auch C
Programmierer die nach dem ersten Kapitel glauben genug zu Wissen und
bauen dann ihre "if Schleifen". 10 Abfragen hintereinander um eine
Variable auf 10 Werte zu überprüfen, andere lernen weiter und erkennen
das es richtige Schleifen mit for/while und Arrays und Zeigern gibt und
erweitern damit ihren virtuellen Werkzeugkasten. Genauso geht es mit C++
weiter, man muss die Abstraktion verstehen die man z.B. mit der C++
Standardlib bekommt und wie einfach dann aus einem Array eine sortierte
Liste wird. Der Assembler Programmierer sucht derweil noch den Fehler in
der Indexberechnung seiner Strukturen. Und er mag den Umstieg von 8 auf
32 Bit nicht weil dann seine Codesammlung komplett obsolet wird. Während
er noch die Registerstruktur eines Cortex-M studiert, kommt jemand und
möchte einen Tensilica einsetzen weil der billig ist und sogar WLAN kann
oder die Power von einem RPi Zero nutzen. Ich fand Assembler (besonders
die Motorola 6809/68k) sehr interessant und es hilft dem Verständnis für
µC, aber ich bin froh nicht auf so einem Level hängen geblieben zu sein.
Und es ist umso besser das C++ auf µC absolut keine Ausnahme mehr ist.
Natürlich könnte man versuchen etwas in asm zu optimieren, aber die
vielen Tricks die ein moderner Compiler drauf hat, die muss man auch
erst mal lernen. Auch Schachcomputer sind heute nicht mehr zu schlagen.
> So wirklich erklärt hat der TO Dobby ja nicht, warum und wofür es denn> nun C++ sein muß, wenn es doch Python auf dem Raspi genauso tut. Eine> konkrete Anwendung die genau nach C++ schreit hat er nicht genannt.
Braucht man auch nicht wenn man eine Sprache lernen möchte. Erstmal
schauen und verstehen was man da alles für Werkzeuge bekommt und wie und
wo man die einsetzen kann. Geht natürlich auch auf dem PC, aber mit
Hardware ist es für mich auch attraktiver. Vectoren, Listen & Co. ist
auf dem PC oder mittlerweile Online Compilern einfacher
nachzuvollziehen, aber es spricht auch nix dagegen alles auf einem
Nucleo Board zu erforschen weil das mittlerweile auch Plug&Play ist.
...und wieder wird dem "lästigen Dauerspammer" [1] eine Plattform dazu
geboten, einen fremden Thread zu hijacken und zu zerstören.
Obwohl er eigentlich Hausverbot hat. Oder wurde das aufgehoben? Obwohl
er keine Änderung seines Verhaltens erkennen läßt, das der Grund für das
Hausverbot war?
[1] Beitrag "Lästiger Dauerspammer."
Dobby schrieb:> Ich habe jetzt vor, mich in c++ hinein zu arbeiten. Aber nicht furz> trocken am pc sondern schon am raspberry Pi.
Meine Anleitung funktioniert exakt so auch auf dem Raspberry Pi
http://stefanfrings.de/qt_lernen/index.html