Forum: Mikrocontroller und Digitale Elektronik Wer macht bei Arduino eigentlich die Qualitätssicherung?


von Christian J. (Gast)


Lesenswert?

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

von A. N. (bastelmaniac)


Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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.
1
void LoRaClass::setSpreadingFactor(int sf)
2
{
3
  if (sf < 6) {
4
    sf = 6;
5
  } else if (sf > 12) {
6
    sf = 12;
7
  }
8
9
  if (sf == 6) {
10
    writeRegister(REG_DETECTION_OPTIMIZE, 0xc5);
11
    writeRegister(REG_DETECTION_THRESHOLD, 0x0c);
12
  } else {
13
    writeRegister(REG_DETECTION_OPTIMIZE, 0xc3);
14
    writeRegister(REG_DETECTION_THRESHOLD, 0x0a);
15
  }
16
17
  writeRegister(REG_MODEM_CONFIG_2, (readRegister(REG_MODEM_CONFIG_2) & 0x0f) | ((sf << 4) & 0xf0));
18
  setLdoFlag();
19
}

von was (Gast)


Lesenswert?

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...

von Johannes S. (Gast)


Lesenswert?

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.

von Jens U. (Gast)


Lesenswert?

A. N. schrieb:
> Und bei Linux gibt es auch nicht DIE Maintainer. Manche Distris haben
> sorgfältige Maintainer, manche nicht.

Welche z.B:?

von my2ct (Gast)


Angehängte Dateien:

Lesenswert?

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.

von merciMerci (Gast)


Lesenswert?

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!

von Hennes (Gast)


Lesenswert?

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

von Kolter (Gast)


Lesenswert?

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?

von Wolfgang (Gast)


Lesenswert?

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.

von Hennes (Gast)


Lesenswert?

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

von Hugo H. (hugohurtig1)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

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/

Beitrag #6309902 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

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.

von sid (Gast)


Lesenswert?

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

von Hugo H. (hugohurtig1)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

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 ?

von Veit D. (devil-elec)


Lesenswert?

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.

von Hugo H. (hugohurtig1)


Lesenswert?

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.

Beitrag #6310433 wurde von einem Moderator gelöscht.
Beitrag #6310453 wurde von einem Moderator gelöscht.
Beitrag #6310538 wurde von einem Moderator gelöscht.
Beitrag #6310623 wurde von einem Moderator gelöscht.
von MaWin (Gast)


Lesenswert?

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.

Beitrag #6310653 wurde von einem Moderator gelöscht.
von S. R. (svenska)


Lesenswert?

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ß.

von Doku (Gast)


Lesenswert?

S. R. schrieb:
> Dann setz dich hin und dokumentier's.

Die Kritik ist, dass keine Doku existiert.
Danke für die Bestätigung.

von Einer K. (Gast)


Lesenswert?

> 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.

von Hennes (Gast)


Lesenswert?

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

von PittyJ (Gast)


Lesenswert?

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.

von Zeno (Gast)


Lesenswert?

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.

von Hennes (Gast)


Lesenswert?

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

von Christian J. (Gast)


Lesenswert?

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...

von Bastler (Gast)


Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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/

von Johannes S. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

Johannes S. schrieb:
> BTW: wie kommt ein Third Party eigentlich in die Arduino Liste für
> Boards/Libs?
Hier eins von vielen vielen Beispielen:
https://github.com/arduino/Arduino/issues/10394

von S. R. (svenska)


Lesenswert?

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...

von Zeno (Gast)


Lesenswert?

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.

von Sebastian S. (amateur)


Lesenswert?

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.

von PittyJ (Gast)


Lesenswert?

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.

von Heiko L. (zer0)


Lesenswert?


von Name: (Gast)


Lesenswert?

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?

von Michael U. (amiga)


Lesenswert?

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

von Joachim B. (jar)


Lesenswert?

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
6
7
#endif

von Gerhard O. (gerhard_)


Lesenswert?

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...

: Bearbeitet durch User
von HBose (Gast)


Lesenswert?

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

von Johannes S. (Gast)


Lesenswert?

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.

von HBose (Gast)


Lesenswert?

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

von Veit D. (devil-elec)


Lesenswert?

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.

von Veit D. (devil-elec)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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?

von Johannes S. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

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.

von Veit D. (devil-elec)


Lesenswert?

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.

von Zeno (Gast)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Gerhard O. (gerhard_)


Lesenswert?

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;-)

von spess53 (Gast)


Lesenswert?

Hi
Was ist eine "C&P-Fraktion"?

Copy&Paste

MfG Spess

von Gerhard O. (gerhard_)


Lesenswert?

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...

von spess53 (Gast)


Lesenswert?

HI

Ich werde doch langsam alt...

Geht den Menschen wie den Leuten.

MfG Spess

von Gerhard O. (gerhard_)


Lesenswert?

spess53 schrieb:
> HI
>
> Ich werde doch langsam alt...
>
> Geht den Menschen wie den Leuten.
>
> MfG Spess

Hmm. Da will ich lieber ein Mensch sein;-)

: Bearbeitet durch User
von Marc (Gast)


Lesenswert?

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.

von Arno (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Veit D. (devil-elec)


Lesenswert?

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?

von Veit D. (devil-elec)


Lesenswert?

Hallo Arduino Fanboy,

1+ für deinen Beitrag.

von Marc (Gast)


Lesenswert?

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/

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von HBose (Gast)


Lesenswert?

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. ;)

von MaWin O. (mawin_original)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

: Bearbeitet durch User
von Adam P. (adamap)


Lesenswert?

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)

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

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

: Bearbeitet durch User
von Arno (Gast)


Lesenswert?

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

von Michael U. (amiga)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

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...

von Einer K. (Gast)


Lesenswert?

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?

von Christian J. (Gast)


Lesenswert?

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.

von Veit D. (devil-elec)


Lesenswert?

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.

https://www.arduino.cc/reference/en/language/variables/constants/constants/
1
false:
2
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.  :-)

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

C evaluiert alles ungleich 0 als true. Selber liefert es als true aber 
immer 1 zurück.
Z.B. der Ausdruck !!4 hat den Wert 1.

von Klaus (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

Und ja es gehört auch eine Doku dazu was an Parameter eine Funktion 
erwartet und zurück gibt.

Und das ist egal in welcher Sprache!

von Arno (Gast)


Lesenswert?

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

von Einer K. (Gast)


Lesenswert?

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!

von Joachim B. (jar)


Lesenswert?

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.

von Nachhinkender (Gast)


Lesenswert?

"This document discusses recommended practices and style for programmers 
using the C language ..."

https://ntrs.nasa.gov/search.jsp?R=19950022400

von Marc (Gast)


Lesenswert?

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.

von Arno (Gast)


Lesenswert?

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

von Einer K. (Gast)


Lesenswert?

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?

von Nachhinkender (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Was steckt da hinter?

Territorialer Machtkampf? ;-)

Vielleicht sind nur die Grenzen zu fließend...

von Einer K. (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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!

von Stefan F. (Gast)


Lesenswert?

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.

Beitrag #6312749 wurde von einem Moderator gelöscht.
von Nachhinkender (Gast)


Lesenswert?

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...

von Einer K. (Gast)


Lesenswert?

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...

von Egon D. (Gast)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Anita H. (anita1995)


Lesenswert?

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 ;-)

von Einer K. (Gast)


Lesenswert?

spess53 schrieb:
> Die Arduino-Fanatiker

Wo sind dir die denn begegnet?
Gibts die?

von spess53 (Gast)


Lesenswert?

Hi

>Gibts die?

Fühlst du dich angesprochen?

MfG Spess

von Einer K. (Gast)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Egon D. (Gast)


Lesenswert?

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)

von Joachim B. (jar)


Lesenswert?

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!

von Stefan F. (Gast)


Lesenswert?

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.

von Marc (Gast)


Lesenswert?

>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.

von Hennes (Gast)


Lesenswert?

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

von S. R. (svenska)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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)

von Hugo H. (hugohurtig1)


Lesenswert?

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).

von Einer K. (Gast)


Lesenswert?

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.....

von Hugo H. (hugohurtig1)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ist vielleicht auch hoffnungslos.....

Ja.

von Egon D. (Gast)


Lesenswert?

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.

von S. R. (svenska)


Lesenswert?

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.

von Egon D. (Gast)


Lesenswert?

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 Marc (Gast)


Lesenswert?

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)

von Axel L. (axel_5)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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).

von Axel S. (a-za-z0-9)


Lesenswert?

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
1
i++;

braucht selbstverständlich keinen Kommentar a'la
1
i++; /* i um eins erhöhen */

Aber wenn es z.B. um eine Schleife geht
1
for (i=langer Ausdruck; i<noch laengerer Ausdruck; i++) ...

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.

von Axel L. (axel_5)


Lesenswert?

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.

von Hennes (Gast)


Lesenswert?

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

von Johannes S. (Gast)


Lesenswert?

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...

von Joachim B. (jar)


Lesenswert?

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.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

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.

von Egon D. (Gast)


Lesenswert?

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.

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

Ja, die Tippfehler bitte ich zu entschuldigen. Sche..... Technik. Ipads 
sind auch nicht immer das Wahre!

Beitrag #6315470 wurde von einem Moderator gelöscht.
von Einer K. (Gast)


Lesenswert?

Kein Wort glaube ich dir!

Eine Arduinobasher Sockenpuppe, du bist.

Beitrag #6315497 wurde von einem Moderator gelöscht.
von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Nachhinkender (Gast)


Lesenswert?

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.

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Einer K. (Gast)


Lesenswert?

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++.

von Joachim B. (jar)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

>Um Arduino aufzuhalten ist es schon längst zu spät...

Die Hoffnung stirb nie.

MfG Spess

von Einer K. (Gast)


Lesenswert?

spess53 schrieb:
> Die Hoffnung stirb nie.

Die Hoffnung stirbt zuletzt, heißt es.

Aber sie stirbt.

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Johannes S. (Gast)


Lesenswert?

Selten so einen Unfug gelesen hier. Das kommt mit Sicherheit nicht von 
einer Lehrerin, sondern von dem Bascom Freak hier.

von spess53 (Gast)


Lesenswert?

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

von Lehrerin Fräulein Karin (Gast)


Lesenswert?

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

von Johannes S. (Gast)


Lesenswert?

Und die Erde ist eine Scheibe.

Bruder Johannes

von Faktenchecker (Gast)


Lesenswert?

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.

von Joerg W. (joergwolfram)


Lesenswert?

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 Christoph M. (mchris)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die Schüler hatten

Christoph 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.

von Joachim B. (jar)


Lesenswert?

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.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

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

von merciMerci (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Eine Theaterstück,

UND auch genügend bedürftige Zuschauer sich hier versammelt!

von Feindbild (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Hugo H. (hugohurtig1)


Lesenswert?

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 :-)

von Veit D. (devil-elec)


Lesenswert?

Hugo H. schrieb:
> Wenn es hilft hat es ja Sinn :-)

Wollte gerade etwas schreiben, lass es aber, weil der Kommentar ist 
unübertrefflich.   :-)

von dudinator (Gast)


Lesenswert?

Veit D. schrieb:
> Wollte gerade etwas schreiben, lass es aber […]

Ähm … du hast etwas geschrieben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

HBose schrieb:
> Salu Hans
Lehrerin Fräulein Karin schrieb:
> Aufmerksame Grüße Karin
Hans und Karin, könntet ihr euch bitte an die Forenregeln halten?
Siehe die Nutzungsbedingungen --> nur 1 Name pro Thread!

von Michael U. (amiga)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.