Python-bashing ...

  • meine Erfahrungen mit dem PI, raspbmc im frühem Stadium liess mich per ssh nicht mehr rein -> Zertifikat abgelaufen

    korrupte Dateisysteme hatte ich auch öfter (bevor RO kam)

    Das ein PI heute noch tillt bestätige ich, OSMC hatte sich in einer Dauerschleife verschluckt, ewiges repeat, Raspbian verschluckt sich wenn der swap durch Chromium an die Bande fährt, auch da hilft nur Kill Chromium im Extremfall nur Stecker ziehen oder reboot.

    Andere User (ich auch mal) hatten Stress mit der SD Karte, das zumindest ist durch Tausch Transcend zu Samsung EVO minimiert worden.

    Beim Update von Kodi 17.1 zu Kodi 17.2 blieb displaymanx auf der Strecke, mit 17.3 gehts wieder.

    Ähm... WAS GENAU hat das jetzt mit PYTHON zu tun (Um diese Programmiersprache geht es doch, oder?)

    Oder ist raspbmc bzw. displaymanx in Python geschrieben?


    Allen wie gearteten Regelungen würde ich niemals einem PI anvertrauen, ein im Flash programmierter Regler überlebt Stromausfälle, Neustarts uvam.

    Auch kann kein SD Slot aufgeben.

    Auch wenn ich dir in diesem Punkt mehr oder weniger (eher mehr) zustimme, ist das nicht Python-relevant.

    Das gleiche Problem hast du auch, wenn das Steuerprogramm in C/C++, Lazarus, Java oder eine der 100 anderen Randsprachen geschrieben wurde.

    GANZ andere Baustelle...

    ---


    Ich habe den Thread seit dem frühen Nachmittag sporadisch mitgelesen und mich bewusst nicht gemeldet (Zum einen hab ich zu tun, zum anderen kann das hier nur schief gehen).


    Aber nur mal so rein gesprengselt:

    Sich über die syntaktischen Rahmenzwänge (Einrückungen, Klammern, Doppelpunkte usw.) einer Sprache "aufzuregen", ist recht sinnfrei. Meist prägt die erste Sprache, welche man lernt. Wenn man Glück hat, war es eine, die einen positiv erzogen" hat: Zu Sorgfalt, Präzision usw...

    Wenn man Pech hatte, war es BASIC... ;-)


    Und dann?

    Wer programmieren kann, für den ist die Sprache "nur" ein Werkzeug.

    Manche Werkzeuge fasst man gern an, manche hinterlassen bei der Berührung ein unangenehmes Gefühl... (Bei mir ist das "PERL" - trotzdem erkenne ich an, dass man damit sehr schnell mal was "hinrotzen" kann, so war auch die Intention wohl ehemals..)


    Und im Vergleich mit JAVA/C/C++ ist Python erfrischend unkompliziert, bei all den Kanten und Ecken - die hat jede andere P-Sprache ebenfalls.

    Die Realisierung kleiner bis mittlerer Applikationen geht recht zügig... mit etwas Sorgfalt läuft das dann auch recht zuverlässig (So man sorgfältig testet, vorher(!)).


    Alles für seinen Zweck: Für z.B. eine Heizungssteuerung sollte man schon einen guten Grund haben (Außer, man kann nix anderes), das in einer InterpreterCompilersprache machen zu wollen (Einer ist hier genannt worden: Updates...).


    Wobei: Wer auf ein Produktivsystem ohne vorherige Prüfung Updates einspielt, dem ist nicht mehr zu helfen <Punkt>.

  • Auch wenn ich dir in diesem Punkt mehr oder weniger (eher mehr) zustimme

    danke für das mehr!


    Wobei: Wer auf ein Produktivsystem ohne vorherige Prüfung Updates einspielt, dem ist nicht mehr zu helfen <Punkt>.

    aus meiner Industriezeit, wir hatten Streamer quick44 wenn ich mich recht erinnere, die waren billig (ja Cheffe war sparsam) mehr war nicht drin, aber wir wollten Backups.


    Als es dann echt mal nötig wurde waren die Bänder nicht mal mehr lesbar (max. 1-2 Jahre und auch geprüft bevor man sie in den Schrank legte)

    Denke immer dran Murphy lässt sich nicht überlisten auch nicht mit Prüfungen.

    Du kannst 10x prüfen immer gehts gut, ausser wenn du es dringend brauchst!

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Da ist man den Tag über weg und ihr seid schon längst woanders, bleibt mal bei der Sache. :shy:

    Und jedem, der rumheult, dass das statische Binary das Update überlebt und das interpretierte Skript nicht, dem lege ich nahe, sich mal mit den Virtualenvs zu beschäftigen (allen anderen auch). Mit einem Update bekommt man die schon mal nicht kaputt.

    Ansonsten sehe ich hier teilweise Gejammer auf hohem Niveau von Leuten, die Python nicht ansatzweise verstanden haben oder gar angeschaut. Ist denn mittlerweile die Definition einer Funktion klar, und dass eine solche entgegen einiger Aussagen hier IMMER GENAU ein Objekt zurück gibt, nie nichts und nie "mehrere Werte"? :conf:

    :wink:

  • sich mal mit den Virtualenvs zu beschäftigen

    Schön und gut, aber die Leute, die hier mit Python aufschlagen und mal schnell was hincoden wollen sind genau die, die das dann nicht verwenden. Denn wenn sie sich tiefer damit beschäftigen wöllten, könnten sie ja auch gleich eine richtige Programmiersprache nehmen.

  • teilweise Gejammer auf hohem Niveau von Leuten, die Python nicht ansatzweise verstanden haben

    mir reicht das das Teil verweigert wenn die Einrückung nicht aufs Zeichen genau passt!.

    DAS habe ich verstanden!


    Bei C muss nur die Syntax stimmen, die Einrückungen kann ich flexibel halten und muss mir nicht zwingend einen 4K Monitor kaufen :lol:

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Verstehe dein Gejammer nicht: Wenn du in C oder weiß der Geier genau EINE Klammer nicht setzt

    ich schrieb Syntax, da meine ich Klammer richtig, Einrückungen als Syntax zu bezeichnen mag stimmen scheint mir aber nicht zutreffend oder nicht für mich.


    Billige Ausflüchte? da hast du entweder zu wenig von der Diskusion mitbekommen oder du willst nur stänkern.

    Warum ICH Phyton nicht lernen will erklärte ich, akzeptiere es oder nicht, aber lasse mein Hosenbein trocken!

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • jar das und warum du bei C bleiben magst ist den meisten denke ich klar und völlig nachvollziehbar. Was aber nervt ist dieses unsachliche Spaces vs Klammern, beides ist jeweils in Python bzw. C-like Teil der Syntax, ganz klar. Nur die Klammern über die Spaces zu stellen und dann noch zu behaupten, Spaces und tabs nicht zu vermischen und die richtige Tiefe zu treffen ist viel schwerer als an der passenden Stelle eine geschweifte Klammer zu setzen ist bekloppt, ein Anfänger kann im Zweifelsfall bei beidem entweder den Fehler finden oder ist völlig verloren.

    :wink:

  • Ich finde die Formulierung von Zentris hier sehr schön:

    Wer programmieren kann, für den ist die Sprache "nur" ein Werkzeug.


    Meiner Meinung nach gilt das auch für alle anderen Leute, die einfach eine Möglichkeit suchen ihren Sensor, ein Display oder sonstwas zur Funktion zu bewegen. (hatte dbv schon mal so ähnlich auch geschrieben) Da muss man auch kein Dogma daraus machen. Einer kommt mit C besser zurecht, der Andere mit Python oder einer anderen Sprache. Je nach roots bzw. Geschmack des Programmierers. Man muss sich IMHO nicht zwangsläufig jahrelang mit einer Sprache beschäftigen, wenn man eine Lösung für sein "Problem" gefunden hat, denn es bleibt ein Werkzeug. Es sei denn das ist ein Hobby oder man hat beruflich damit zu tun. :2cents:


    Schon wieder 2 Ct. Ich werde hier noch arm.

  • Nur die Klammern über die Spaces zu stellen und dann noch zu behaupten, Spaces und tabs nicht zu vermischen und die richtige Tiefe zu treffen ist viel schwerer als an der passenden Stelle eine geschweifte Klammer zu setzen ist bekloppt

    Das ist doch gar nicht der Punkt. Siehe mein obiges Beispiel aus Minecraft: Eine Einrückung weniger und das Programm macht was völlig anderes, ohne irgendeine Fehlermeldung, völlig konform.


    Und genau das ist unter C, Pascal, selbst Basic so nicht möglich, weil der Compiler sofort eine fehlende Klammer, fehlendes end oder next anmeckern würde. Da muss man sich schon richtig Mühe geben Fehler zu erzeugen, die bei Python mal so nebenbei passieren.

  • Ein vernünftiger Editor bzw. eine hinreichend "intelligente" IDE (z.B. PyCharm) zeigen sowohl die Einrückungen an, als auch Einrückungsfehler mit weniger als [eingestellte Einrücktiefe].


    Und selbst mit einer Einrücktiefe von 4 Leerzeichen braucht es keinen "4k" Monitor...

    Wer so tief schachtelt, hat sowieso grundlegend etwas nicht verstanden - hab ich schon gesehen (ca. 2500 Zeilen in einer Funktion, Schachtelungstiefe max. 20) - unwartbar...


    Aber wenn das mit der Einrückung euer größtes Problem ist, nun ja...

  • Wer so tief schachtelt, hat sowieso grundlegend etwas nicht verstanden

    da bin ich voll bei dir!


    Ob ich das nun bin (ich sage ja ich bin kein gelernter Progger) oder ob ich Code übernehme, tiefe Schachtelung nervt, aber manchmal ist es eben so und mir ist dann Funktion vor Schönheit lieber.


    Ich habe mich auch schon öfter mal in tiefer Verschachtelung verzettelt, aber es reicht nicht immer die Zeit um das auszuräumen wenns erst mal läuft.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Also entschuldigt, aber hier merkt man deutlich, wer trotz Austausch sich weigert, sich mit Python anzufreunden und das höchst wahrscheinlich auch nie tun wird - er verweigert sich.


    Lasst die Leute doch aufm Pi überwiegend Python verwenden, was stört euch daran?


    Ich zitiere an dieser Stelle mal zutreffenderweise dbv :



    Wenn der Raspberry Pi - Raspberry II heissen würde, und das II für Icon Interpreter stehen würde, dann hättest du hier ein buntes zusammengewürfteltes Icon Copy+Paste Massaker - Garantiert. Leider steht das Pi für Python Interpreter und so leben wir mit den Auswüchsen.

  • Das ist doch gar nicht der Punkt. Siehe mein obiges Beispiel aus Minecraft: Eine Einrückung weniger und das Programm macht was völlig anderes, ohne irgendeine Fehlermeldung, völlig konform.

    Und wenn eine Codezeile außerhalb der {} gesetzt wird, dann läuft die Zeile auch nicht in der Schleife bzw. Abfrage


    Die Zeit, die hier reingesteckt worden ist in den Thread. Hättet ihr mit dieser Zeit sinnvolle Tutorials für gängige Sensoren etc. erstellt, vll würden dann nicht die ganzen Anfänger bei Python sondern bei "euren" Sprachen landen.

    Fakt ist (traue ich mich fast sagen), aktuell findet man die größte OS-Community und die meisten Tutorials in Python, was wiederum den Effekt hat, dass die Anfänger (wie ich auch) bei Python landen. Das dann natürlich viele Fehler Kleinigkeiten sind ist klar, dafür kann aber Python nichts dafür. Bei der Fehlerausgabe ist Python sogar sehr angenehm, da Fehler und Fehlerstelle sehr genau bezeichnet werden. Wir Anfänger können nur leider oft nichts damit anfangen (; Aber wiederrum ist hier nicht Python sondern der Anwender der Schuldige.


    Und noch eine kleine Anmerkung zu den Einrückungen, 4 Leerzeichen oder einmal Tab, bei einem vernüftigen Editor kommt am Ende das selbe dabei heraus. Also keine Angst, man muss nicht 12x leer tippen um in die 3. Ebene zu kommen und wiederrum macht ein vernünftige Editor den Sprung in die nächste ebene von alleine, bsp gehts nacht der Zeile for i in range(x): nach einem Enter automatisch in die nächste Ebene. Manche schimpfen gegen "Einrückungszwang", beugen sich aber dem "Klammerzwang" - Wo ist der Unterschied?

  • Welchen Editor kann du für Python denn empfehlen ?

    PyCharm (https://www.jetbrains.com/pycharm/download/#section=linux)


    Läuft unter Windows und Linux, basiert auf IntelliJ IDEA (Also letztlich ist das eine Java-basierte IDE, wie Eclipse auch, aber schneller...)


    Mächtig, Debugging lokal und Remote möglich (Letzteres hab ich allerdings noch nicht hinbekommen, aber auch nicht sehr intensiv versucht).

    Erweiterbar über Plugins...


    Kann mit mehreren Python Versionen umgehen, auch mit virtualEnv...


    Ich programmiere (privat) seit Jahren damit, auch größere Projekte mit > 5000 LoC:
    Vieles, was hier diskutiert wurde und als "Makel" von Python beschworen wird, wird mit dieser IDE gar nicht wirklich sichtbar.