Moin!
Da ich "mal wieder" mit dem Pro Mini etwas mache arbeite ich mit einer
LoRa Library, die ich über den Lib Manager eingebunden habe.
Es funktionierte erstmal nichts... LoRa-begin(...) lief einwandfrei,
zeigte keinen Fehler. Angeblich sendete das Modul auch, selbst wenn ich
noch keinen Empfänger gebaut habe.
Naja, die Lib meldete auch alles "ok", wenn ich das Modul aus dem Sockel
zog oder eine Leitung der SPI abklemmte.
In den Source Code rein... oha.. das C Kommentare erlaubt war dem Coder
wohl fremd. Nicht mal die Public Class hat er kommentiert, was machen
seine Routinen eigentlich ??? Welchen Wertebereich haben die Parameter?
Was sind die Rückgabewerte? Es ist doch eben Sinn des Arduino Konzeptes
dass jemand NICHT das komplexe Datenblatt des SX1278 lesen muss. Hat ja
nicht jeder Nachrichtentechnik studiert.
Im gesamten Code kommt nicht ein einziges Mal eine Prüfung vor, ob das
Modul überhaupt da ist! Ob abgezogen oder im Sockel, völig egal. Also
wenigstens mal ein Register auslesen, ob da zb ein richtiger Wert drin
steht.
Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul
festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in
das Datenblatt. So dass es auch funktionierte. Die Libs waren völlig
unbrauchbar.
Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen
Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux?
Gruss,
Christian
Willkommen in der heutigen IT-Welt.
Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch
lädt, dann ist man wahlweise undankbar, soll es selbst besser machen, zu
dumm die library zu benutzen usw. In jedem Fall ist der Uploader der
Held und der Kritiker der Depp.
Also macht man es in der Konsequenz gleich selbst.
Und bei Linux gibt es auch nicht DIE Maintainer. Manche Distris haben
sorgfältige Maintainer, manche nicht.
A. N. schrieb:> Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch> lädt, dann ist man wahlweise undankbar, soll es selbst besser machen, zu> dumm die library zu benutzen usw. In jedem Fall ist der Uploader der> Held und der Kritiker der Depp.
Och, das kenne ich.. "Sei froh,dass überhaupt was da ist!" Ich habe 1987
bei meinem damaligen Lehrer Volker Pagel die Grundlagen der
Programmierung auf einem Apple II gelernt, Fortran und Pascal. Und jedes
Modul hatte einen Kommentar-Header, wo drin stand:
Eingabe
Ausgabe
Funktion
Veränderte Globale Werte
Letzte Änderung
Damit wurde der Code lesbar, auch für jene, die erst später damit in
Kontakt kamen. Dann kamen die Freaks, die alles besser wussten, C lese
sich von allein, sie sehen den Code und wissen sofort was dahinter
steckt. Je weniger Kommentare desto mehr "Elite" war der Coder.
Variablen länger als 1 Buchstabe waren schon Luxus! Und jeder erstarrte
in Ehrfurcht vor diesen Elite-Codern.
Schwachsinn!
Das System Arduino ist so konzipiert,dass es die Komplexität auf eine
leicht zu beutzende API reduziert. Und wer dafür was macht sollte sich
dran halten, basta!
Beim SIM800L gab es einige Hardware Revisionen. Befehle verschwanden,
neue kamen dazu. Die alten Libs, die schon lange nicht mehr laufen sind
aber weiter in der Shell drin. Kümmert sich ja keiner drum.
Und hier weiss auch jeder gleich was gemeint ist... und wie die Funktion
zu benutzen ist.... PLONK. Die Sandeep Mistry Lib ist Murks! Angeblich
am MIT geschrieben worden.
Warum erwartest du bei Arduino libs bessere Qualität als bei Open Source
Software generell?
Irgendwer hat halt mal irgendwas gebraucht, sich selbst was gebastelt
und hat sich dann noch die Mühe gehabt es auf github zu werfen.
Am geschenkt'n Gaul...
Beitrag "Arduino Librarys - Wer prüft diese ?"
Soviel hat sich in einem Jahr nicht geändert. Bis auf die Corona
Scheiße, aber Corona kann jetzt nicht auch noch Schuldig sein an
schlechter Code Qualität.
Christian J. schrieb:> Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen> Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux?
Ich sag nur Google Play unter Android - aktuelle Fehlermeldung bei
Suche nach "Corona-Warn-App" (Standort D) auf meinem Tablet.
Die Meldung kann man glauben, muss man aber nicht.
Und nein, bei Suche nach z.B."Corona" werden durchaus andere Apps zu
Corona angezeigt.
Christian J. schrieb:> Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul> festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in> das Datenblatt. So dass es auch funktionierte.
Kann ich gebrauchen, lade mal hoch!
Hallo
Niemand - behaupte ich mal, wird aber tatsächlich auch so sein - warum
aber auch?!
Arduino als Gesamtsystem ist ein Produkt von Hobbyisten für Hobbyisten.
Auch wenn mit der Hardware natürlich Geld gemacht wird - übrigens in den
bescheidenen Umfang das sich Selbstbau, wenn es nicht unbedingt ein
Original Arduino (der mit den "echten" Namen und Made in Italiy) sein
muss- finanziel und vom Aufwand nur in Ausnahmefällen lohnt.
Auch den Anfänger oder reinen Nutzer einer fertigen Anwendung (oft aber
nicht nur im Modelleisenbahnumfeld) ist klar das das erstellen schon
eines relativ einfachen Sketches geschweige den einer Bibliothek sehr
aufwendig ist und viele Stunden und einiges an "Nerven" benötigt.
Natürlich ist es schön wenn eine Bibliothek sehr gut Dokumentiert ist,
viele praxisnahe und erklärende Beispiele vorhanden sind, eventuell
sogar weiter Unterstützung und Information durch externe Quellen wie
z.B. Tutorials oder Videos zur Verfügung stehen, aber das auch nur
ansatzweise für ein kostenloses und der Freizeit des Autors entstandenes
Produkt zu erwarten wäre eine Frechheit.
Aber wie nun mal die meisten die Bibliotheken und teilweise auch
Sketches nutzen ist doch so:
Einfach einbinden und die zu Verfügung gestellten Methoden und
Funktionen nutzen - was im Hintergrund passiert bzw. was alles möglich
ist interessiert nicht - Hauptsache es funktioniert.
Und wenn es nicht funktioniert sucht man sich in der sehr großen
Community bzw. im WWW halt eine andere Bibliothek oder gar komplettes
lauffähigen Sketch.
Ja für den "richtigen" Programmeier für den eher der Weg als das fertige
Produkt das Ziel ist und der alles aus einer Bibliothek herauskitzeln
möchte, aus ihr lernen will (und zwar besonders bei umfangreichen die
mit anspruchsvollen Sensoren und Protokollen hantieren) ist das alles
andere als ansprechend - es ist aber nun mal öfter so, man muss damit
leben und sich selbst an die Nase packen ehrlich zu sich selbst sein und
überlegen wie viel Arbeit man in eine Biblothek bzw. ein Sketch stecken
würde den man kostenlos der Allgemeinheit zur Verfügung stellen würde
und ob man wenn es endlich so Funktioniert wie es soll, alles nochmal
Tagelang durcharbeitet und schaut wo man besser verständliche Kommentare
schreiben könnte, eine "echte" Dokumentation erstellt, noch mehr
Beispiele erstellt usw.
Würdest -"Du" (gemeint ist jetzt mit den "Du" jeder der sich
angesprochen fühlt und nicht der TO speziell) und eben nicht ein anderer
selbst es machen - nur für die Ehre und oft noch kontraproduktive Kritik
und Anfeindungen, egal wie sehr du dich bemüht hast...?
Verlangen und Ansprüche stellen ist natürlich einfacher, und auch der
Blick aus der bezahlten Profiecke ist ein ganz anderer.
Hinzu kommt das zwischen Programmierer und Programmierer riesengroße
Unterschiede bestehen und nicht zuletzt - wie es auch einige Foren immer
wieder beweisen ;-) -Programmierer, Elektronikbegeisterte, Bastler,
Halbprofis, "alte" Hasen usw. oft recht spezielle Typen sind die sich
nur sehr schwer von ihren Vorstellungen und "Ideologien" (auch manchmal
Vorurteile oder leben im ewig gestrigen auch bei der Technik)
verabschieden und in diesen Punkten lernfähig sind.
"Friss oder stirb" ist oft deren Grundeinstellung und auch das sie
jenseits der 40 Lebensjahre sind (das schreibe ich als ein kurz vor der
50 stehender) und das alleine schon als Leistung sehen
("Lebenserfahrung" lol), oder sich als was bessere fühlen weil sie Anno
1984 schon in der Schule Basic auf irgendeinen Apple II von irgendeiner
"Berühmtheit" erlernt haben...
Hennes
Christian J. schrieb:> Im gesamten Code kommt nicht ein einziges Mal eine Prüfung vor, ob das> Modul überhaupt da ist! Ob abgezogen oder im Sockel, völig egal. Also> wenigstens mal ein Register auslesen, ob da zb ein richtiger Wert drin> steht.>> Den gleichen totalen Mist habe ich bei einem SIM800L GSM Modul> festgestellt, letztlich alles selbst geschrieben nach Einarbeitung in> das Datenblatt. So dass es auch funktionierte. Die Libs waren völlig> unbrauchbar.>> Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen> Library Quellen hochladen kann? Gibt es keine Maintainer, wie bei Linux?
Was definierst du als offizielle Arduino Library Quelle?
Und wer oder was hindert dich daran, deinen
funktionierenden/verbesserten Code dort hochzuladen, damit nicht andere
in die gleichen Probleme hineinlaufen?
Kolter schrieb:> Was definierst du als offizielle Arduino Library Quelle?
Man könnte das auf die Libraries beziehen, die vom Bibliotheksverwalter
in der Arduino IDE angeboten werden.
Hallo
Wohl dass hier hindert ihn: (Leider Eigenzitat kommt hoffentlich nicht
überheblich rüber...)
Hennes schrieb:> Würdest -"Du" (gemeint ist jetzt mit den "Du" jeder der sich> angesprochen fühlt und nicht der TO speziell) und eben nicht ein anderer> selbst es machen - nur für die Ehre und oft noch kontraproduktive Kritik> und Anfeindungen, egal wie sehr du dich bemüht hast...?> Verlangen und Ansprüche stellen ist natürlich einfacher, und auch der> Blick aus der bezahlten Profiecke ist ein ganz anderer.
Allerdings sollte der wer mir da jetzt zustimmt auch so fair sein selbst
nicht über andere her zu ziehen - was ja nicht bedeutet auf Kritik zu
verzichten.
Aber Kritik darf nie(!) ein persönlicher Angriff sein, verallgemeinern,
darf nicht nur den Frustabbau dienen sondern sollte Alternativen
aufzeigen oder zumindest in ruhigen und sachlichen Worten beschreiben
was verbesserungswürdig ist.
Hennes
Christian J. schrieb:> Gibt es keine Maintainer, wie bei Linux?
Interessante Erwartungshaltung - nichts bezahlen (wollen), aber Qualität
erwarten. Es hindert Dich niemand, eine Library an Deine
Qualitätsvorstellungen anzupassen und der "Community" zur Verfügung zu
stellen.
A. N. schrieb:> Willkommen in der heutigen IT-Welt
Naja. Arduino hat mit "heutige IT-Welt" ungefähr so viel zu tun,
wie ein Seifenkistenrennen an der Grundschule mit der Formel 1.
> Kritisiert man genau dies, dass jeder seinen quick'n'dirty Code hoch> lädt, dann ist man wahlweise undankbar, soll es selbst besser machen,> zu dumm die library zu benutzen usw
Polemik. Jemand hat den Code mal geschrieben und er hat (vermutlich?)
für ihn funktioniert. Also hat er ihn der Allgemeinheit zur Verfügung
gestellt. Wenn er deinen Anforderungen nicht genügt, dann benutze ihn
nicht. Aber da es wesentlich mehr schlechte als gute Programmierer gibt,
ist es nur logisch, daß es auch wesentlich mehr schlechten als guten
Code gibt. Und einmal darfst du raten, welche Art von Programmierern
Arduino mit seiner Zielsetzung "für Laien" anzieht.
Eine QA oder ein Maintainer hätte an der Situation nur dahingehend etwas
geändert, daß niemand den kaputten Code zu sehen bekommen hätte. Das
Ergebnis wäre das gleiche: keine (funktionierende) Arduino-Library.
Für ein funktionierendes Open-Source Ökosystem fehlt hier noch etwas:
das Feedback, z.B. in Form eines Bugreports. Sich in einem Forum
auskotzen ist eine Sache. Aber das macht die Software nicht besser. Ein
Bugreport an den Autor, idealerweise gleich mit konkreten
Verbesserungsvorschlägen, würde die Situation verbessern (können). Macht
aber viel mehr Arbeit. Weniger Arbeit als das Selberschreiben aber auch.
Mein Fazit: Fehler in Open Source Software zu finden und zu bemängeln
ist nicht nur vollkommen ok, es ist sogar explizit erwünscht. Nur sollte
die Mängelanzeige dann in Form eines Bugreports erfolgen. Dann ist das
nämlich ein Beitrag zu Open Source, der genauso wichtig ist, wie das
Schreiben von Code.
Die Hassparade geht wieder los...
-----------------
Also erstmal zu den Fakten....
Die mit der IDE ausgelieferten Libs sind recht ok.
Meines Wissens nach mittlerweile fehlerfrei, und recht gut Dokumentiert.
Die über den Bibliotheksmanager erreichbaren sind zumindest so geprüft,
dass sie mit eben diesem Bibliotheksmanager und dem Builder
zusammenarbeiten und nicht das ganze System destabilisieren.
Inhalt und Funktionalität liegt ganz in der Hand des Erstellers.
Es findet also keine Zertifizierung statt, wie es z.B. WinzigWeich für
seine Treiber macht.
Ich denke mal, dafür fehlen einfach schlicht die Ressourcen.
Dann gibts eine ganz Menge von freien Libs, die man sich einfach so von
hinten ins System stopfen kann. Bei denen gibts keine Garantie auf
garnix.
Das System lebt davon, dass Fehler und Anforderungen an den Ersteller
gemeldet werden und dieser dann eben die Lib verbessert.
Hier die Vorgaben:
https://arduino.github.io/arduino-cli/library-specification/
Jens U. schrieb:>> Manche (Linux) Distris haben sorgfältige Maintainer, manche nicht.> Welche z.B:?
Ich bevorzuge Debian vor Ubuntu, weil ich in Ubuntu des öfteren auf
schwerwiegende Fehler gestoßen bin, die viele Monate lang nicht behoben
wurden (auch in LTS Versionen). Da nehme ich dann lieber das potentiell
weniger aktuelle Debian und aktualisiere einzelne Programme manuell,
wenn es sein muss.
Wer es detaillierter wissen will:
Seit Ubuntu 18.10 habe ich massive Probleme mit der Zwischenablage - die
ich bei meiner täglichen Arbeit mit intensiv nutze. Ich muss Strg-C oft
mehrmals drücken, damit es funktioniert. Wenn ich es aber zu oft drücke,
stürzt der Rechner ab. Am stärksten (95%) sind SQLYog (wine) und Heidi
SQL (wine) betroffen, aber es betrifft zu 50% auch Eclipse, NetBeans,
IntelliJ, SOAP UI und 25% LibreOffice. Natürlich gibt es dafür bereits
Bug Reports. Nicht nur einen sondern gefühlt hunderte. Diese Sache kommt
bei Ubuntu seit über 10 Jahren immer wieder hoch. Komischerweise aber
nur bei Ubuntu, keine andere Linux Distribution ist davon betroffen.
Ich bin längst bei Debian, aber ich behalte Ubuntu weiter im Blick weil
ich der "Vorarbeiter" bin, der den jüngeren Kollegen ihre Arbeitsmittel
empfiehlt.
Hennes schrieb:> Arduino als Gesamtsystem ist ein Produkt von Hobbyisten für Hobbyisten.
mensch Hennes; BRAVO! (nein, weder sarkasmus oder Ironie!)
Ich wollte nach dem Eingangspost meinen Standpunkt darlegen,
aber wie ich sehe hast Du das schon für uns Beide getan :D
bleibt mir noch zu sagen, dass sich viele libs mit nem code-analyzer
erschliessbar machen lassen..
ne codeflow-chart und in out change kenntniss reichen in der Regel
um einen ausreichend festen Griff an den Hals des Quellcodes zu bringen
um diesen zu Boden zu ringen.
Ja das ist Arbeit!
Es kostet Mühe und Zeit;
die Mühe und Zeit, die sich der Autor sparte um Dir ein kostenlosen
Ansatz zu liefern Dir bei Deinem Problem (eventuell) behilflich zu sein.
Das Arduino Konzept war und ist,
dir zu ermöglichen dich mehr um Code als um µC Hardware zu kümmern,
um schnell zu prototypisieren oder eben kleine Hobbyprojekte möglichst
einfach zu realisieren;
nicht dir für 1€ (nano klon aus china) alle Arbeit abzunehmen.
Du musst dennoch Datenblätter lesen und dir undokumentierte Quelltexte
selber erarbeiten.
github ist ein Angebot (und damit 99,9% der bibliotheks-libraries)
kein Zwang.. benutz es wenn Du möchtest, lass es wenn Du es nicht magst.
'sid
sid schrieb:> Das Arduino Konzept war und ist,> dir zu ermöglichen dich mehr um Code als um µC Hardware zu kümmern,> um schnell zu prototypisieren oder eben kleine Hobbyprojekte möglichst> einfach zu realisieren;> nicht dir für 1€ (nano klon aus china) alle Arbeit abzunehmen.
Genau - sehr gut ausgedrückt.
Ich nutze die Librarys, wenn ich mal eben mit einem Sensor Display
... etwas herumspielen will, ohne gleich tiefer einzusteigen - nur um
mal Ergebnisse zu sehen.
Wenn es für mich interessant ist, dann baue ich mir i.d.R. meine eigene
Umgebung, da die Librarys oft nicht genau das abdecken, was ich möchte.
Das kann und soll aber jeder für sich entscheiden. Ich finde die
Arduino-Idee sehr gut und nehme immer wieder auch Anregungen aus den
Librarys in eigene Hobby-Projekte auf.
Christian J. schrieb:> Es ist doch eben Sinn des Arduino Konzeptes...
...viel Geld mit dem Verkauf von 'shields' zu verdienen.
Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche
Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen
die mitverdienen wollen ?
MaWin schrieb:> Christian J. schrieb:>> Es ist doch eben Sinn des Arduino Konzeptes...>> ...viel Geld mit dem Verkauf von 'shields' zu verdienen.> Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche> Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen> die mitverdienen wollen ?
Woher nimmst du dieses Unwissen? Bei Arduino ist alles dokumentiert. Die
Baupläne liegen offen. Der Quellcode liegt offen. Was sollen die noch
offen legen?
Zum Eingangspost von Christian.
Ebenfalls geballtes Unwissen. Von Arduino.cc sind die mitgelieferten
Libs. Alles andere ist nicht von Arduino.cc. Man baut es sich selbst
ein, genauso wie du es getan hast. Die Qualität der Libs ist genauso gut
oder schlecht als wenn hier jemand sein Code zur freien Verfügung
stellt. Welche andere Person soll das vorher geprüft haben? Wobei ich
hier noch keine fertige Lib für Arduino gesehen habe. Man muss hier
mitlesen, den Code aufschnappen und anpassen.
Auf Github kann jeder seine Lib oder sonstiges hosten wie er lustig ist.
Man kann Glück haben oder auch Pech. Wenn man es jedoch selbst nicht
gebacken bekommt, dann muss man mit dem glücklich werden was man
kostenfrei angeboten bekommt. Dann hätte man wenigstens einen Ansatz in
die wahrscheinlich richtige Richtung, kann es ausbessern, bleiben lassen
oder wenn verstanden neu schreiben und am Ende der Community
zurückgeben. Stichpunkt Open Source und deren Lizenzen.
Also Christian, raffe dich auf, schreib die Lib neu und gib sie der
Community zurück. Danach kannste meinetwegen über andere meckern.
MaWin schrieb:> ...viel Geld mit dem Verkauf von 'shields' zu verdienen.> Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche> Routinen welche Timer verwenden. Wer erwartet da bessere Doku von denen> die mitverdienen wollen ?
Bist Du neidisch?
Es ist mir vollkommen egal, wer welche Shields verkauft - ich nutze die
Nano-Boards gerne für Prototypen auf dem Brad-Board. Ich habe genau ein
Shield - ein Ethernet-Shield - mit dem ich mal spielen wollte, das hat
sich aber nicht ergeben.
MaWin schrieb:> Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche> Routinen welche Timer verwenden.
Lesen bildet.
Veit D. schrieb:> Bei Arduino ist alles dokumentiert.
Du hast die Doku offenbar nicht gelesen. Ein oberflachliches Pamphlet,
das mehr Fragen aufwirft, als beantwortet.
> Die Baupläne liegen offen. Der> Quellcode liegt offen
Ja, man muss in den Quellcode gucken, wenn man Fakten braucht. Das
heisst aber: es ist nicht dokumentiert.
MaWin schrieb:> Ja, man muss in den Quellcode gucken, wenn man Fakten braucht.> Das heisst aber: es ist nicht dokumentiert.
Dann setz dich hin und dokumentier's. Der Quellcode ist da. Viel Spaß.
Ach, du bist zu faul? Na dann reg dich ab.
Ich hab mit Profizeug zu tun, da ist die Dokumentation auf dem gleichen
Niveau, aber die Quelltexte liegen nicht vor. Das macht einen Spaß.
> Wer will, findet Wege.> Wer nicht will, findet Gründe.
Die Arduino Hauptverwendung der Timer ist PWM, und die millis() delay()
Abhandlung.
Also muss man auch da suchen, wenn man Arduino spezifische Aussagen zu
den Timern finden möchte.
z.B. hier:
https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
Auf jeden Fall findet sich auch da der Rat, das Datenblatt zu
untersuchen.
Ok, ok, das wird auch nicht "jeden" hier zufrieden stellen, wie auch ...
Denn dem Arduino Basher ist mit Argumenten nicht beizukommen.
Der finden mit Sicherheit die nächste Sau welche er durch die Arena
treiben kann.
Hallo
es wurde von den besonnen Diskussionsteilnehmer doch schon erwähnt:
Arduino wendet sich offiziell schon immer an "Künstler" im weitesten
Sinn - also streng genommen nicht mal an E-Technik Hobbyisten wie ich es
behauptet habe.
Künstler haben zu großen Teil noch weniger Wissen im E-Technik und
Programmierbereich als Hobbyisten und Anfänger unseres
Interessenbereichs.
Das das Gesamtsystem Arduino so erfolgreich geworden ist, und für ein
Nischenprodukt derartig verbreitet ist das es teilweise sogar immer
wieder in den Massenmedien erwähnt wird ist doch nicht die Schuld von
der "Firma" Arduino auch wenn sie das natürlich gerne hinnehmen.
"Wir" hier waren und sind immer noch nicht die ->offizielle<- Zielgruppe
des System Arduino - alle Auftritte, Foren, Bücher, Bibliotheksautoren
die ihre Arbeiten via Github und Co. der Gemeinschaft weitergeben sind
reine "Privatveranstaltungen" von den schon erwähnten "Hobbyisten" -
auch wenn dabei sicherlich einige aus den Profibereich stammen - das ist
im Amateurfunk auch nicht anders, dort gibt es sogar mindestens einen
Nobelpreisträger der sein Werk zu Verfügung stellt (auch wenn er den
Preis dafür sicherlich nicht erhalten hat, aber das Wissen und die
Forschung die ihn den Nobelpreis eingebracht haben sind sicherlich auch
in sein Werk -ein Programm und Datenübertragungsverfahren- eingeflossen
und Notwendigkeit gewesen).
Zu den Preisen:
Ja für "uns" sind die Originalen Boards und die Shilds die soweit mir
bekannt es gar nicht direkt von Arduino gibt, zumindest bei den großen
bekannten Namen (Adafruit und Co.) sehr teuer wenn nicht gar überteuert.
Aber erstens gibt es die sehr preiswerten Clones und zweitens:
Schaut euch mal in der "Künstler" und Ausbildungsszene um - da ist das
Preisniveau eher noch höher bei oft nicht mal besserer Dokumentation,
und bei allen persönlicher Kritik und ignorieren von Originalen
Produkten von z.B. Ardafruit:
Ihre Dokumentation und Tutorials sind vorbildlich für die Zielgruppen an
die sie sich wenden (das sind eben nicht die "Hardcoreprogrammierer und
Datenblattfetischisten" die sich seit ihren 10 Lebensjahr mit der
Materie beschäftigen) - und nicht nur ich als jemand der ein schon ein
wenig(oder ein wenig mehr...) zu den "Hardcore" E-Technikern gehört
verwende ihre Bibliotheken oft und gerne "übersetze" mit Hilfe des
Netzes und eigenen Wissen die Wortschöpfungen von Ardafruit (und Co.) in
die "normalen" Begrifflichkeiten und kaufen diese Produkte dann billig
aus den bekannten Quellen ein.
Die Sache ist ganz einfach und universell - unabhängig von Arduino:
Wir (Du) sind (bist) nicht der Mittelpunkt der Welt.
Unsere (Deine) Einstellungen, Ideen, Vorstellungen, Interessen gelten
nicht automatisch für andere - wie natürlich auch anders herum gilt und
das vor allem bei wesentlich wichtigeren Themenbereichen als Arduino und
Hobbys immer beachtet werden muss (und immer wieder nicht wird).
Hennes
Du kannst auch kommentierte und getestete Bibliotheken bekommen.
Die gibt es alle bei mir.
Allerdings muss ich dafür auch 99 Euro pro Zeile Sourcecode verlangen.
Qualität kostet eben.
Dafür komme ich dann bei Problemen auch persönlich vorbei, und debugge
mit.
Du mußt jetzt entscheiden, wieviel dir Qualität und Support wert ist.
Du kannst auch bei Umsonst-Code bleiben, mußt aber evtl mit einem Fehler
leben.
Das ist doch wieder mal typisch. Da ist einer zu bequem sich seinen Kram
selber zu programmieren und lädt sich eine Bibliothek herunter, die dann
nicht wie gewünscht funktioniert. Also wird jetzt über das gesamte
Projekt hergezogen. Dabei ist noch nicht einmal klar ob diese Lib
überhaupt mit der benutzten Hardware zusammenarbeitet. Da Arduino, wie
schon mehrfach beschrieben, ein Projekt von Hobbyisten für Hobbyisten
ist, ist es durchaus möglich das der Autor dieser speziellen Lib das
auch mit einer bestimmten Hardware gemacht hat und dort, das unterstelle
ich jetzt mal, hat es funktioniert. Offenbar war er mit dem Ergebnis
seiner Arbeit so zufrieden, das er das der Allgemeinheit zu VErfügung
gestellt hat.
Das ist allerdings keine Garantie dafür das die Lib nun bei jeden und
mit jeder Hardware funktioniert.
Welche Bibliothek Du überhaupt einsetzt, es gibt mehrere für diesen
Zweck, welche Hardware Du genau verwendest (es gibt auch mehrere
Varianten des Pro Mini) und welches Funkmodul Du verwendest, über all
das schweigst Du Dich - könnte ja sein man verifiziert das und dabei
stellt sich heraus das Deine Kombination nicht funktionieren kann. Das
wäre natürlich blöd, da Du ja offenbar der Beste bist - hast ja gleich
herausgefunden das da keine Kommentare und nach Deinem Dafürhalten ein
paar Fehler sind. Ja wenn Du so gut bist dann schreibe den Kram doch
gleich selbst man muß nicht für Arduino und Co. die dafür vorgesehene
IDE und Libs benutzen - man ist an dieser Stelle völlig frei.
Ob Dir Dein Lehrer Pagel beigebracht hat einen Kommentarheader
zuschreiben und ob Du das machst oder nicht interessiert hier niemanden
und Du kanns es auch von niemanden verlangen. Das und Kommentare im
Allgemeinen liegen im Ermessensspielraum des Programmieres. Ich verwende
mittlerweile auch gern Kommentare, aber nicht ursächlich dafür um es
anderen leichter zu machen, sondern vorallem deshalb damit ich nach
einem Jahr selber noch weis warum ich das so gemacht habe wie ich es
gemacht habe.
Also setz Dich auf den Hosenboden und schreibe einen eigenen Code und
wenn Du magst darfst Du auch die Allgemeinheit daran teilhaben lassen.
Und Du darfst das auch besser machen also mit Kommentarheader und
reichlich Kommentaren, Überprüfungen etc. etc..
Ich finde das Arduinokonzept gar nicht so schlecht. Für viele Projekte
kommt man damit recht schnell zum Ziel und das ist für viele Hobbyisten
das Entscheidente. Viele interessiert dabei schlichtweg nicht wie man es
zum Beispiel genau macht einen Port umzuschalten. Die wollen dafür eine
einfach zu handhabende Funktion, die das erledigt und für viele ist das
auch so in Ordnung.
Wenn man mehr über Mikrokontroller lernen möchte, dann benutzt man nur
Hardware, liest die Datenblätter der dort verbauten Komponenten und
schreibt sich den erforderlich Coder auf der IDE seiner Wahl selbst.
Dieser Weg ist halt steiniger, dafür lernt man mehr. Jeder ist hier in
seiner Wahl frei.
Habe auch den Eindruck das Du aus Langerweile nur mal einen Thread
lostreten wolltest, da Du ja schon lang nicht mehr teil nimmst.
Hallo
Hennes schrieb:> Wir (Du) sind (bist) nicht der Mittelpunkt der Welt.> Unsere (Deine) Einstellungen, Ideen, Vorstellungen, Interessen gelten> nicht automatisch für andere -...
Schade das das auch Zeno und geschweige denn PittyJ wie leider viele
weitere andere schon vorher so überhaupt nichts verstanden haben.
Der TO hat halt eine andere Einstellungen und Selbstverständnisse, die
mir persönlich auch nicht gefallen, die ich aber als seine Meinung
akzeptiere (akzeptieren muss - auch einen Trump aber auch eine
Wagenknecht muss man akzeptieren...)und höchstens versuche meinen
Standpunkt und das "übliche" (aber auch die "üblichen" sind nicht der
Mittelpunkt der Welt sind) klar zu machen und ihn meine Gedanken
freundlich (!)näher zu bringen, ihn aber nicht zu beleidigen und
verunglimpfen oder zu missionieren.
Verbal "Kloppen" kann man wenn man sich persönlich gegenüber steht oder
sich gut kennt - eventuell auch in der Politik.
Aber Missionieren, Beleidigen, Vorschriften machen (na ja versuchen),
und vorführen:
Das geht nicht im Umgang in eine Forum miteinander egal wie anders die
Vorstellung des Gegenübers gegenüber meiner (deiner) ist.
Wobei das ein K(r)ampf gegen Windmühlen ist... :-(
Hennes
Ich verfolge diesen Thread nicht mehr weiter, da ich schon vorher
wusste, dass der Glaubenskrieg ab dem 3.ten Beitrag losgehen würde.
Das immer gleiche Argument heisst dann "Mach es doch selbst!" Naja, wenn
die Schaffer des Open Source Systems Linux in alle seinen Varianten auch
so denken würden, dann würde das kein Mensch verwenden können.
Glücklicherweise hat Toprvalds da aber noch ein sehr deutliches Wort zu
reden, was den Kernel angeht. (Nicht das Paketbauer daraus machen)
Seit die Chinesen Klone und Billigmaterial auf den Markt werfen,
Fake-Chips, die nicht das tun was sie sollen (Fake Gyro Sensoren, Fake
BME 280; Fake NR24L01 TxRX usw) und die Geiz ist Geil Mentalität das
Zeug auch noch kauft geht es mit der guten Idee den Berg runter, der
Library Manager für "externe Libs" (also nicht die eingebauten) wird zur
Müllkippe.
Aber was jammer ich? Ist doch alles umsonst.. gibt ja heute sogar
ernsthaft Studenten, die Wikipedia als "Quelle" zitieren...
Ach ja, nur die anderen schreiben Schrott-Code. Der eigene Code ist ja
perfekt und fehlerfrei. Nennt sich Wahrnehmungs-Bias...
Habt ihr das in eurem Leben noch nicht bemerkt? Qualität und Preis haben
nichts miteinander zu tun!
So auch bei Software: "Kommerzielle" Software ist kein Deut besser,
meiner Erfahrung nach eher schlechter. Denn da kannst Du erst gar nicht
rein schauen, wie es innen aussieht.
Nur weil Du etwas nicht siehst, bedeutet es nicht, dass es nicht da ist.
MaWin schrieb:> Selbst der Arduino selber ist hundsmiserabel dokumentiert, z.B. welche> Routinen welche Timer verwenden.
Kann ich nicht so bestätigen, die offizielle Seite ist schon informativ.
Und welche Timer ist doch völlig egal. Es geht doch darum dass man das
nicht wissen muss.
>>Ach ja, nur die anderen schreiben Schrott-Code. Der eigene Code ist ja>>perfekt und fehlerfrei. Nennt sich Wahrnehmungs-Bias...
Erzähl das jemandem, der 10 Jahre beim TÜV war und tausende Zeilen Code
geprüft hat... Schrott ging zurück, nochmal machen! Damit das blaue
Siegel und das GS seinen guten Namen verdient, damit die Nutzer etwas
haben worauf sie sich verlassen können! Und nicht wie bei VW
Betrugssoftware im Auto kaufen, nur weil niemand den Source Code
überprüft hat.
Richtige Klopper kommen aber dann rein, wenn ein "Schaffender" Libs
hochlädt, die sämtliche Ressouren ungefragt beanspruchen, zb. die
Interrupt On Change Fähigkeit mal eben für alle Ports umstellt, so dass
keine andere Lib mehr neben ihm existieren kann. Es schaut eben niemand
drauf, es verbreitet sich und erzeugt Frust.
Das macht aber Hpffnug und dafür zahle ich auch gern mehr Geld:
https://www.elektronikpraxis.vogel.de/arduino-praesentiert-mkr-board-fuer-industrielle-anwendungen-a-894870/
Zeno schrieb:> Welche Bibliothek Du überhaupt einsetzt, es gibt mehrere für diesen> Zweck, welche Hardware Du genau verwendest (es gibt auch mehrere> Varianten des Pro Mini) und welches Funkmodul Du verwendest, über all> das schweigst Du Dich - könnte ja sein man verifiziert das und dabei> stellt sich heraus das Deine Kombination nicht funktionieren kann.
Das war nicht die Frage und darum ging es nicht. Egal welche Lib, die
Frage war wer die Qualität kontrolliert und so einfache Sachen wie die
Doku einfordert.
Die Antwort ist also einfach: niemand. Auch die Libs und Plattformen die
über die Arduino IDE direkt gefunden werden, die werden offensichtlich
nicht oder minimal auf Kompatibilität geprüft. Und andere, wie die ESP
Plattformen, muss man ja selber in die Suchliste eintragen und haben
damit noch weniger mit Arduino.cc zu tun. Wobei gerade die ESP sehr gut
funktionieren.
BTW: wie kommt ein Third Party eigentlich in die Arduino Liste für
Boards/Libs?
Es gibt einfach gute und schlechte Libs, da muss man selber aussieben
oder auf die Empfehlungen anderer hören aber möglichst trotzdem erstmal
unter die Haube sehen. Das eine Lib vielfach genutzt wird heißt nicht
das sie auch gut ist.
Christian J. schrieb:> Das macht aber Hpffnug und dafür zahle ich auch gern mehr Geld:
Top. Da wird nämlich Mbed benutzt. Das ist mal ein Beispiel für ein gut
kontrolliertes und gewartetes System. Bevor etwas in den master Branch
gemerged wird durchläuft es CI Tests die auf Style, Formalismen und
Kompilirbarkeit prüfen, dann Funktionstests und es muss von zwei
Reviewern freigegeben werden. Mitwirkende werden freundlich unterstützt
und Issues und PR werden ernst genommen und geprüft. Freigaben dauern
aber teilweise mehrere Wochen oder Monate und erfordern Geduld und Zeit.
Und eine Diskussionskultur und Teamfähigkeit wie sie hier selten zu
finden ist.
Das betrifft bisher nur das OS, bei Libs stösst man auf das gleiche
Problem wie bei Arduino Third Partys. Und Mbed Libs sind oft angepasste
Arduino Libs... Aber auch da soll sich was tun, mit dem neuen Mbed6
Release sind viele alte Zöpfe abgeschnitten worden und bei vielen alten
Libs gibts Mecker vom Compiler.
Doku schrieb:> S. R. schrieb:>> Dann setz dich hin und dokumentier's.> Die Kritik ist, dass keine Doku existiert.> Danke für die Bestätigung.
Ich finde Dokumentation, ich finde Quellcode und ich finde das
Datenblatt. Für mich reicht die vorhandene Dokumentation. Wenn dir das
nicht passt...
Hennes schrieb:> Schade das das auch Zeno und geschweige denn PittyJ wie leider viele> weitere andere schon vorher so überhaupt nichts verstanden haben.
Achja was habe ich denn nicht verstanden? Bist Du hier der Einzige der
für sich eine eigene Meinung reklamieren darf?
Ich habe im Wesentlichen das geschrieben was andere, u.a. auch Du, schon
geschrieben hatten.
Der TO hat eine Erwartungshaltung, die ich in diesem Fall so nicht in
Ordnung finde und da darf man auch sagen. Ich habe ihn weder beleidigt
oder verunglimpft noch habe ich versucht ihn zu missionieren. Es ist
ganz einfach wenn einem etwas Angebotenes nicht gefällt, egal aus
welchen Gründen, dann muß man sich damit auseinandersetzen und es halt
selbst machen.
Aber der TO läßt sich gleich im ersten Post zu dieser Aussage hinreisen:
Christian J. schrieb:> Wer lässt es eigentlich zu, dass jeder seinen Kot in die offiziellen> Library Quellen hochladen kann?
Da stellt sich dann schon die Frage wer hier beleidigt oder
verunglimpft. Ist wohl in diesem Fall der TO. In seinem 2. Post wird es
nicht besser.
Johannes S. schrieb:> Das war nicht die Frage und darum ging es nicht. ...
Jaein, denn er läßt sich erstmal darüber aus was alles nicht
funktioniert und wie "scheiße" die Lib eigentlich die Lib geschrieben
ist. Die Frage zu seinem Postthema ist der allerletzte Satz im
Eröffnungspost.
Es wäre schon gut gewesen wenn er geschrieben hätte um welhe Lib es sich
genau handelt und was er genau für Hardware benutzt. Mit diesen
Informationen wäre hier ganz bestimmt jemand gewesen, der ihm da hätte
weiterhelfen können.
Ansonsten gebe ich Dir recht, das es keiner kontrolliert. Es ist halt
ein Projekt von Hobbyisten für Hobbyisten, was ja erst mal nicht
schlecht ist. Aber das weis man wenn man die Komponenten des Projektes
einsetzt, es gibt keinerlei Garantien.
Ich denke, dass die Problematik "normal" ist.
Soweit mir bekannt war die ursprüngliche Intension tatsächlich ein für
Künstler gedachter, einfach anzuwendender Steuerrechner.
Aber wie auch immer, spätestens, wenn ein Stecker für Erweiterungen zu
sehen ist, dauert es nicht lange, bis jemand sagt: "Man, da kann man
doch..."
Die Macher des ersten IBM-PC können davon ein (lukratives) Liedchen
singen.
Will jetzt jemand für "sein" IC oder für "seine" Anwendung eine
Bibliothek schreiben, so hat er im Grunde genommen zwei Möglichkeiten:
1. Er floht sie einfach so hin (Quick & Dirty)
Das geht schnell und der Schreiber weiß ja was er macht.
Natürlich benutzt er auch seine Anwenderdaten zur Prüfung.
2. Er schreibt ein hervorragend, dokumentiertes Modul.
Das ist etwas, was er gar nicht braucht und erst mal viel Zeit
kostet. Im Übrigen: Der Hersteller braucht das Teil auch nicht,
da die Stückzahlen im Bereich: "Uninteressant" liegen.
Da das Teil auch noch Waschen und Bügeln können soll, werden die
Tests schnell endlos.
Alles, was zwischen eins und zwei liegt, fällt schnell in die Kategorie:
"Wollte und konnte nicht".
Landen jetzt beide Module in der "freien Wildbahn", so kann man ja mal
eine Suchmaschine drauf loslassen. Irgendwas zwischen Null und Zwei
Treffern ist dann möglich. Ob das Ganze was Taugt ist aber in beiden
Fällen nicht gesagt.
Möglicherweise ist sogar Modul 1 fehlerfrei, aber bei dem
Sende-/Empfänger wird der Empfangsteil gar nicht verwendet.
Modul 2 ist toll dokumentiert, aber im Grunde genommen sagt das nichts
über die Qualität aus. Im Gegenteil. Eventuell ist bei all der
Dokumentation keine Zeit mehr für die Qualitätssicherung über geblieben.
Wie gesagt: Beide Module kämpfen um "ihren" Treffer bei der Suche aber,
wozu auch immer eine Suchmaschine gedacht ist, diese Bewertung liegt
außerhalb ihrer Möglichkeiten.
Jetzt muss ich mal zurück 'kotzen'.
Ich kenne noch eine Zeit, da mußte man für jedes Stück Software Geld
bezahlen. Mein erster Compiler hat 500 Mark gekostet, für einen
Studenten damals eine riesen Summe.
Dann kam der erste GNU Compiler (ca 1987) raus, und was ging für ein
Aufschrei durch die Presse: ein kostenloser Compiler. Das geht doch
nicht. Denkt keiner an die arbeitslosen Compiler-Entwickler.Der
Stallmann wurde regelrecht angefeindet.
So nun zu heute. Fast alles ist kostenlos, und dank Internet innerhalb
in Sekunden auch zur Verfügung.
Doch das reicht den Leuten nicht. Der Code muß kommentiert sein,
vielleicht noch mit Doxygen Diagrammen. Am besten noch mehrsprachig.
Aber, ... nur nichts mehr selber machen müssen!
Wenn ich einen Treiber zu einen Chip brauche, dann schaue ich auch, was
gibt es da. Das kann man als Beispiel nehmen, und sein eigenes Ding
damit machen. Immerhin will ich den Treiber ja auch selber verstehen.
Dabei habe ich auch schon Fehler bei anderen gefunden, und Kommentare
waren suboptimal.
Nur, es ist kostenlos, ich bekomme deren Code als Hilfe.
Manchmal gebe ich auch Code frei, kann jeder benutzen. Der ist evtl auch
nicht optimal kommentiert. Bei der Indentation habe ich meinen eigenen
Geschmack.
Und da ich bei Embedded eigentlich nie Objekte lösche, fehlt meist ein
getesteter Destruktor. Wer den braucht, kann ihn ja selber schreiben.
Es sollte doch jeder froh sein, dass es soviele kostenlose Beispiele
gibt. Aber nein, es wird nur gemeckert. Das fördert nicht die Lust,
weiterhin etwas kostenlos zur Verfügung zu stellen.
Christian J. schrieb:> ...
Kommerzielle Software kostet Geld. Dort kannst du auch Kommentare und
Dokumentation erwarten. Arduino ist halt irgenwas zusammengeklöppelt
dass es geht, mehr nicht.
Das ist nicht unbedingt abwertend gemeint, you get what you pay for. Die
Gegenleistung ist bei dem Arudinokram für den Preis doch ganz ok.
Was hast du denn erwartet?
Wer soll denn die Entwicklung bezahlen?
Hallo,
Christian J. schrieb:> Da ich "mal wieder" mit dem Pro Mini etwas mache arbeite ich mit einer> LoRa Library, die ich über den Lib Manager eingebunden habe.>> Es funktionierte erstmal nichts... LoRa-begin(...) lief einwandfrei,> zeigte keinen Fehler. Angeblich sendete das Modul auch, selbst wenn ich> noch keinen Empfänger gebaut habe.>> Naja, die Lib meldete auch alles "ok", wenn ich das Modul aus dem Sockel> zog oder eine Leitung der SPI abklemmte.
Ich benutze die LoRa-Lib von
https://github.com/sandeepmistry/arduino-LoRa
Die läuft hier problemlos und meldet auch sauber einen Fehler zurück,
wenn LoRa.begin() die Chip-Revision nicht auslesen kann.
Ich hatte noch nichtmal Grund, in den Source reinzuschauen.
Datenblätter kann ich lesen, auch das eines SX127x. Reinschauen mache
ich aber nur bei einer Unklarheit z.B. eines Registerwertes und dann
eben zielgerichtet. Komplett lese ich Datenblätter nur noch, wenn ich
den Kram komplett selber machen muß, weil es noch nichts dazu gibt.
Früher, in meiner Vor-Arduino-Zeit, war das die Regel, da habe ich das
auch gelernt. Arduino ist für mich heute vor allem Zeitersparnis durch
die fertigen Libs und auch die Breakoutboards, dafür bin ich dem
Arduino-Kram auch ewig dankbar.
Fragwürde Nachbauanleitungen gab es auch vor dem Internet schon, nur
viel seltener und solch ein Autor war dann schnell dafür bekannt, daß
man das besser nicht nachbaut. Dank Internet landen eben alles im Netz,
wird gern ungeprüft und kritiklos übernommen. Natürlich bleinen dann die
"Anwender" auf der Strecke, die merken, daß auch das Arduino-Ökosystem
nicht nur "Malen nach Zahlen" ist.
Gruß aus Berlin
Michael
Johannes S. schrieb:> Es gibt einfach gute und schlechte Libs, da muss man selber aussieben> oder auf die Empfehlungen anderer hören aber möglichst trotzdem erstmal> unter die Haube sehen. Das eine Lib vielfach genutzt wird heißt nicht> das sie auch gut ist.
und da ist es doch gut wenn man in den Quellcode schauen kann!
z.B. ESP32, lt. Arduino ist es bei der onboard LED -> LED_BUILTIN GPIO5
aber bei meinen GPIO2 ist aber auch egal findet man raus und macht
andere defines
1
#if defined(__AVR_ATmega328P__)
2
#define ON_BOARD_LED LED_BUILTIN
3
4
#elif defined(ESP32)
5
#define ON_BOARD_LED 2 // bei den letzten gelieferten WEMOS LOLIN32 sonst 5
Was mich betrifft, halte ich es lieber mit der Devise "Einem geschenkten
Gaul schaut man nicht ins Maul".
Ich bin jedenfalls dankbar, daß es vielfach schon fertigen Beispielscode
gibt um z.B. ein neu geliefertes OLED Display innerhalb kürzester Zeit
im Betrieb begutachten zu können weil sich jemand (z.B. Adafruit) die
Mühe gemacht hat ein Beispielsprogram mit Sourcecode frei und ohne
Registrierung jedermann ohne Fragen ums Warum zur Verfügung zu stellen.
Anstatt mir nun nächtelang um die Ohren zu schlagen zu müssen einen
eigenen Displaytreiber zu schaffen und Graphikunterstützung zu
erstellen, kann ich die Displayfähigkeiten nach Belieben sofort
ergründen. Immerhin stellen vieler solcher Bibliotheken und
Beispielscode das Referenzframework für den kleinen Mann dar der sich
nicht die teuren Evalboards und FAE Unterstützung namhafter Hersteller
leisten kann.
Wenn es dann wirklich mal Probleme gibt, was eigentlich sehr selten
vorkommt, dann versuche ich das Problem eben durch eigene Anstrengungen
anzugehen. Aber ich beklage mich deswegen nicht. Die meisten Probleme
lassen sich oft leicht eingrenzen.
Auch bei Arduinoprojekten hilft es ungemeinen sich alle Sourcen
anzusehen und das DaBla zu konsultieren.
Man darf auch nicht übersehen, daß viele Beispiele, was Fehlererkennung
und Behebung betrifft, relativ spartanisch sind und der Anwender
verantwortlich ist zu entscheiden wie robust seine Anwendung in der
realen Welt sein muß.
Oft sind die zur Verfügung gestellten Bibliotheken eine guter
Anfangspunkt für eigene Arbeiten. Und man lernt auch oft durch Beispiel.
Da ich ferner nicht beanspruche ein verkapptes Genie zu sein kommt mir
das hin und wieder auch in nützlicher Weise zugute.
Schlechte Erfahrungen mit externen Bibliotheken habe ich bis jetzt
eigentlich kaum gemacht. Die meisten funktionieren zumindest
grundsätzlich im Rahmen der Designervorstellungen.
Jedenfalls würde eine etwas großzügigere Denkweise und mehr Toleranz
nicht schaden. Man sollte denjenigen dankbar sein die ihre Arbeit, mehr
oder weniger gut, der Öffentlichkeit anheim kommen zu lassen.
Verbesserungen sind lediglich eine persönliche Sache die jedem
freistehen. Mit einer miesen Kotzbrockeneinstellung ist niemandem
gedient und versauert meist nur die nähere Umgebung.
Es gilt auch wie immer "Caveat emptor" was die Nützlichkeit frei
zugänglicher kostenloser Ressourcen betrifft.
Nur meine 2 cents...
Hallo,
irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der
Arduino Programmiersprache an C orientiert hat.
Das merkt man stark an dem Library Desaster. Das was bei C nur halbwegs
funktioniert und C-Programme zu Dauerbaustellen macht, funktioniert bei
den Arduinos noch schlechter. Die ständige Software Patcherei entstand,
weil von Programmierern Kode in Form von Librarys übernommen wird den
sie nicht kennen oder die Doku so schlecht ist das es hinterher zu
Nacharbeiten kommt.
Ich habe 25 Jahre in C programmieren müssen und habe es gehasst fremde
Librarys in meine Programme zu übernehmen. Am Anfang hatte ich noch Zeit
und konnte durch eigene Programmteile fremde Librarys vermeiden. Aber im
Laufe der Jahre wurde der Zeitdruck immer größer und man war gezwungen
den fremdem Mist zu übernehmen. Mit den schon erwähnten Folgen,
Nacharbeit, Sicherheitslücken......... und schon war der Zeitgewinn zum
Teufel.
Ich komme aus der Großrechner Ecke und habe mit Fortran und Cobol
angefangen. Da hat man sich keine Nacharbeit leisten können, denn
Rechenzeit war sauteuer und man war gezwungen sauberen Kode zu liefern.
Programmpatche gab es nur bei Funktionserweiterungen, ansonsten liefen
die Programme von Anfang an Störungsfrei. Das war selbstverständlich.
Das war dann nicht mehr so als es mit C losging. Anfangs konnte die
Qualität gehalten werden aber im Laufe der Jahre wurde es immer
schlimmer.
Die aktuellen C Programmierer werden mich jetzt steinigen wollen, aber
sie sollten vielleicht mal überlegen was sie so den ganzen Tag machen
und für was sie ihre Zeit verbraten. :)))
Salu Hans
Ja, die Software Dinos die Git nicht verstehen und immer noch lieber
ihre Versionen in Zip Files halten. Und Code von anderen ist NIH, also
schlecht.
Übrigens, Arduino ist C++. Das verstehen leider auch nicht alle Lib
Anbieter. Oder selbst wenn, dann werden Instanzen durch globale
Variablen torpediert.
Johannes S. schrieb:> Ja, die Software Dinos die Git nicht verstehen und immer noch lieber> ihre Versionen in Zip Files halten. Und Code von anderen ist NIH, also> schlecht.
Woher willst du das jetzt wissen. Ziemlich dumm und pauschal diese
Aussage!
Salu Hans
HBose schrieb:> irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der> Arduino Programmiersprache an C orientiert hat.
Wenn die Einleitung schon so anfängt, dann kannste dein Bashing auch
gleich stecken lassen. Bedeutet nichts weiter, du hast keinerlei Ahnung
vom Arduino Ökosystem, aber erstmal draufhauen. Ich kann da nur mit Kopf
schütteln.
Übrigens fällt mir ein, ist Linux nicht in C bzw. überwiegend in C
programmiert? Ist eigentlich keine Frage sondern Fakt. Linux gilt doch
allgemein als sicher? Bedeutet, die Code Qualität hängt in erster Linie
vom Programmierer ab.
Nächste Frage, gilt Linux noch als sicher wenn Torvalds irgendwann nicht
mehr ist? Torvalds der gnadenlose Codechecker. Bedeutet erneut, die Code
Qualität hängt in erster Linie vom Programmierer ab.
Hallo,
im Grunde ist es mir auch egal was du und andere von Arduino denken. Es
regt einem nur auf solchen Mist immer wieder lesen zu müssen. Ich nutze
es jedenfalls gern. Vor kurzem dachte ich noch ich muss mich wegen neuen
Controller Zwangsweise verabschieden und selbst was aufbauen. Dann
tauchte plötzlich von Jemanden auf Github für die Arduino IDE das
gewünschte komplette Controller Package auf. Dafür sagt man herzlichst
Danke, legt los und muss lieb gewonnene Komfort Funktionen nicht
aufgeben bzw. mühsam nachbauen.
Johannes S. schrieb:> Übrigens, Arduino ist C++.
mag sein, kommt aber wunderbar mit meinen C-Sourcen (sogar seit 1990 aus
qc für DOS) zurecht, ich versuche ja cpp zu lernen, aber da bin ich wohl
zu alt und ich weiss nicht wie ökonomisch cpp mit dem knappen SRAM
umgeht, wenn ich eine temporäre
char txt[15] erstelle weiss ich das ich 15 Byte brauche die von
txt[0]-txt[14] geht mit terminierender 0
wenn ich
String Ausgabe_pfad_String="";
Ausgabe_pfad_String.reserve(c_count2+2);
mache weiss ich nicht ob der Speicherplatz wieder freigegeben wird.
Ist mir noch unheimlich.
ausserdem was bietet mir cpp was ich nicht mit c machen kann?
HBose schrieb:> Woher willst du das jetzt wissen. Ziemlich dumm und pauschal diese> Aussage!
Weil Arduino C++ und nicht C ist, du hast dich also offensichtlich nicht
damit beschäftigt. Opa erzählt vom Krieg, aber da könnte ich mitreden,
habe im Studium auch noch PL1 Programme in Lochkarten gestanzt und
Mikroprozessoren in PL/M programmiert.
Im Arduino System ist das Finden und leichte Einbinden von fremden
Bibliotheken ein Teil des erfolgreichen Konzeptes. Das Bibliotheken dann
auch eine gewisse Qualität haben sollten ist wünschenswert, aber in der
Praxis eben nicht so.
Und da helfen die Arbeitsweisen aus Großrechnerzeiten nu mal gar nich.
Im Gegenteil, die Leute die damit groß geworden sind die sind einfach
die Bremser heute.
Meine Meinung.
Veit D. schrieb:> Übrigens fällt mir ein, ist Linux nicht in C bzw. überwiegend in C> programmiert? Ist eigentlich keine Frage sondern Fakt. Linux gilt doch> allgemein als sicher? Bedeutet, die Code Qualität hängt in erster Linie> vom Programmierer ab.
Ich behaupte, dass alle Betriebssysteme, bzw. deren Kern, mit einem
Marktanteil über 1%, hauptsächlich in C geschrieben sind.
So ist auch der Arduino Core zum größten Teil in C.
Etwas Assembler, und die Libraries nahezu alle in C++
HBose schrieb:> irgendwo hatte ich mal gelesen das man sich bei der Entwicklung der> Arduino Programmiersprache an C orientiert hat.
Nöö...
An Processing, hat man sich orientiert.
Die aktuelle Haupt-Arduino-Sprache ist C++, genauer C++11, in der
Variante gnu++11. Der aktuelle, mitgelieferte, Kompiler kann bis gnu++17
Auch das ist ein Punkt, in dem Arduino Jünger gerne unterschätzt werden.
C++ dürfte so mit eine der schwersten, vielseitigsten und
kompliziertesten Sprachen sein, welche z.Zt. weite Verbreitung haben.
Klar stellen sich Einsteiger damit anfangs etwas unbeholfen an. Dauert
eben ein paar Jahre, bis man darin halbwegs fit ist.
Joachim B. schrieb:> String Ausgabe_pfad_String="";
Da muss man nachsehen wie String implementiert ist bzw. ist es
idealerweise dokumentiert (in diesem Fall ist es ja von Arduino
geliefert).
Und über C vs. C++ wurde hier im Forum ja wohl wirklich genug
diskutiert, das ist an dieser Stelle mit Sicherheit nicht nötig.
Joachim B. schrieb:> ausserdem was bietet mir cpp was ich nicht mit c machen kann?
OOP, Funktionale Programmierung, Templates, TypeTraits, ...
(und das Gedönse drumrum)
Joachim B. schrieb:> Ist mir noch unheimlich.
Dann hast du die Wahl:
Kundig machen, oder wegducken.
Joachim B. schrieb:> weiss ich nicht ob der Speicherplatz wieder freigegeben wird.
Natürlich kann man auch in C++ Mist bauen.
Aber es hat eben auch Destruktoren, welche dir solche Probleme abnehmen
können. Und die String Klasse hat einen solchen.
-------
Johannes S. schrieb:> Und über C vs. C++ wurde hier im Forum ja wohl wirklich genug> diskutiert, das ist an dieser Stelle mit Sicherheit nicht nötig.
Ich weiß nicht...
Ich vermute, dass eine Ursache der Arduino Ablehnung das Resultat einer
C++ Verweigerung ist.
Joachim B. schrieb:> mag sein, kommt aber wunderbar mit meinen C-Sourcen (sogar seit 1990 aus> qc für DOS) zurecht,
Finde ich auch nicht verwerflich oder schlimm. Es gibt durchaus gute C
Bibliotheken und die können auch so gebaut werden das mit C++
kooperieren.
Beispiel: lvgl Grafik. Die ist eben nicht exklusiv für C++, kann aber
gut damit kombiniert werden weil die Datenstrukturen einen
Universalpointer haben in den man das C++ this ablegen kann. Gut, da hat
ein begabter Programmierer viele Jahre Arbeit rein investiert, so sind
nicht alle Libs gebaut.
Hallo,
Danke für deine näheren Erläuterungen.
Ich denke jedoch nicht das Arduino wegen C++ abgelehnt wird. Wissen eh
nur die Auskenner. Ich denke es wird abgelehnt weil der Einstieg und
Umgang damit zu einfach ist, weil es damit jeder kann der Lust und Muse
hat. Es zwingt einem ja niemand damit unbedingt C++ zu programmieren.
Man kann auch wie du schon genannt hast in der IDE auch C oder Assembler
programmieren. Viele Profis programmieren Controller ja generell in C.
Können sie ja meinetwegen machen. Von denen hört man auch kein Bashing.
Der Hauptgrund wird sein, denke ich, man kann und muss sich nicht hinter
einer überfrachteten IDE verstecken. Dieses ich kann es bedienen und du
nicht Gehabe fällt plötzlich weg. Die künstlich aufgebaute Fasade gibts
nicht mehr. Einfachheit gewinnt. Damit trennt sich die Spreu vom Weizen.
Die Arduino IDE ist einfach aber klar aufgebaut und damit übersichtlich.
Okay, verdient jetzt vielleicht nicht den Namen IDE, weil man sich
darunter viel mehr vorstellt, aber genau das ist der Punkt, die
Einstiegshürde ist auf ein Minimum gesunken, man muss sich eben nicht
erst mit der IDE rumschlagen und zurechtfinden. Später können die
Ansprüche an eine IDE natürlich steigen, dann nimmt man eine andere die
einem gefällt.
Dem echten Profi stört das Arduino Ökosystem überhaupt nicht. Der weiß
sowieso was er kann. Der kann auch damit umgehen. Ein echter Profi würde
sich auch freuen wenn jemand mit Arduino überhaupt erstmal anfängt zu
programmieren und dann selbst vielleicht zum Profi wird. Programmieren
soll ja auch in den Schulen gefördert werden, hoffentlich wird die
Schul-Digitalisierung nun auch endlich einmal Flächendeckend durchgeboxt
und nicht nur darüber diskutiert.
Kurzum. Allgemein rumheulen tun doch immer nur die, dass lehrt meine
Erfahrung, die sich mit Nichtwissen hinter irgendwas verstecken müssen.
Die andere Gruppe, also die Wissenden, hat das wie gesagt nicht nötig.
Ende.
Veit D. schrieb:> Kurzum. Allgemein rumheulen tun doch immer nur die, dass lehrt meine> Erfahrung, die sich mit Nichtwissen hinter irgendwas verstecken müssen.> Die andere Gruppe, also die Wissenden, hat das wie gesagt nicht nötig.> Ende.
Wahre Worte.
Hi
>Ich vermute, dass eine Ursache der Arduino Ablehnung das Resultat einer>C++ Verweigerung ist.
Ist doch klar: Wenn man seit den 90ern mit Turbo Pascal/Turbovision +
Delphi
unterwegs ist, dann interessiert einen C++ nicht im geringsten. Damit
entfällt auch das Interesse für Ardudgingsda.
Abgesehen davon halte dieses weltweite produzieren von
Shields/Breadboards die für irgendwelche Kinderspielreien eingesetzt
werden für absolute Unmeltsauererei. Die C&P-Fraktion lernt eh nichts
davon.
MfG Spess
Was ist eine "C&P-Fraktion"?
Google weiß da auch nichts bestimmtes...
Also, nein. Wie ihr immer mit euren Abkürzungen herumwerft, do soll man
sich in meiner Ecke der Welt noch auskennen.
Naja, daß uC Teufelszeug ist, wissen eh nur die Eingeweihten;-)
spess53 schrieb:> Hi> Was ist eine "C&P-Fraktion"?>> Copy&Paste>> MfG Spess
Da muß ich wohl auf dem Schlauch gestanden haben. Schlimm. Ich werde
doch langsam alt...
Ab und zu schreibe ich eine Arduino-Library und veröffentliche diese.
Die kann dann so benutzt werden "as it is".
Wer die dann verbessern möchte kann das tun.
Es gibt auch Leute, die nutzen die Library als Codegrundlage und
schreiben eine bessere, ohne die Verbesserungen zurückzuspielen.
Das betrachte ich gelinde gesagt als eine Unverschämtheit: Kostenlos
Dinge benutzen, nörgeln und nichts beitragen mit der Erwartungshaltung:
Ist ja eh alles umsonst.
Veit D. schrieb:> Ich denke jedoch nicht das Arduino wegen C++ abgelehnt wird. Wissen eh> nur die Auskenner. Ich denke es wird abgelehnt weil der Einstieg und> Umgang damit zu einfach ist, weil es damit jeder kann der Lust und Muse> hat.
Das mag bei einigen hier im Forum so aussehen. Ich halte es eher für den
Anspruch, eine vollständig dokumentierte API zu haben und nicht im Code
nachsehen zu müssen, ob analogRead einen int (zwischen 0 und x?), short,
long, float (zwischen 0.0 und 1.0? So las sich die Doku für
ESP8266-Arduino mal...) oder sonstwas zurückliefert. Was mittlerweile
(wenn auch ziemlich verschwurbelt) dokumentiert ist - als ich das letzte
Mal nachgeschaut habe, war das noch nicht so:
https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
Gleiches Problem bei digitalRead - was sind HIGH und LOW für ein
Datentyp? So, wie das im Beispiel dargestellt ist, wohl int? Und pin?
So kann zum Beispiel aussehen: https://linux.die.net/man/3/fabs
Und natürlich könnte ich einen Teil davon zuliefern. Aber dann hätte ich
weniger Zeit, hier im Forum mehr oder weniger sinnvolle Kommentare
abzuliefern ;)
MfG, Arno
Oh man, wenn man das hier so liest wird mir immer mehr bewusst das die
welt der Programmierer sich in 2 Lager spaltet.
Die einen sind die super Gurus die alles verstehen und keinen Kommentar
brauchen. Und die konservativen die auch in einem Jahr noch einmal da
rein schauen und alles ordentlich machen.
Ich gehöre zu der zweiten Hälfte. Vielleicht auch weil ich aus der
Medizintechnik komme.
Ich muss leider öfter mal fremden Code mir ansehen (benutzen kann man
den meist nicht) und könnte fast immer nur brechen weil der sowas von
schlecht geschrieben ist.
Wie der TO schon am Anfang erwähnt hat: es kümmert sich keiner um die
Qualität der libs und das ist sehr schade. Gerade weil bei arduino nicht
die Gurus sondern mehr die Einsteiger was machen.
Arno schrieb:> Gleiches Problem bei digitalRead - was sind HIGH und LOW für ein> Datentyp? So, wie das im Beispiel dargestellt ist, wohl int? Und pin?
Ja, den aus meiner Sicht schlampigen Umgang mit Datentypen, habe ich
schon mal mit den/einigen Entwicklern besprochen....
Die Antwort war einerseits logisch, und andererseits auch etwas
unbefriedigend, da mir die Wichtigkeit der Typen schon bewusst war/ist.
Also:
Die API ist so gestaltet, dass sie einerseits gut funktioniert, egal ob
ein 8Bit, 32Bit oder 64Bit System gerade vor einem liegt.
Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind
in C geschrieben, verwenden dieser Logik folgend auch gerne int als
Parameter/Rückgabe, wo immer es möglich ist. Zur Not erfolgt ein
impliziter Cast.
Dunnemals gab es noch keinen gemeinsamen bool Datentype in der C und C++
Welt. Sonst hätte man ihn evtl. verwendet, statt HIGH und LOW.
Die API und auch die Beispiele sind so gebaut, dass man verwendbare
Datentypen "intuitiv" aus den Beispielen erfassen kann. Zumindest so
immer auf brauchbare Typen kommt.
Es hat also viel mit der niedrigen Einstiegsschwelle zu tun, dass die
Typen so lax gehandhabt werden. Man muss keinen Lehrgang auf C/C++
Datentypen gemacht haben, für die ersten Schritte.
Das folgt dann später, wenn man die Sprache(n) im Detail lernen möchte.
Der zentrale Punkt:
Es ist nicht die Code Effizienz, welche an er erster Stelle steht,
sondern, der einfache erste Zugang zu der Welt.
Es gibt also die zwei Ansätze:
1. Lerne die Sprache, dann programmiere
2. Spiele erst ein bisschen rum, und dann mache dich kundig, wenn du
"mehr" erreichen willst.
Arduino verfolgt klar den zweiten Ansatz.
Ja, ich kann mir schon vorstellen, dass dieser Ansatz den hart
gesottenen Praktiker/Profi etwas verstört. (ging mir ähnlich)
Aber dieser ist eben nicht die Hauptzielgruppe.
Zielgruppe sind die völlig Fachfremden, die Einsteiger.
Vergleich:
Kinder lernen auch Fahrrad fahren, ohne vorher Fahrphysik studiert zu
haben. Das kommt erst später, wenn die Rundenzeiten wichtig werden.
Peter schrieb:> es kümmert sich keiner um die> Qualität der libs und das ist sehr schade. Gerade weil bei arduino nicht> die Gurus sondern mehr die Einsteiger was machen.
Eben drum, die Einsteiger schreiben die Libs.
Es ist ein Prozess.....
Viele Libs werden stetig weiter entwickelt.
Hallo Arno,
du kennst doch die Doku https://www.arduino.cc/reference/en/
Dort ist High und Low dokumentiert. High ist alles was größer 0 ist.
Daneben gibts noch true und false als bool Type.
Ebenso ist return von analogRead dort dokumentiert.
Seit einer Weile gibts die Doku auch auf deutsch, hat ein fleißiger
Forumsteilnehmer gemacht. Nicht aus diesem Forum. Ich weiß jetzt ehrlich
gesagt nicht worüber du meckerst?
Und wer es noch genauer wissen möchte, der muss nun einmal in den Code
schauen. Wer in den Code schaut, der will dann eher wissen wie es
gemacht wurde. Nicht was es macht. Was soll ich dazu noch sagen?
Hier ist ein schönes Beispiel dafür, wie ein Library-Programmierer
reagieren kann, wenn zu viele Beschwerden und zu wenig Support vorhanden
ist:
http://wiringpi.com/wiringpi-deprecated/
Arduino Fanboy D. schrieb:> Die API ist so gestaltet, dass sie einerseits gut funktioniert, egal ob> ein 8Bit, 32Bit oder 64Bit System gerade vor einem liegt.> Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind> in C geschrieben, verwenden dieser Logik folgend auch gerne int als> Parameter/Rückgabe, wo immer es möglich ist.
Aha. Und ist das auch so dokumentiert? Die Frage war ja nicht, wie breit
ein int für die Arduino Plattform ist, sondern welchen Typ eine API
Funktion für den Parameter erwartet bzw. als Resultat zurückgibt. Daß
der Compiler casten kann, ist klar, ersetzt aber nicht die
Dokumentation.
> Die API und auch die Beispiele sind so gebaut, dass man verwendbare> Datentypen "intuitiv" aus den Beispielen erfassen kann
Das ist bestimmt gut gemeint, ersetzt aber ebenfalls nicht die
Dokumentation.
Axel S. schrieb:> ersetzt aber nicht die Dokumentation.
Deine Erwartungshaltung wird nicht befriedigt.
Da kann man sich fragen, ob das "dein" Problem ist.
Wenn es "dein" Problem ist:
1. Kannst du daran was ändern?
2. Kannst du es mit Geduld und Langmut hinnehmen?
3. Besitzt du die Weisheit zwischen 1 und 2 unterscheiden zu können?
Ansonsten:
Da du nicht konkret wirst, kann ich dir nur raten die Doku wirklich
mal zu lesen, und wenn da ernsthafte Verbesserungen NÖTIG sind, diese
anzustoßen.
https://www.arduino.cc/reference/de/
--
Nachtrag:
Es wäre nett, wenn du dich an deine eigenen Ansagen halten würdest:
Axel S. schrieb:> Für ein funktionierendes Open-Source Ökosystem fehlt hier noch etwas:> das Feedback, z.B. in Form eines Bugreports. Sich in einem Forum> auskotzen ist eine Sache. Aber das macht die Software nicht besser. Ein> Bugreport an den Autor, idealerweise gleich mit konkreten> Verbesserungsvorschlägen, würde die Situation verbessern (können). Macht> aber viel mehr Arbeit. Weniger Arbeit als das Selberschreiben aber auch.>> Mein Fazit: Fehler in Open Source Software zu finden und zu bemängeln> ist nicht nur vollkommen ok, es ist sogar explizit erwünscht. Nur sollte> die Mängelanzeige dann in Form eines Bugreports erfolgen. Dann ist das> nämlich ein Beitrag zu Open Source, der genauso wichtig ist, wie das> Schreiben von Code.
Hallo,
ich finde es Klasse das es hier Leute gibt die das Qualitätsproblem bei
C, C++, Arduino usw. ebenfalls erkannt haben.
Die Schwächen sind offensichtlich und müssten selbst den engagiertesten
Verfechtern dieser Umgebungen auffallen, wenn sie ehrlich wären. Manche
Argumentationen haben schon was religiöses und zeigen eine tiefe
Betroffenheit das ihre heilige Programmierumgebung in Frage gestellt
wird. Ok, man kann ihnen zu Gute halten, das nix anderes gelernt haben
und sie sich auf moderneres umstellen müssten, was nicht so einfach ist.
Aber es geht. Habe ich in meinem Berufsleben alle paar Jahre machen
müssen.
Die Argumente der Fraktion C usw. sind recht billig da ist nichts dabei
was einen überzeugen kann. Ausser Beschimpfungen (Bremser, Nihilist
etc.) ist den Herren noch nichts eingefallen was für diese
Programmierumgebungen spricht. Die offensichtlichen Schwächen werden
einfach ignoriert.
Am lustigsten finde ich die Argumente der Copy und Paste Fraktion.
Können nicht programmieren. Ohne Copy und Paste wären sie hilflos und
müssten mit den Glas-Klickern spielen. Aber das ganze dann als
unverzichtbares Ökosystem bezeichnen.
Was ist da Öko wenn Millionen von Arduino Boards und Sketche unter
haarsträubenden Umweltbedingungen produziert und verramscht werden. Ich
wette 90% dieser Boards verschwinden im Müll und belasten die Umwelt,
weil die Programmierumgebungen so schrottig sind und die Leute damit
nicht zurecht kommen. Auch kommen viele über das Stöpsel Stadium nicht
hinaus. Eine fertige Elektronik mit ordentlichem Board wird aus diesen
Stöpsel Aufbauten nur in den seltesten Fällen. Wie gesagt irgendwann
landet es im Müll.
Deshalb wäre mehr Qualität bei der Software ein wichtiger Beitrag unsere
Umwelt zu entlasten!
Salu Hans
PS: Ihr dürft mich ruhig weiterbeschimpfen. Vielleicht macht es ja bei
dem einen oder anderen "Klick" und er sieht die Sache mit offenen Augen,
dafür halte ich die Beschimpfungen gerne aus. ;)
HBose schrieb:> Wie gesagt irgendwann landet es im Müll.
Wie jedes andere Elektronikgerät auch.
Ich wette die meisten Arduinos leben länger, als das Dummfon des
Besitzers.
Arduino Fanboy D. schrieb:> Axel S. schrieb:>> ersetzt aber nicht die Dokumentation.> Deine Erwartungshaltung wird nicht befriedigt.
Ich habe keine Erwartungen. Ich habe vollumfänglich aktzeptiert, daß ich
nicht zur Zielgruppe des Arduino-Frameworks gehöre. Ich verwende es auch
nicht. Außer mal zum Spielen. Mach dir nichts draus. Ich verwende auch
eine ganze Menge anderer Dinge nicht. Hardware von Apple z.B. Oder
Software von Microsoft.
> Ansonsten:> Da du nicht konkret wirst, kann ich dir nur raten die Doku *wirklich*> mal zu lesen, und wenn da ernsthafte Verbesserungen NÖTIG sind, diese> anzustoßen.> https://www.arduino.cc/reference/de/
Zitat aus:
https://www.arduino.cc/reference/de/language/functions/digital-io/digitalread/
1
Syntax
2
3
digitalRead(pin)
Wäre jetzt irgend jemandem ein Zacken aus der Krone gebrochen, wenn er
da jeweils den Typ für den Returnwert und den Parameter dazu geschrieben
hätte? War das zu aufwendig? Würde das die Zielgruppe verwirren? Hat der
Schreiber dieser "Dokumentation" jemals eine API Dokumentation gesehen?
Eine reine Aufzählung von Funktionsnamen ist vollkommen witzlos.
So würde das korrekt aussehen:
1
$man read
2
3
READ(2) Linux Programmer's Manual READ(2)
4
5
NAME
6
read - read from a file descriptor
7
8
SYNOPSIS
9
#include <unistd.h>
10
11
ssize_t read(int fd, void *buf, size_t count);
12
...
Du erkennst den Unterschied? Da steht, welches Headerfile man #includen
muß und ein vollständiger Prototyp der Funktion.
> Es wäre nett, wenn du dich an deine eigenen Ansagen halten würdest
Ich halte das ganze Arduino-Projekt, zumindest was die Softwareseite
angeht, für vollkommen überflüssig. Ich möchte da gar nichts dazu
beitragen. Aber ich verfasse auch keine freistehenden Rants darüber.
Andererseits halte ich mich in einer Diskussion auch nicht mit meiner
Meinung zurück. Ich hätte gar nichts dazu gesagt, wenn nicht die
Behauptung gefallen wäre, das Arduino-Framework wäre gut dokumentiert.
Axel S. schrieb:> Wäre jetzt irgend jemandem ein Zacken aus der Krone gebrochen, wenn er> da jeweils den Typ für den Returnwert und den Parameter dazu geschrieben> hätte?
Steht doch da:
"Rückgabewert
HIGH oder LOW."
:-D
Axel S. schrieb:> War das zu aufwendig?
Das wohl nicht...
Axel S. schrieb:> Würde das die Zielgruppe verwirren?
Das wird wohl der Grund sein!
Ich bin da voll bei dir, aber ich denke eher, dass die Philosophie dies
nicht verfolgt.
Anscheinend ist es eher so: "...man muss nicht wissen warum und wieso,
es funktioniert in den meisten Fällen, auch ohne tieferes Wissen."
Siehe hier, das konnte ich auch nicht so recht nachvollziehen:
Beitrag "Re: D1 MIni - Anfängerprobleme"
(ist wohl Geschmackssache)
HBose schrieb:> Die Argumente der Fraktion C usw. sind recht billig da ist nichts dabei> was einen überzeugen kann. Ausser Beschimpfungen (Bremser, Nihilist> etc.) ist den Herren noch nichts eingefallen was für diese> Programmierumgebungen spricht.
sorry so ein Rundumschlag an alle ist nicht nur falsch sondern auch
nicht zielführend.
Ich gehöre zur C-Fraktion seit 1988 qc für DOS und tue mich schwer mit
cpp, aber der Arduino und die IDE haben damit keine Probleme.
HBose schrieb:> Ich> wette 90% dieser Boards verschwinden im Müll
und mein nano328p funkt seit 2015 meine 433 MHz Rolladenempfänger vom
Breadboard an mit den Gratis LIBs RCsend, der wird mich vermutlich
überleben, ob er noch auf eine PCB kommt wie bei meiner wordclock12h ist
noch offen, da ich miesen DCF77 Empfang hier habe denke ich eher an
ESP32 mit NTP
Veit D. schrieb:> Hallo Arno,>> du kennst doch die Doku https://www.arduino.cc/reference/en/> Dort ist High und Low dokumentiert. High ist alles was größer 0 ist.
Entweder ich kann nicht lesen oder es steht irgendwo, wo ich es nicht
erwarte. Unter
https://www.arduino.cc/reference/en/language/variables/constants/constants/
steht jedenfalls nicht das, was du schreibst.
Veit D. schrieb:> Daneben gibts noch true und false als bool Type.
Eben nicht, das sind Integer-Konstanten (und dort gar nicht schlecht
erklärt). Ja, der Unterschied hat oft keine Auswirkung, manchmal aber
schon.
Veit D. schrieb:> Ebenso ist return von analogRead dort dokumentiert.
Schrieb ich doch, inzwischen. War nicht immer so. Und ist immer noch
reichlich verschwurbelt.
Vielleicht ist
1
int analogRead(int pin) - Returns ADC value
2
Return range depends on ADC resolution. By default, it is [0...1023] but on controllers that support higher resolution ADC, higher resolutions can be chosen with void setAnalogResolution(xxx) [mit Link zu der Beschreibung der Methode]
3
pin: Pin to read in Arduino pin numbering. Arduino defines constants A0 ... An for easy access.
ja wirklich so viel schwieriger zu verstehen als das, was da aktuell in
der Dokumentation steht, dass man damit das Ziel "Anfängertauglichkeit"
verlieren würde. Nicht ausgeschlossen.
Veit D. schrieb:> Seit einer Weile gibts die Doku auch auf deutsch, hat ein fleißiger> Forumsteilnehmer gemacht. Nicht aus diesem Forum. Ich weiß jetzt ehrlich> gesagt nicht worüber du meckerst?
Ich weiß nicht, wo du mich meckern siehst. Ich merkte nur an, dass es
eine ganze Menge Kritikpunkte an Arduino geben kann, die wenig bis
nichts damit zu tun haben, dass damit ja "jeder" programmieren kann.
MfG, Arno
Hallo,
Axel S. schrieb:> Du erkennst den Unterschied? Da steht, welches Headerfile man #includen> muß und ein vollständiger Prototyp der Funktion.
Arduino-Framework: man bekommt mit wenig Zeitaufwand und noch weniger
Vorkenntnissen relativ schnell ein überschaubares konkretes Projekt zum
Laufen. Das nutzt derjenige dann und ist zufrieden und wendet sich
seinen anderen Hobbys zu.
Wer mehr will kann sich gern reinkniene oder auf eine anderes Framework
wechseln, muß das aber nicht.
Meine Linuxkenntnisse sind bestenfalls bescheiden, Nutzzung beschränkt
sihc hier auf RasPi unter ähnlichen Rahmenbedingungen.
FHEM, Mosquitto, IceCast Streamserver laufen darauf und das will ich
eben nutzen
Und hier scheiden sich auch die Geister: wenn da unter Debian auf dem
Raspi was nicht läuft kann ich es entweder in die Ecke werfen
oderhoffen, irgendwo Hilfe zu finden. Da sind dann die Linux-Gurus mit
den heißen Tipps, eben einfach mal ein halbes Jahr sich mit Linux zu
befassen und dann das Problem selber lösen zu können. Könnte ich
durchaus, nur warum sollte ich mir für eine einmalige Sache Kenntnisse
aneignen, die ich nicht wieder brauche?
Die Zeit nutze ich lieber, um mich mit Sachen zu befassen. die ich
häufig oder ständig anwenden will...
Ansonsten ist es da wie bei Arduino: hunderte Foreneinträge mit tollen
falschen Hinweisen, die einer vom anderen abschreibt.
Ich kann da zum Glück meinen Bekannten fragen, der kann mir bei Linux
schnell und konkret helfen, der weiß sozusagen, wie "Linux geschrieben"
wird.
Witzigerweise nutzt genau der für seine anderen Hobbysachen die
ArduinoIDE, spart ihm Zeit. Bei dem Arduinokram muß ich ihn nicht
fragen, da schaue ich eben in die Sourcen und/oder schreibe mir fehlende
Sachen eben selber.
Bugreport speziell bei ESP8266/ESP32 überlasse ich da gern meinem
Bekannten, da ist schon maches eingeflossen, auch weil er eine mögliche
Lösung gleich mitliefert.
Gruß aus Berlin
Michael
Christian J. schrieb:> Das immer gleiche Argument heisst dann "Mach es doch selbst!" Naja, wenn> die Schaffer des Open Source Systems Linux in alle seinen Varianten auch> so denken würden, dann würde das kein Mensch verwenden können
Ähm, ist doch so...
Axel S. schrieb:> Ich halte das ganze Arduino-Projekt, zumindest was die Softwareseite> angeht, für vollkommen überflüssig. Ich möchte da gar nichts dazu> beitragen.
Gut, dann ist das wenigstens geklärt!
Und das mit der "Weisheit" (Punkt 3), auch wohl....
HBose schrieb:> Ihr dürft mich ruhig weiterbeschimpfen.
Gar nicht nötig.
Du kannst dich auch ohne Hilfe blamieren.
---
Mir ist irgendwie unverständlich, dass Leute, die mit Arduino nix zu tun
haben, auch nichts zu tun haben WOLLEN, und dazu wenig Ahnung davon
haben, so dermaßen das Maul aufreißen müssen.
Habt ihr eigentlich keine eigenen Probleme, worum ihr euch kümmern
müsstet?
Wozu ist das buddeln auf fremden Baustellen gut?
Welche Ziele, ihr habt?
Was befriedigt euch an dem Kampf gegen die Windmühlen, den ihr sowieso
verlieren werdet?
Es ist nun mal in der Welt, und wird auch nicht so schnell wieder
verschwinden.
Klarer:
Wenn ich kein Schokoeis mag, dann stecke ich es mir nicht in den Mund!
Das ist dann meine Entscheidung!
Und wenn der Nachbar Schokoeis isst, sage ich ihm doch auch nicht:
1. Das sieht ja aus wie Scheiße!
2. Das ist Scheiße!
Wieso könnt ihr euch das herausnehmen?
Ist es die antisoziale Ader in euch?
Michael U. schrieb:> Arduino-Framework: man bekommt mit wenig Zeitaufwand und noch weniger> Vorkenntnissen relativ schnell ein überschaubares konkretes Projekt zum> Laufen.
Das unterschreibe ich dann auch mal, denn das ist so. In den restlichen
Glaubenskrieg mische ich mich mal nicht ein. Und ja die QM ist ein
Makel, einer der vielleicht viel früher hätte beseitigt werden können,
bevor der Wildwuchs begann. Jetzt sehe ich höchstens eine Abspaltung,
einen Fork als Lösung, wie zb "Industrial Arduino", wo nur geprüfte
Dinge übernommen werden.
false is the easier of the two to define. false is defined as 0 (zero).
3
4
true:
5
true is often said to be defined as 1, which is correct, but true has a wider definition. Any integer which is non-zero is true, in a Boolean sense. So -1, 2 and -200 are all defined as true, too, in a Boolean sense.
> Veit D. schrieb:>> Daneben gibts noch true und false als bool Type.>> Eben nicht, das sind Integer-Konstanten (und dort gar nicht schlecht> erklärt). Ja, der Unterschied hat oft keine Auswirkung, manchmal aber> schon.
Hier liegst du richtig. :-)
Das artet hier schon in einen Glaubenskriegaus.
Ist schon fast wie LINUX - Windows.
Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren
sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das
man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem
Forum.
Alle anderen die Programieren können sollten sich gefälligst auch mal so
benehmen und lesbaren Code abliefern (also mit Kommentaren).
Ich kenne genug Code wo ich dachte, super ich kann mal faul sein, den
Code konnte ich meistens nicht mal als reference nehmen weil kein
Kommentar oder zuviele Fehler drin waren.
Ich lösche meistens so was schon wenn ich eine Datei öffne und nach 100
Zeilen Copyright Kommetar nicht mal erfahre wofür die Datei überhaupt
ist und der Rest so aussieht als wurde der Code durch einen
Komentarkiller geschoben.
Veit D. schrieb:> Arno schrieb:>> Veit D. schrieb:>>> https://www.arduino.cc/reference/en/language/variables/constants/constants/>> steht jedenfalls nicht das, was du schreibst.>> Häh, ich darf doch bitten.
Meine Antwort bezog sich auf deine Meldung:
> du kennst doch die Doku https://www.arduino.cc/reference/en/> Dort ist High und Low dokumentiert. High ist alles was größer 0 ist.
Jetzt hast du die Dokumentation von true und false zitiert. Ist das das
gleiche wie HIGH und LOW? Ich vermute erstmal nicht.
MfG, Arno
Klaus schrieb:> Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren> sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das> man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem> Forum.
So so...
Du meinst nicht, dass sich "Der Arduino User" in einem Prozess (des
Lernens) befindet?
Sondern eher, dass er statisch doof ist.(?)
Evtl. solltest du mal annehmen, nur versuchsweise, dass du dich irrst.
Und, wenn du dich in dem Punkt schon irrst... wo dann sonst noch?
Ansonsten, meinen Glückwunsch, dass deine Mama es geschafft hat, dich
als voll ausgebildeten Nerd auf die Welt zu pressen.
Schafft auch nicht jede Mama.
Merksatz:
> Wer über Menschen urteilt, hat meist keine Zeit sie zu lieben!
Klaus schrieb:> Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren> sondern bastetl sich was zusammen.
das ist sowas von falsch (jedenfalls so absolut)
Ich kann programmieren seit 1979, aber zugegeben nicht cpp und in
anderen Augen von "echten" Programmieren (gibts die überhaupt)
vielleicht nicht gut.
Ein Informatikstudent meinte mal programmieren ist eigentlich nichts,
deswegen ist ein Informatiker eher ein SW Architekt. Da geht es um
richtiges Design und bekannte plausible Schnittstellen die auch leicht
prüfbar sind, nicht um Code!
Klaus schrieb:> Und ja es gehört auch eine Doku dazu was an Parameter eine Funktion> erwartet und zurück gibt.
guter Code zeichnet sich um Lesbarkeit aus und nicht um geniales
Ausnutzen der verschwurbelten Hinterlistigkeiten die so bekannt sind!
Klar sind alle Computerheinis faul, auch deswegen werden eher Zeilen
eingespart und Kommentare. Ein genialer Einzeiler mag funktionieren ist
aber später schwer zu durchschauen, erst Recht wenn der Compiler ein
Update bekommt und mancher Trick nicht mehr funktioniert.
Arduino Fanboy D. (ufuf)
>22.06.2020 15:56>Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind>in C geschrieben, verwenden dieser Logik folgend auch gerne int als>Parameter/Rückgabe, wo immer es möglich ist. Zur Not erfolgt ein>impliziter Cast.
Der Grund, warum "int" verwendet wurde, war der Versuch, sich an Java
anzulehnen. Das Programmieren sollte möglichst stark an Processing auf
der PC-Seite angelehnt sein und da die Umgebung für Künstler und
Anfänger gedacht war, wollte man niemanden mit genau definierten
Datentypen wie "uin16_t" o.ä. verwirren.
https://processing.org/
Zu den Anfangszeiten der C-Compiler gab es hauptsächlich "int" und damit
war eine vorzeichenbehaftete Variable mit der Wortlänge des Prozessors
gemeint. Die Bitlängendatentypen kamen erst später, als
Verarbeitungsbreiten der Prozessoren immer unterschiedlicher wurden.
Processing war die Programmierumgebung für die Künstler auf der
PC-Seite.
>Dunnemals gab es noch keinen gemeinsamen bool Datentype in der C und C++>Welt. Sonst hätte man ihn evtl. verwendet, statt HIGH und LOW.
Nein. Auch dort gilt: In Java und damit in Processsing gibt es
"boolean".
Hätte man sich an den C++ Syntax angelehnt, wäre es "bool" gewesen.
Die Verwendung von HIGH und LOW ist unter Programmiergesichtspunkten
äußert korrekt, weil damit der Pin-Zustand abstrahiert wird und
theoretisch auch ein "Tristate" als Argument möglich wäre oder inverse
Logik.
Marc schrieb:> Die Verwendung von HIGH und LOW ist unter Programmiergesichtspunkten> äußert korrekt, weil damit der Pin-Zustand abstrahiert wird und> theoretisch auch ein "Tristate" als Argument möglich wäre oder inverse> Logik.
Nur dass das nicht falsch rüberkommt: Das halte ich auch für sehr
korrekt, nur sollte es dann (für mich zumindest) irgendwo knapp, aber
halbwegs abschließend dokumentiert sein. Und wenn da steht "HIGH und LOW
sind spezielle Werte eines int, die Arduino für Pin-Zustände verwendet -
sowohl beim Lesen als Rückgabewert von digitalRead() als auch beim
Schreiben als Argument für digitalWrite()". Sowas will ich mir
eigentlich nicht aus Code-Beispielen zurechtreimen.
Noch korrekter wäre, wenn es dazu auch einen Datentyp "pin_status_t"
gäbe, der nur HIGH oder LOW (oder in Zukunft vielleicht auch HIGH_Z oder
FLOATING) sein darf. Dann könnte man auch selbsterklärende
Funktionsprototypen in die Doku schreiben: pin_status_t
digitalRead(pin_number_t pin). Sagt mir mehr als in der ganzen aktuellen
Dokumentation zu digitalRead steht.
Aber eigentlich wollte ich diese Diskussion gar nicht neu aufmachen,
sondern nur dem "Arduino wird nur deswegen ignoriert, weil Laien damit
genauso gut programmieren können wie Profis" ein Argument entgegen
setzen.
MfG, Arno
Arno schrieb:> "Arduino wird nur deswegen ignoriert, weil Laien damit> genauso gut programmieren können wie Profis"
Nicht "ignoriert", sondern Ablehnen.
Gegen ignorieren hat doch keiner was....
Also anders:
Warum wird hier, in diesem Forum, Arduino so aktiv bekämpft, nieder
gemacht, die User gedemütigt?
Was steckt da hinter?
Nachhinkender schrieb:> Territorialer Machtkampf?
Hmm ...
Was gibts denn da zu verlieren, oder zu gewinnen?
Woraus besteht das Territorium, welches mit solchen Mitteln (der
Erniedrigung, Verachtung usw.) zu retten ist?
Nöö...
Wirtschaftliche Interessen, werden es wohl nicht sein, denke ich mal.
Arduino Fanboy D. schrieb:> Woraus besteht das Territorium, welches mit solchen Mitteln (der> Erniedrigung, Verachtung usw.) zu retten ist?
Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist,
möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist.
Das ist das Territorium im Kopf.
Diskutiere mal mit einem Apple Kunden über Preis-/Leistungsverhältnis
oder wer bei einer Geschäftsbeziehung mit Apple eigentlich der "König"
ist. Das ist genau so aussichtslos.
Stefan ⛄ F. schrieb:> Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist,> möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist.> Das ist das Territorium im Kopf.
Vielleicht kann ich das verstehen!?
Aber ist das nicht, als wenn man ein paar Kinderlein mit Förmchen im
Sandkasten spielen sieht, neidisch wird, auf das naive kindliche Spiel,
und dann hin geht, die Förmchen zertritt, und die Kinder mit Sand
füttert?
Nur zum Zwecke, dass sie genauso verbittert/frustriert werden, wie man
selber ist?
Unreflektiertes Macho Gehabe?
Frei nach dem Motto:
Irgendwas stört mich.
An mir selber kann es nicht liegen, darum haue ich irgendwem anders die
Fresse ein.
Nee, so billig ist das nicht.
Da muss noch mehr hinter stecken.
Denn so blöd können Programmierer nicht sein!
Arduino Fanboy D. schrieb:> Aber ist das nicht .. kindlich
Ja klar ist es das. Wir sind unvollkommen, aber immerhin haben wir die
Fähigkeit, das zu erkennen - wenn wir wollen.
Stefan ⛄ F. schrieb:> Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist,> möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist.> Das ist das Territorium im Kopf.
Das ist es.
Trotz allen Problemen zum Trotz wäre dem Arduinouniversum am besten
geholfen wenn diejenigen die willig sind, andere an ihrem Wissen mit
teilhaben zu lassen, mit guten Beispiel voranzugehen. Dann werden mit
der Zeit die rauen Ecken alleine abgeschliffen.
Wirklich gute Entwicklung muss gelernt sein. Dazu gehört
Problemdefinition, adäquate Projektplanung, komplette und fehlerfreie
Dokus auf dem Weg des Projekts, algorithmisches Wissen wie man
Schwieriges in die Praxis umsetzt und solide Kenntnis der
Spracheigenheiten. Das ist für Anfänger schon ein bischen viel erwartet
und muss auch gelernt werden.
Im uC-Bereich kommt dann noch das notwendige Elektronik Wissen dazu, die
Fähigkeit mit Datenblätter und App Notes richtig umgehen zu können,
wissen wie man und wo man im Internet sucht, wie man uC robust einsetzt
ohne die üblichen Schwierigkeiten zu haben und last not least, gut
bekannte Fehler zu vermeiden und nicht mit dem Kopf stur immer durch die
Wand gehen zu wollen und auf andere zu hören.
Auch Arduinoanfängern würde es nicht schaden die uC und Komponenten
Datenblätter regelmäßig zu studieren um mit den Feinheiten bekannt zu
werden. Viele Komponenten haben ein geheimes Eigenleben das einem ab und
zu in den Hintern beißen kann.
Als Junger sollte man ruhig darauf hören was manche alten Hasen zu
vermelden haben die dieselben Probleme schon lange hinter sich haben.
Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig.
Vor dem Laufen kommt das Gehen lernen...
Nachhinkender schrieb:> Vor dem Laufen kommt das Gehen lernen...
Alles richtig, was du da sagst, wie mir scheint...
Allerdings beschreibst du einen Prozess, welcher sich über Jahre
erstreckt.
Auch gerne viele Jahre....
Welcher auch nur mit Freundlichkeit und Vertrauen so funktioniert.
Nachhinkender schrieb:> Als Junger sollte man ruhig darauf hören was manche alten Hasen zu> vermelden haben die dieselben Probleme schon lange hinter sich haben.> Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig.
Aber, was tut man, wenn man hier mit solcher Gewalt und Vorurteilen,
angegangen wird.....
Klaus schrieb:> Aber mal ernst, der Haupt-Adruino-Anwender kann nicht Programieren> sondern bastetl sich was zusammen. Der hat auch keine Ahnung davon das> man den Code Kommentieren sollte. Wenn er Probleme hat fragt er in einem> Forum.
Da haben wir so einen "alten Hasen", zumindest einen, der so tut, als
wäre es der Vollchecker. (bei weitem nicht der einzige)
z.B.
Eine jugendliche noch unfertige Persönlichkeit muss man doch nicht so
treten. Ja, da sind auch sanfte und friedvolle angehende Genies bei.
Ok, sie werden teilweise durch Schule und Ausbildung in die Arduino Ecke
gedrängt. Und lass am Ende auch nur 10% das Programmierer Gen richtig
ausleben.
Aber darum muss man doch nicht ALLE so mit Scheiße übergießen...
Stefan ⛄ F. schrieb:> Wenn man von dem was man besitzt oder was man tut sehr> überzeugt ist, möchte man sich nicht gerne anhören, dass> man da auf dem Holzweg ist.
Nicht jeder Mensch verwechselt "Überzeugung" mit "Glauben".
Manche wissen auch, dass zu einer Überzeugung Erfahrungen,
Wissen und Wertmaßstäbe gehören.
Hi
Stefan ⛄ F. schrieb:
> Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist,> möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist.
Und wer entscheidet wer auf dem Holzweg ist? Die Arduino-Fanatiker oder
die Arduino-Gegner?
MfG Spess
Wie wäre es denn, wenn man dem Author der Lib (die Mißt ist) einen Brief
schreibt und fordert seinen Code binnen 7 Tage mit passender Doku zu
versehen? Im Schreiben kann man sich ja als Anwalt ausgeben ;-)
Wie? Ich Arduino-Fanatiker?
Ist nicht dein Ernst, oder?
Nöö..
Das ist reines Interesse...
Wenn du behauptest, dass es sie gibt, werden sie dir ja sicherlich schon
begegnet sein..
Wo?
Hier?
Belege?!?
Oder ist das einfach nur eine dulle Fantasie von dir?
Der bedrohliche "Arduino-Fanatiker", der dir den Käse vom Brot klaut....
Ist das Zähne klappern, die Panik vor nix, auch bei dir schon
angekommen?
Ich bin auf der Suche nach Gründen, für die massive Ablehnung...
Aber wenn selbst du schon so auf Panik bist, dass die Fantasie so mit
dir durchgeht, dass du Schreckgestalten dahin malen musst...
Dann gute Nacht.
Hi
>Oder ist das einfach nur eine dulle Fantasie von dir?>Der bedrohliche "Arduino-Fanatiker", der dir den Käse vom Brot klaut....>Ist das Zähne klappern, die Panik v...>Wenn du behauptest, dass es sie gibt, werden sie dir ja sicherlich schon>begegnet sein..
Jetzt habe ich einen gefunden.
MfG Spess
spess53 schrieb:> Stefan ⛄ F. schrieb:>> Wenn man von dem was man besitzt oder was man tut sehr>> überzeugt ist, möchte man sich nicht gerne anhören,>> dass man da auf dem Holzweg ist.>> Und wer entscheidet wer auf dem Holzweg ist?
Jeder selbst.
Problem: Auch wenn man fühlt, dass man auf dem Holzweg
ist, hat man nicht unbedingt eine gangbare Alternative.
Deshalb entsteht dann sowas:
"Die meisten Glaubenslehrer verteidigen ihre Sätze,
nicht weil sie von der Wahrheit derselben überzeugt
sind, sondern weil sie die Wahrheit derselben einmal
behauptet haben." (Georg Christoph Lichtenberg)
Egon D. schrieb:> Deshalb entsteht dann sowas:> "Die meisten Glaubenslehrer verteidigen ihre Sätze,> nicht weil sie von der Wahrheit derselben überzeugt> sind, sondern weil sie die Wahrheit derselben einmal> behauptet haben." (Georg Christoph Lichtenberg)
wie wahr, jede eingestellte Niete wird vom Chef verteidigt weil er NIE
Nieten einstellt!
spess53 schrieb:>> Wenn man von dem was man besitzt oder was man tut sehr überzeugt ist,>> möchte man sich nicht gerne anhören, dass man da auf dem Holzweg ist.> Und wer entscheidet wer auf dem Holzweg ist? Die Arduino-Fanatiker oder> die Arduino-Gegner?
Ich würde sagen, derjenige, der imstande ist, die Lage objektiv zu
betrachten. Da viele Menschen unterschiedlichen Hintergrund haben, wird
es mehrere unterschiedliche richtige Antworten geben.
>Ich würde sagen, derjenige, der imstande ist, die Lage objektiv zu>betrachten. Da viele Menschen unterschiedlichen Hintergrund haben, wird>es mehrere unterschiedliche richtige Antworten geben.
Was Objektivität ist, wurde von Philosophen schon vielfach untersucht.
Soweit ich weiß, sind sie noch zu keinem abschließenden Ergebnis
gekommen.
Hallo
Nachhinkender schrieb:> Als Junger sollte man ruhig darauf hören was manche alten Hasen zu> vermelden haben die dieselben Probleme schon lange hinter sich haben.> Grundlagen bleiben auch in der modernen Zeit noch lange Zeit gültig.
Nur wie soll ein "Junger" oder besser Anfänger der auch mal 50 Jahre und
älter sein kann, zwischen einen "alten Hasen" im positiven Sinne und
einen "alten ewig gestrigen Grummelhasen" unterscheiden?
Im direkten Kontakt mag das noch gehen, wobei beim tatsächlich jungen
Anfänger (Jugendlicher) oft noch das Problem besteht das sie sich nicht
trauen auch mal deutlich zu Fragen bzw. deutlich zu sagen "Hallo alter
Hase da redest du aber ziemlichen Unsinn nach meiner Meinung - erzähl
jetzt noch mal langsam und deutlich warum das so sein sollte und hör
bitte auf mir alle Aufgaben aufzudrücken - du willst (sollst) mir doch
was beibringen"
Solche notwendigen Rückmeldungen zu geben schafft man im Allgemeinen
erst wenn man schon etwas älter ist.
Tja und das ganze dann via Foren oder anderen virtuellen Kontakten
zwischen Personen die sich persönlich überhaupt nicht kenne?!
Da kommt es schnell zu Missverständnissen und falschen Vorstellungen
bezüglich des Gegenübers.
De "alte Hase" mag es gut meinen wenn er davon erzählt wie er Anno 1985
nach 3 Monate Datenbücher wälzen, aufarbeitung seiner Kenntnisse des
Boolschen Algebra das "auswendig" lernen jedes Registerbits es geschafft
hat eine LED mittel µC zum leuchten zu bringen - aber das interessiert
den Anfänger von 2020 (aber auch schon von 2000) in den seltensten
Fällen (höchstens nach vielen Monaten einmal - wenn er selbst zum
"alten" Hasen geworden ist)- der möchte aber verstehen was überhaupt
eine Variable ist, was verdammt noch mal eine Instanz ist:
"Sind wir hier im Justizwesen, hallo, ich möchte lernen wie man einen µC
Programmiert?!" ;-)
oder wie er endlich den Treiber für seinen China Arduinoclone zu laufen
bekommt , warum zum Teufel mal von Funktion mal von Methode und mal von
Klasse die Rede ist:
"Hähhh jetzt nicht nur Justizwesen sondern auch noch Schule, ja 1998 war
ich in der 9b bei Frau Schnulzenbrot in der Klasse, aber was hat das mit
dem zu tun was ich meinen Arduinbo beibringen will?!" usw. usw.
Der alte Hase setzt unbewusst (wie ein schlechter und ungeduldieger
"peitschender" Lehrer, Ausbilder, Tutor) oft viel zu viel voraus gerade
im Bereich der µC Programmierung wo es dermaßen viele Begrifflichkeiten
gibt die viele Bedeutungen haben unter der sich nicht nur der neuling
etwas ganz anderes vorstellt - wie halt die Begriffe Funktion, Klasse,
Element ("Ahh Das fünfte Element - der berühmte Film") usw.
Die Bedeutung und was damit bei der Programmierung gemeint ist
verständlich herüber zu bringen ist die Herausforderung die an einen
"echten" alten Hasen zu stellen ist.
Aber viele alte Hasen, gerade halt online in Foren, sind tatsächlich vor
allem alt und denken im innersten immer noch wie 1982 und haben
"vergessen" wie schwierig für sie auch das µC bzw. Programmier- ABC war
- eigentlich noch schwieriger da es oft keinerlei Hilfe durch andere
gegeben hat und viel Literatur englischsprachig war.
Hennes
Marc schrieb:> Was Objektivität ist, wurde von Philosophen schon vielfach untersucht.> Soweit ich weiß, sind sie noch zu keinem abschließenden Ergebnis> gekommen.
Vor allem auch zu keinem objektiven Ergebnis.
Einer der "alten Hasen" (Ich) setzt nichts vorraus, jeder fängt mal an.
Und auch ich fange regelmässig neue Sachen an, wo ich hilfe brauche.
Aber wenn man immer wieder sagt das Kommentare wichtig sind und keiner
hört dann macht das auch keinen Spaß. Auch nicht so was sich anzusehen.
Auch meine Einschätzung das die meisten Adruino Jungs nicht
"Programmieren" sondern Basteln ist halt mein Eindruck, wenn man so die
ganzen Foren sich so ansieht. Das der eine oder andere eine Stufe weiter
geht ist für den jenigen doch super.
Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar
drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das
es keine Fehlerbehandlung gibt hilft.
Wenn wir hier schon meckern dann aber bitte richtig:
C++ mit den überlagerten Funktionen ist das schlimmste was man sich
ausdenken konnte.
Sprachen bei denen man mittendrin durch verscheiben eine neue Variable
anlegen kann sind tötlich.
So ich bin dann mal weg.
Sach ich ja:
Ein Grund für die ganze Arduino Ablehnung ist, dass so manche nicht mit
C++ klar kommen. Völlig überfordert sind.
Also muss Arduino auch Mist sein.
Erwartungshaltungen in die Welt blähen, aber offensichtlich nix selber
dagegen tun...
Ansonsten das gleiche Lied:
Von Einzelnen auf die ganze Gruppe schließen.
Alle in einen Sack und Diskriminieren.
Fein mit dem Knüppel drauf rum hauen.
Armer Kerl... (und vor allen Dingen, armes Umfeld)
Arduino Fanboy D. schrieb:> Erwartungshaltungen in die Welt blähen, aber offensichtlich nix selber> dagegen tun...
Was regst Du Dich auf? Das ist doch (hier) immer so. Hier gibt es viele
(Möchtegern-) Experten, die auf die Arduino-Niederungen herabsehen.
Schon "immer" und wahrscheinlich für "immer" :-).
Warum und wozu ich Arduino-(Librarys) nutze habe ich schon geschrieben.
Für mich ist das z. B. oft ein guter Aufsetzpunkt, um eigene
Entwicklungen zu realisieren. Man muss ein Rad nicht neu erfinden - kann
es aber an seine Bedürfnisse anpassen. Ich schaue immer, wie andere
etwas umgesetzt haben - man lernt nie aus.
Das "abgehobene Gehabe" hier ist halt der Foren-Ton - das hört man
irgendwann nicht mehr. Ich lese oft mit und finde z. B. die Artikel -
besonders für Anfänger - wirklich gut geschrieben. Leider ist die
Zielgruppe in der heutigen Zeit eher Youtube-orientiert.
Was mich nervt sind Leute, die ohne die Foren-User-Hilfe keinen Schritt
gehen können und zu bequem sind Datenblätter oder andere
englischsprachige Literatur zu lesen (ja, es gibt online-Übersetzer).
Hugo H. schrieb:> Das "abgehobene Gehabe" hier ist halt der Foren-Ton - das hört man> irgendwann nicht mehr.
Mag sein.....
Ist aber dennoch ein klares Symptom schwacher bis nicht vorhandener
Empathie.
Respektlos und ohne Ehre.
Intolerant.
Als wenn es außerhalb des Denkvermögens ist, dass in der Arduinowelt
Menschen unterwegs sind, oder gerade einsteigen.
Kinder/Jugendliche ab ca 10 Jahre, bis zu Leuten, welche schon seit über
20 Jahren in Rente sind.
Hugo H. schrieb:> Was regst Du Dich auf?
Ich mag es nicht, wenn man Menschen diskriminiert.
Egal, ob wegen der Hautfarbe, Religion, der Beschäftigung mit Arduino,
dem Alter, oder irgendwas anderem.
Meine Versuche da gegenzusteuern, kann man "ärgern" nennen.
Ist vielleicht auch hoffnungslos.....
Klaus schrieb:> Aber wenn man immer wieder sagt das Kommentare wichtig> sind und keiner hört dann macht das auch keinen Spaß.> Auch nicht so was sich anzusehen.
Das stimmt zwar -- aber ich glaube, Du unterschätzt die
Größe des Problems: Es bedarf einer gewissen Erfahrung,
um die Quältexte mit NÜTZLICHEN Kommentaren versehen zu
können.
Darüberhinaus braucht man auch eine übergreifende
Methodik beim Programmieren -- wenn man wild an allen
Stellen gleichzeitig herumändert, kann man auch nix
vernünftig kommentieren, weil die Überlebenswahrschein-
lichkeit der Kommentare zu gering ist.
> Auch meine Einschätzung das die meisten Adruino Jungs> nicht "Programmieren" sondern Basteln ist halt mein> Eindruck, wenn man so die ganzen Foren sich so ansieht.
Das liegt in der Natur der Sache: Feile oder Stemmeisen
sind schon WESENTLICH länger bekannt und verändern sich
gegenwärtig auch nicht tiefgründig -- also gibt es einen
im Wesentlichen feststehenden und akzeptierten Lehrkanon,
wie man den Umgang damit erlernt, und den kann man auch
in einschlägiger Literatur nachlesen.
Die Computertechnik ist seit 50 Jahren im Zustand der
permanenten Revolution, und entsprechend dynamisch müssen
sich auch die Lehr- und Ausbildungsinhalte anpassen. Für
Außenstehende ist es schwierig bis unmöglich, dort so eine
Art Lehrkanon zu erkennen und sich diesen anzueignen.
Das führt dann auch dazu, dass eigentlich sinnvolle Arbeits-
techniken als "...das ist ja voll Achtziger..." abgetan
werden.
> C++ mit den überlagerten Funktionen ist das schlimmste> was man sich ausdenken konnte.
Falls Du das Überladen von Funktionen meinst: Wieso denn
das?
FreePascal kann das auch, und ich finde es inzwischen --
nach einer Schrecksekunde vor vielen Jahren -- ziemlich
praktisch. Man muss sich nicht mehr zwanghaft verschiedene
Namen für inhaltlich gleiche Funktionen ausdenken, deren
Unterschied nur darin besteht, dass sie über verschiedenen
Datentypen operieren. Man kann die alle gleich nennen, und
der Compiler sucht sich dann die konkrete Implementierung
heraus, die auf die gerade verwendeten Datentypen passt.
Starke Typisierung macht ohne überladbare Funktionen keinen
Spaß -- das kennen wir von Standard-Pascal...
> Sprachen bei denen man mittendrin durch verscheiben eine> neue Variable anlegen kann sind tötlich.
Komplett andere Baustelle.
Die Schwerpunkte liegen halt bei "rapid prototyping" anders
als bei produktionstauglicher Software -- also nimmt man
andere Werkzeuge mit anderen Eigenschaften.
Egon D. schrieb:> Man kann die alle gleich nennen, und> der Compiler sucht sich dann die konkrete Implementierung> heraus, die auf die gerade verwendeten Datentypen passt.
Hihi, und ich habe eine Codebasis mit dem schönen Funktionsnamen
"convert". Davon gibt's ungefähr 200 Stück und es ist jedesmal ein
Heidenspaß rauszufinden, welche davon jetzt aufgerufen wird. :-)
Und nein, das ist nicht überall trivial herauszufinden.
S. R. schrieb:> Egon D. schrieb:>> Man kann die alle gleich nennen, und>> der Compiler sucht sich dann die konkrete Implementierung>> heraus, die auf die gerade verwendeten Datentypen passt.>> Hihi, und ich habe eine Codebasis mit dem schönen> Funktionsnamen "convert". Davon gibt's ungefähr 200 Stück> und es ist jedesmal ein Heidenspaß rauszufinden, welche> davon jetzt aufgerufen wird. :-)
Tja gut... "Fachleute" gibt es überall. Jede gute Idee
lässt sich durch Übertreibung ad absurdum führen...
Ich bastele in FreePascal gelegentlich an speziellen Dingen
zur Bildverarbeitung herum; Grauwerte von Pixeln sind ja
häufig vorzeichenlose Bytes -- aber manchmal braucht man
halt doch ein Vorzeichen oder mehr geltende Ziffern. Da
ist es dann ganz nützlich, wenn inhaltlich gleiche Routinen
auch den gleichen Namen bekommen dürfen und trotzdem anhand
der Datentypen korrekt unterschieden werden.
> Und nein, das ist nicht überall trivial herauszufinden.
Kann ich mir vorstellen.
Scheint mir aber im Kern ein Problem unsinniger Benennung zu
sein -- denn wenn die 200 unterschiedlichen Konvertierungen
inhaltlich nicht identisch, sondern verschieden sind, ist es
natürlich Frevel, sie gleich zu benennen. Konsequenterweise
könnte man ja generell den Universalnamen "do_it" für sämtliche
Funktionen des Programms benutzen -- vielleicht noch durch eine
laufende Nummer ergänzt...
von Klaus (Gast)
>Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar>drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das>es keine Fehlerbehandlung gibt hilft.
Wobei sich der Stil, wie man Software schreibt im Laufe der
Entwicklungsgeschichte der Informatik stark ändert.
Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei
Änderungen oft nicht nachgezogen werden und veraltet sind ( ein falscher
Kommentar nützt nichts ). In der modernen Softwareentwicklung steckt man
mehr Zeit in die Verständlichkeit des Codes ( er soll wie ein gutes Buch
geschrieben sein).
Näheres dazu siehe CleanCode:
https://de.wikipedia.org/wiki/Clean_Code
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C.
Martin)
Marc schrieb:> von Klaus (Gast)>>Aber die ganzen Code Beispiele/Libs bringen nichts, wenn kein Kommentar>>drin ist. Selbst ein Kommentar das es ein ungetesteter Code ist oder das>>es keine Fehlerbehandlung gibt hilft.>> Wobei sich der Stil, wie man Software schreibt im Laufe der> Entwicklungsgeschichte der Informatik stark ändert.>> Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei> Änderungen oft nicht nachgezogen werden und veraltet sind ( ein falscher> Kommentar nützt nichts ). In der modernen Softwareentwicklung steckt man> mehr Zeit in die Verständlichkeit des Codes ( er soll wie ein gutes Buch> geschrieben sein).>> Näheres dazu siehe CleanCode:>> https://de.wikipedia.org/wiki/Clean_Code>> Clean Code: A Handbook of Agile Software Craftsmanship (Robert C.> Martin)
Das Problem ist, dass man fremden Code üblicherweise/häufig dann
versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt
absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code
zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden,
wenn sie keinen Fehler eingebaut hätten.
Das ist der Grund, warum solcher Code dann gerne neu geschrieben wird.
Axel L. schrieb:> Das Problem ist, dass man fremden Code üblicherweise/häufig dann> versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt> absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code> zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden,> wenn sie keinen Fehler eingebaut hätten.
deswegen ist es eher sinnvoll den Code OHNE Fehler neu zu schreiben.
Ich sollte ein Prüfprogramm von meinem Vorgänger an einen neuen Prüfling
anpassen über den schon 100k Baugruppen getestet wurden. Ich fand
Fehler, keiner glaubte mir ich sollte den "nur" anpassen. Es dauerte 3
Wochen (natürlich ohne Ergebnis) bis ich dem Vorgestzten die
Fehlerhaftigkeit nachweisen durfte. Das Prüfprogramm kam immer in einen
Prüfpunkt zum Ergebnis gut auch wenn ein manipulierter Prüfling in
diesem Punkt eben schlecht war. Dann erst durfte ich nach 3 verlorenen
Wochen das Programm neu schreiben.
Ich erhöhte die Prüftiefe, verkürzte die Prüfzeit um 33%, alles war gut.
Leider wurden vom neuen Prüfling keine 100k bestellt sondern nur 10k,
was den Erfolg schmälerte. (Prüfminute wurde früher mit 1,-DM/Minute
kalkuliert).
Marc schrieb:> Mittlerweile verzichtet man weitgehende auf Kommentare, weil diese bei> Änderungen oft nicht nachgezogen werden und veraltet sind
Mit Verlaub, aber das ist Unsinn. Selbstverständlich sind Kommentare,
die nicht zum Code passen, sinnlos. Aber nur weil manchmal manche
Programmierer schlampig sind, ist das doch kein Grund, auf Kommentare zu
verzichten.
Tatsächlich gibt es sehr gute Gründe, die Dokumentation in Kommentaren
nahe beim Code zu halten (siehe javadoc, Doxygen, etc). Denn das erhöht
die Wahrscheinlichkeit, daß bei einer Codeänderung auch die Doku
nachgezogen wird. Wer den Code ändert, aber den direkt daneben stehenden
Kommentar nicht, der wird ganz sicher auch nicht die Dokumentation in
einem anderen Dokument pflegen.
[clean code]
Eine ähnliche, aber dennoch andere Baustelle. Denn man kann ja das eine
tun, ohne das andere zu lassen. Selbstverständlich sollte Code so
geschrieben werden, daß er gut lesbar (verständlich, wartbar, debugbar)
ist. Die Kommentare sollen den Teil dokumentieren, der nicht
unmittelbar beim Lesen des Codes klar wird. Wertebereiche von Parametern
z.B. Oder die Bedeutung von enum Parametern/Rückgabewerten.
Die meisten Programmieranfänger schreiben grottige Kommentare,
wahrscheinlich weil das nicht gut gelehrt wird. Eine Zeile
dann kann es durchaus hilfreich sein, wenn darüber in einem Kommentar
erklärt wird, wie die Schleifengrenzen zustande kommen.
Das andere kanonische Beispiel, wo der Code nach einem Kommentar
geradezu schreit ist, wenn man in einem switch Statement ein
fallthrough von einem case zum nächsten benutzt.
Das Schreiben guter Kommentare erfordert mindestens die gleiche
Kompetenz wie das Schreiben von gutem Code.
Joachim B. schrieb:> Axel L. schrieb:>> Das Problem ist, dass man fremden Code üblicherweise/häufig dann>> versucht zu verstehen, wenn man darin nach Fehlern sucht. Und es gibt>> absolut nichts geileres, als in fehlerhaftem, "selbsterklärendem" Code>> zu versuchen zu verstehen, was die Autoren wohl gewollt haben würden,>> wenn sie keinen Fehler eingebaut hätten.>> deswegen ist es eher sinnvoll den Code OHNE Fehler neu zu schreiben.
Nein, das hängt vom Fehler ab.
Aber um das zu beurteilen, muss man den Code und den Fehler erstmal
verstanden haben. Und da kommt dann wieder mein Einwand, ein
fehlerhafter Code ohne Hinweis auf die Intention des Autors ist extrem
schwer zu verstehen.
Sowas rutscht auch bei jedem Review durch, weil die meisten davon
ausgehen, dass sie die Genialität des Autors nur nicht begreifen und
nichts sagen.
Hallo
Arduino Fanboy D. schrieb:> Ein Grund für die ganze Arduino Ablehnung ist, dass so manche nicht mit> C++ klar kommen. Völlig überfordert sind.
Wobei es aber auch schwierig ist Anfänger taugliche und somit
verständliche C++ Lehrmaterialien zu finden die sich an den µC
Interssierten Anfänger wenden.
(Und eben nicht PC mit den ewig sehr ähnlichen Beispielen beginnend mit
"Hello World" bis zu irgendeiner Form einer Mitarbeiterdatenbank...)
Ein Anfänger nach meiner Definition hat noch nicht Erfahrungen in einer
anderen Programmiersprache, man darf von ihnen nicht erwarten Mathematik
oberhalb des Niveaus 8 Klasse Gymnasium zu beherrschen, er beherrscht
englisch "nur" so gut das er zwar so einigermaßen den Inhalt erfassen
kann aber eben nicht die Feinheiten geschweige denn das "Anleitungen"
"Tutorials" und ähnliches entspannt und konzentriert auf den
eigentlichen Inhalt genutzt werden können.
So unter diesen Voraussetzung nenne mal einer ein Anfänger- (Einsteiger)
Lehrgang der sich an den µC Interessierten und eben nicht(!) PC
interessierten wendet und in "sauberer" deutscher Sprache vorliegt, also
weder der "niedliche" Kurs für Kinder bzw. "junge" Jugendliche (so mit
den "süßen" Robbi , irgend ein Außerirdischen oder irgendwelchen
Viechern) aber eben auch nicht der Hochschulkurs der zwar vorgibt sich
an Anfängern zu wenden aber eine Sprache nutzt die so gar nichts mit
Allgemeinwissen zu tun hat und ausschließlich verwirrt und abschreckt
(Arme Studenten).
Also eigentlich so was wie die "Arduinosprache" (eigentlich ja C++
aber... na ja ) in einigen Büchern gelehrt wird - wobei dort aber eben
die für uns hier frag würden Vorteile (?) und Vereinfachungen bzw. Black
Boxes Teil des Konzepts sind und zwangsweise zu den "dummen" (Gibt es
eigentlich nicht - also eher nervenden) und ewig gleichen Fragen und
Problemen führt.
Ich habe bis jetzt z.B. noch nie ein Tutorial gefunden wo von Grund aus
erklärt oder besser vorgeführt wird wie eine Bibliothek erstellt wird.
"Häää, bist du blöd ?! Da gibt es doch hunderte Beispiele! "
Ja aber immer nur wie es prinzipiell funktioniert bzw. es werden
Bibliotheken entwickelt die praktisch wenig Wert haben (Es blinkt
gefühlt irgendwie immer nur).
Aber das mal en Detail an Beispiel einer "richtigen" Nutzbibliothek z.B.
für ein Display, einen Sensor oder ein Übertragungsprotokoll habe ich
noch nie gesehen.
Das so ein Beispiel dann auch mal einige dutzend Seiten füllen würde ist
mir klar, aber ist das wirklich ein Hindernis?
Hennes
Hennes schrieb:> Ich habe bis jetzt z.B. noch nie ein Tutorial gefunden wo von Grund aus> erklärt oder besser vorgeführt wird wie eine Bibliothek erstellt wird.https://www.arduino.cc/en/Hacking/LibraryTutorial
was ist daran schlecht? Wenn das Prinzig der Kapselung verstanden wurde
ist das schon ein guter Schritt. Für gute Bibliotheken ist nunmal das
Verständnis des Werkzeuges (C++) und die Erfahrung im Umgang damit
Pflicht. Viele Bibliotheken sind auch gewachsen, mal weil der Autor
gelernt hat das es eleganter geht, oft weil die Anwender weitere
Anforderungen beigetragen haben.
Und keine Kommentare weil die sowieso veraltet sind, naja, tolles
Totschlagargument. Genauso sind Tests überflüssig weil die ja auch nicht
alles abdecken. Programmier sind einfach faul und wissen das zu
begründen...
Axel L. schrieb:> Nein, das hängt vom Fehler ab.>> Aber um das zu beurteilen, muss man den Code und den Fehler erstmal> verstanden haben
Den Fehler bei der Prüfung habe ich verstanden den Codefehler nicht, wie
sollte ich auch wenn der Code nicht das macht was er soll, denn den
Fehler im Programm konnte ich beweisen, also werde ich doch nicht
fehlerhaften Code verstehen wollen.
Es war 6502 ASM Code vom CBM.
Bei Arduino muss man nicht unbedingt C++ machen, wobei die ganzen Libs
dann probleme bereiten würden. Ist ja auch nur ein GCC dahinter.
Aber auch wenn man kein C++ Freak ist sollte das anlegen einer Lib
Funktion nicht so schwer sein.
So ein bischen muss man auch beim zusammen Kopieren dann doch vom
programieren verstehen, oder sich dann aneignen.
Da helfen sogar die einfachen Beispielprogramme von Arduino selber.
Mein erstes Arduino Program war auch ein abgeändertes Beispiel, das war
einfacher als alles in C selber zuschreiben.
Marc schrieb:> Wobei sich der Stil, wie man Software schreibt im Laufe> der Entwicklungsgeschichte der Informatik stark ändert.
Zweifellos.
> Mittlerweile verzichtet man weitgehende auf Kommentare,> weil diese bei Änderungen oft nicht nachgezogen werden> und veraltet sind ( ein falscher Kommentar nützt nichts )
Änderungen sind gesellig; sie treten meist in Rudeln auf.
Es ist natürlich sinnlos, gerade dann die Kommentare zu
aktualisieren, wenn sich umfangreiche Umbauten am Code
ankündigen -- aber wenn sich die Refactoring-Phase ihrem
Ende zuneigt und ohnehin die meisten Änderungen der
Lesbarkeit und der Robustheit des Codes dienen, ist ein
guter Zeitpunkt, auch die Kommentare auf den neuesten
Stand zu bringen.
Hallo
mein Nick ist meine Schülern geschuldet. Die fanden das passenden. Sie
wollten das ich hier was zu dem mutigen Thema Qulität etwas poste.
Ich bin verantwortlich für den Polytechnischen Unterricht an einer
Schule in NRW.
Meine Vorgänger haben in den letzten Jahren konsequent auf selbst
entwickelte PIC Boards, mit einer recht rudiementäten selbst
geschriebenen Entwicklungsumgebung gesetzt. Es fehlte halt das Geld was
richtiges zu machen.
Die Schüler kamen auf die Idee auf Arduino um zu steigen. Da wir einen
Sponsor hatten wurde das genehmigt von der Schulleitung.
Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich
noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich
frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz
für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler.
In der Zwischenzeit haben wir den Schülern erlaubt BASCOM zu benutzen.
Jetzt funktionieren die Aufgabenstellungen und Prüfungen.
Ich kann nicht verstehen wo der Hype um Arduino herkommt. Das ist doch
alles unbrauchbarer Datenmüll.
Christo nimmt wenigsten Stoff um architecktonischen Mist zu verhüllen
das geht bei Arduino leider nicht. Selbst eine Taschentuch wäre zu groß
:)
Aufmerksame Grüße Karin
Oh weh,
von deiner Sorte hatten wir eine große Anzahl im Kollegium als es um die
Neuausrichtung ging, nach der ersten Fehlentscheidung.
Die hielten dann irgendwann ihren Mund als sie die Projekt Kontrolle
gesehen hatten. Danach hielten sie ihre Münder. Es war nichts mehr zu
hören und sie applaudierten zur neuen Lösung.
Nach jetzt 3 Jahren gibt es persönliche Rückmeldungen von
Kursteilnehmern. Nicht alle wurden Programmierer, aber 90% half der
Unterricht sich mit dem Thema Programmierung im Studium an zu freunden.
Ein Thema um das man bei einem modernen Studium nicht herum kommt.
Einzig Fanatiker die versuchten im Studium andere Wege durch zu setzen,
scheiterten an der Kompetenz der von uns ausgebildeten Studenten.
Es gibt da einen hässlichen Spruch, der passt aber auf verblendete Fans:
"Esst Sche... millionen Fliegen können nicht irren".
Aufmerksame Grüße Karin
Hallo,
noch eine Nachsatz zum Thema Kommentare.
Wichtiges Beurteilungskriterium für die Notenfindung war der
verständliche Kommentar. 40% der Note bestehen daraus. 60% der
funktionierende Kode. Es war uns didaktisch wichtig das die Schüler
ausdrücken konnten was sie da programmierten. Nebeneffekt bei der
Formulierung des Kommentares, es fiel programmtechnischer Bullshit
sofort auf. "Was habe ich denn da gemacht" war der Standard Spruch.
Das sollten sich einige Arduino Fans mal zu Herzen nehmen um zu
respektablen Ergebnissen zu kommen. Meinen Schülern helfen die
Kommentare ihre Irrwege zu finden. "Try and error" hat bei einer
Benotung nichts verloren.
Ich freue mich heute über einen vollen Kurs mit Wartezeit. Die Schüler
freuen sich über Pluspunkte bei der NC-Quote, der Kurs ist anerkannt bei
nicht Informatik Studiengängen als Einstiegsvoraussetzung. Ähnlich wie
der Mathematik Vorkurs bei MINT Studiengängen.
Aufmerksame Grüße Karin
Lehrerin Fräulein Karin schrieb:> Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich> noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich> frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz> für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler.
Wie hat sich denn dieser Fehler gezeigt?
Die Dokumentation auf der Arduino ist eigentlich sehr detailliert und es
gibt Beispiele für die korrekte Anwendung des Arduino spezifischen
Dialekts. Damit bewaffnet könnte ja der Lehrer den Schülern zum
zukünftigen eine strukturierte Ressourceneinführung geben. Auch der
Gebrauch und Wahl der Ressourcen muss gelernt sein. Mir kommt vor, da
ist der Lehrer möglicherweise auf dem Schlauch gesessen. Am Anfang ist
es die Rolle des Lehrers eine gewisse Linie einzuhalten um unnötige
Verzettelungen zu vermeiden.
>> In der Zwischenzeit haben wir den Schülern erlaubt BASCOM zu benutzen.> Jetzt funktionieren die Aufgabenstellungen und Prüfungen.
Nichts gegen BASCOM. Aber in BASCOM werden nicht viele Produkte der Welt
entwickelt. Die Industrie verwendet im embedded Bereich hauptsächlich C
und C++. Das wird sich noch lange nicht ändern weil die industriellen
Werkzeuge auf dieser Sprachenselektion beruhen. Da ist es bestimmt nicht
schlecht wenn diejenigen Schüler die sich später für die Informatik
entscheiden einen Vorgeschmack bekommen wie in der Industrie gearbeitet
wird.
Auch wenn es freie Tools gibt werden (Gerüchten zum Trotz) in vielen
seriösen Firmen nur die Werkzeuge namhafter Hersteller angewendet.
Firmen wie IAR, KEIL, u.v.a. die auch fürs teure Geld Unterstützung
geben. Auch wenn T.I und ST freie IDEs anbietet.
>> Ich kann nicht verstehen wo der Hype um Arduino herkommt. Das ist doch> alles unbrauchbarer Datenmüll.
Mir kommt das eher etwas voreilig vor und es wäre bestimmt hilfreich
nicht vorzeitig die Flinte ins Korn zu werfen. Vielleicht sollte die
Schule zuerst versuchen sich mit erfahrenen Ingenieuren der
einschlägigen Industrie in Verbindung setzen um praktische
Hintergrunderfahrung zu bekommen. Im Arduino Framework kann man durchaus
sauber programmieren und dokumentieren sofern man will. Ist ja immerhin
auf GCC C++/C gestützt.
Was mich betrifft, ist es wichtig, dass die Schüler eine gewisse Balance
zwischen Erfolg und zielstrebiges Lernen erleben müssen. Die Feinheiten
des Programmieren lernen sie später auf dem weiteren Weg.
Auch wenn GCC sehr detailliert dokumentiert ist, ist vieles für Anfänger
doch nicht wirklich verständlich.
Allen Verneinungen zum Trotz finden sich Arduinos in vielen
Entwicklungslaboratorien, Universitäten der Welt und sogar auch auf der
ISS. Auch NASA hat Verwendung dafür. Arduinos fliegen in der Form von
CUBESATs auch im Weltraum. Wer schnell eine HW Lösung braucht findet
sich mit Arduino oft gut bedient. Es ist nur eine Frage des Wissens und
Disziplin.
Um Arduino aufzuhalten ist es schon längst zu spät weil die Pferde
nämlich schon vor langer Zeit das Reißaus ergriffen haben und sich in
Allerwelt verstreut haben.
Nachhinkender schrieb:> Nichts gegen BASCOM. Aber in BASCOM werden nicht viele Produkte der Welt> entwickelt.
Hallo,
darum geht es doch garnicht.
Die Schüler sollen keine kommerziellen Kode schreiben. Sie sollen
verstehen wie ein Prozessor gefüttert werden muss damit er das macht was
die Aufgabenstellung verlangt. Das war bei Arduino und der gelassenen
Freiheit eine Ansammlung von Frust und nicht funktionierenden
Programmen.
Nichts passte und selbst der Versuch das ganze mit vorgebenen Versionen
und strengen Grundvoraussetzungen zu leiten misslang. Weil selbst
während des Kurses Änderungen und Bugfixes die vorgegebenen Lösungswege
nicht mehr passten.
BASCOM war nur der sicher funktionierende Bleistift der auf dem Papier
(Programm) das wiedergab was der Aufgabenstellung am nächsten kam.
Ich komme mit dem Arduino Chaos zurecht weil ich beurteilen kann was
taugt und um was man besser einen Bogen macht. Das können Anfänger nicht
die brauchen eine saubere Umgebung in der nicht irgendwelche Fans ihre
Bugs veröffentlichen, um auf dem Schulhof als der Größte dar zu stehen.
Arduino Programmierer kommen mir manchmal vor wie "Gangsterrapper":
"Große Klappe nix dahinter und irgendwann pleite und wenn sie Pech haben
im Knast."
Aufmerksame Grüße Karin
Das mit den Kommentaren ist auch ein Strohmann Argument.
Eine Blendgranate.
Denn:
Der Code zeigt WAS getan wird.
Der Kommentar sagt WARUM es (so) getan wird.
Das ist bei Bascom nichts anderes, als bei C oder C++.
Arduino Fanboy D. schrieb:> Das mit den Kommentaren ist auch ein Strohmann Argument.> Eine Blendgranate.
da es mal hiess es wird nach Programmzeilen bezahlt ist es wie beim
Skat:
wer schreibt der bleibt (hihi)
Kommentare sind zwar kein Code aber Zeile ist Zeile
Arduino Fanboy D. schrieb:> Der Code zeigt WAS getan wird.> Der Kommentar sagt WARUM es (so) getan wird.
Hallo,
und eine saubere Programmierumgebung erlaubt es dem Programmierer
ordentlich und verständlich zu kommentieren. Weil es einfach und
nachvollziehbar ist was der einzelne Befehl bewirkt. Es geht um das
Erfolgserlebniss. Das stellt sich schneller ein, bei sauberen
Programmierumgebungen, als bei irgendwelchen Hypes. Schüler mit C++ und
ähnlichen krptischen Sprachen zu ärgern, überlassen wir den
Universitäten.
Das ist bei Arduino garnicht möglich da keiner weis was in den
undokummentierten Libarys abgeht, ausser dem Verfasser der sie mit "Try
and error" hin gemurkst hat.
Für Personen die bei Null anfangen ist ein Umgebung wie Arduino zu
instabil und viel zu missverständlich.
Ich möchte nicht in ein Flugzeug steigen in dem ein Atmega (da werden
1000ten verbaut) werkelt der mit der Arduino Umgebung programmiert
wurde. Ich bin mir auch sicher dass das kein Projektleiter, der noch
alle Tassen im Schrank hat, machen würde.
Es sei denn er sitzt in Bangelor und wird von Boeing bezahlt.
Aufmerksame Grüße Karin
Hi
>Aber sie stirbt.
Warum kämpfst du dann so fanatisch? Du könntest dich doch eigentlich
ruhig in deinen Ohrensessel setzen und ruhig abwarten. Oder bist du dir
nicht so sicher?
MfG Spess
Johannes S. schrieb:> Selten so einen Unfug gelesen hier. Das kommt mit Sicherheit nicht> von> einer Lehrerin, sondern von dem Bascom Freak hier.
Dummes Zeug. Hat nichts mit Freak zu tun.
Es war einfach der Bedarf nach einer vertändlichen und stabilen
Programmierumgebung für Anfänger.
Das hätte jede andere Umgebung werden können die bis 4k kostenlos ist
und eingermassen frei von gravierenden Fehlern ist.
Arduino hatte seine Chance. Nur ist das etwas für Leute die die Spreu
vom Weizen trennen können. Ohne jahrelange Erfahrung ist das Arduino und
Github Geraffel ein Dschungel den man Schülern nicht zumuten darf wenn
es um Noten geht!
Man will ja fair beleiben, es geht ja immerhin um die Zukunft junger
Leute.
Arduino wird überleben. Schon Martin Luther kackte tägliche :).
Aufmerksame Grüße Karin
Karin, wenn Du wüßtest was du für einen Mist schreibst,dann wüßtest du
auch das alles großer Schwachsinn und alles nur erstunken uns erlogen
ist. Besser konnte man sein Unwissen nicht formulieren.
Lehrerin Fräulein Karin schrieb:
> Es gibt da einen hässlichen Spruch, der passt aber auf verblendete Fans:> "Esst Sche... millionen Fliegen können nicht irren".
Das beisst sich aber dann mit der Verwendung von BASCOM, welches nur
unter Windows läuft ;-)
Jörg
von Lehrerin Fräulein Karin (Gast)
>Die Schüler kamen auf die Idee auf Arduino um zu steigen. Da wir einen>Sponsor hatten wurde das genehmigt von der Schulleitung.>Das war eine einzige Katastrophe. Soviel Frust und Enttäuschung habe ich>noch bei keinem Projekt erlebt. Wir hatten den Schülern erlaubt sich>frei in Github und auf der Arduino Webseite zu bewegen um die Kompetenz>für Brauchbar und Unbrauchbar zu stärken. Das war ein riesen Fehler.
Bei Deiner Kritik würde ich jetzt doch mal gerne genauer wissen, was da
genau passiert ist.
Wie waren denn die Lernziele für die Schüler genau definiert?
Wie wurde der Kurs genau organisiert?
Welche Projekte in wie vielen Stunden sollten die Schüler umsetzen?
Das alles wären jetzt wichtige Fragen, um den Kursablauf etwas genauer
beurteilen zu können.
Christoph M. schrieb:> Bei Deiner Kritik würde ich jetzt doch mal gerne genauer wissen, was da> genau passiert ist.
Falls ich raten darf:
Die Schüler hatten Bibliotheken miteinander kombiniert, die nicht
zusammen passen. Und sie hatten viel zu komplexe Bauteile verwendet.
Teenager lassen sich durch schöne Youtube Videos leicht dazu verleiten.
Ich erlebe das zu hause immer wieder bezüglich Rezepte zum Kochen,
Backen und diverse Bau-Projekte (ohne Elektronik). Was einfach aussieht
muss auch einfach sein - vor allem wenn es der Youtube sagt. Oder nicht?
Das ist der Punkt, wo die Lehrer behutsam gegensteuern. Vorsichtig die
Grenzen aufzeigen oder Grenzen setzen, damit die Kids sich nicht massiv
übernehmen. Denn (im Gegensatz zum Hobby) ist in der Schule nicht genug
Zeit, ein Projekt ggf. 10x zu wiederholen, bis man sein Ziel erreicht
hat.
Stefan ⛄ F. schrieb:> Die Schüler hattenChristoph M. schrieb:> was da> genau passiert ist.
Ihr beiden glaubt doch nicht die Märchen!
Oder?
Prüft mal die Aussagen des "Karin" Dingens auf Fakten.
Dann werde ihr merken, dass diese wirklich dünn gesät sind.
z.B.
Arduino existiert
Schulen existieren
Und Schüler auch
Das wars auch schon so ziemlich.
Zählt mal die Behauptungen durch...
Viele es sind.
Welche davon sind nachvollziehbar/belegbar?
Eine, zwei, oder eher keine?
Wie viele der Behauptungen sind leicht widerlegbar?
Ich sehe da einen (bestenfalls) verirrten Menschen, welcher keine Ahnung
von Arduino hat, C++ ablehnt, und Stimmung macht, in dem Gefühle und
Emotionen vorgespielt werden.
Ein Druck auf die Spiegelneuronen.
Eine Theaterstück, nicht mal ein gutes.
Arduino Fanboy D. schrieb:> Welche davon sind nachvollziehbar/belegbar?> Eine, zwei, oder eher keine?
keine! (Troll bleibt Troll)
und wäre es kein Troll dann wäre ein Arduino nano auf dem Steckbrett mit
USB Kabel billig beschaffbar für alle
Fehler beim Lernen sind ja kein Problem und nur durch Fehler und
Wiederholung lernt man so war das schon immer.
Joachim B. schrieb:> Fehler beim Lernen sind ja kein Problem und nur durch Fehler und> Wiederholung lernt man so war das schon immer.
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich
groß genug.
Quelle: Jean-Paul Sartre
Arduino Fanboy D. schrieb:> Prüft mal die Aussagen des "Karin" Dingens auf Fakten.> Dann werde ihr merken, dass diese wirklich dünn gesät sind
Du hast es ja voll auf dem Schirm...
Wenn man sich den Kauderwelsch anschaut den du hier ablieferst dann
bekommt man doch das Kotzen!
Beitrag "Re: Stoopen Programm"
Hässlich!
Unkommentiert!
Mit delay()!
Und dann noch die angehen die auf den delay() Fehler hinweisen...
Arrogant bis zum dorthinaus.
Arduino Fanboy D. schrieb:> Phuu...> Meinen Dank für diese "objektive" Kritik.> Mehr weiß ich darauf nicht zu sagen.>> Außer vielleicht, du bist ja ein ganz besonderer Vogel.
Nimmst Du anonyme Forenschreiber wirklich ernst? Denen fehlt einfach nur
der Kreis um ihren Schwach..nn auszuspeichern. Ersatzweise machen die
das in solchen Foren.
Wenn es hilft hat es ja Sinn :-)
Hallo,
früher (tm) bin ich jeden Tag zum Zeitungsladen gelaufen, um die "BZ am
Abend" zu holen. Da ware in Fortsetzungsroman drin, jeden Tag ein
kleines Stück. Wa spannend, gut, manchmal pasierte in einer Fortsezumg
auch nicht wirklich was...
Ihr versaut mir hier jetzt gerade hier meinen Fortzsezungsroman, die
letzten Folgen waren nur langweilig!
Gruß aus Berlin
Michael