Python und was noch?

  • Timm Thaler sorry, aber so kann man dich nicht ernst nehmen. Vermutlich hast du Python einfach nie richtig verstanden, es ist eine elegante und mächtige Sprache mit tollen Features und Community. Den Glaubenskrieg der Programmierer kenne ich als solcher zur genüge, ich will dich auch keines besseren belehren. Jeder macht nun einmal das, was er am besten kann.

    So wie du schreibst denke ich, dass dir die verschiedenen Interpreter und auch Compiler gar nicht bekannt sind. Ja, CPython hat den GIL. Aber so wie du über Python herziehst hast du sicher auch miese Erfahrungen mit PyPy, stackless Python, Nuitka, Cython und co gemacht.


    Und CGI ist uralt und einfach nur kacke. Hat dir aber glaube ich schon jemand erläutert.

  • Vermutlich hast du Python einfach nie richtig verstanden, es ist eine elegante und mächtige Sprache mit tollen Features und Community.

    Das sagt Dir...

    ... jeder C++-Programmierer über C++

    ... jeder JS-Programmierer über JS

    ... jeder PureBasic-Programmierer über PureBasic

    ... jeder Delphi-Programmierer über Delphi

    ... jeder FPC-Programmierer über FPC

    und für Icon trifft das sicher auch zu. ;-)


    Das ist nur Marketinggequatsche. Kannst Du auch ernsthaft auf die Kritikpunkte eingehen?


    Python ist als Interpretersprache langsam. Es ist sogar anscheinend eine der langsamsten Interpretersprachen. Es muss immer die Interpreterumgebung dazugeladen werden.*


    Python ist durch die Syntax fehleranfällig. Zum einen durch die Verschachtelung mit Leerzeichen, schau Dich nur mal im Forum um: "Mein Code geht nicht, findet den Fehler." und dann wars mal wieder ein Tab statt Leerzeichen. Zum anderen durch die Variablenfreizügigkeit: "Wieso kann ich a jetzt nicht mit b multiplizieren." "Ja, weil das eine ein String und das andere ein Integer ist." Wenn man Variablen ordentlich deklarieren müsste, würde das jeder verstehen.


    Mal von so kleinen witzigen Effekten abgesehen wie:


    for k in [1, 2, 3, 4, 5]:

    => zählt von 1 bis 5


    for k in range(1, 5):

    => zählt von 1 bis 4


    Aber solche Eigenheiten hat jede Sprache irgendwo.

    *) Dass man Python-Code in C-Code umwandeln und diesen dann kompilieren kann ist unerheblich, denn das dürfte auf die wenigsten "ich mach was mit Python" Projekte zutreffen.

  • Kannst Du auch ernsthaft auf die Kritikpunkte eingehen?

    Selbstverständlich, ich verwende die Sprache ja nicht seit gestern. Ich werde mich hier aber keiner unsachlichen Diskussion stellen, sorry, immer noch im Weihnachtsfeeling drin :)

    Python ist als Interpretersprache langsam. Es ist sogar anscheinend eine der langsamsten Interpretersprachen. Es muss immer die Interpreterumgebung dazugeladen werden.*

    Ich hatte noch nie einen Fall, in dem Python zu langsam gewesen wäre, selbst auf einem ESP8266 mit MicroPython nicht. Ich weiß ja nicht, was du so programmierst, aber zu lahm ist Python, wenn man effizienten Code schreibt nicht. Und viele Bibliotheken nehmen für Laufzeitkritische Teile eh C-Extensions (bei CPython jedenfalls), man nehme mal numpy und den ganzen wissenschaftlichen Bibliotheksstack.

    Python ist durch die Syntax fehleranfällig. Zum einen durch die Verschachtelung mit Leerzeichen, schau Dich nur mal im Forum um: "Mein Code geht nicht, findet den Fehler." und dann wars mal wieder ein Tab statt Leerzeichen.

    Jeder gescheite Editor weist dich entweder darauf hin oder wandelt einen Tab in die empfohlenen vier Leerzeichen um. Das ist mit vergessenen geschlossenen Klammern in C/C++/C#/Java und ähnlichen nicht anders.

    Zum anderen durch die Variablenfreizügigkeit: "Wieso kann ich a jetzt nicht mit b multiplizieren." "Ja, weil das eine ein String und das andere ein Integer ist." Wenn man Variablen ordentlich deklarieren müsste, würde das jeder verstehen.

    Das heißt du verschmähst alle Sprachen, in denen es keine statische Typisierung gibt? Sind ja nicht gerade wenige :conf:

    mypy kennst du? Wenn nein, einfach mal suchen statt jammern.

    for k in [1, 2, 3, 4, 5]:

    => zählt von 1 bis 5


    for k in range(1, 5):


    => zählt von 1 bis 4

    Man muss es halt wissen. In der Regel verwendet man aber eh ein for k in range(5) und hat damit einen Iterator und keine Liste, mit Vor- und Nachteilen. Ist dann halt 0-4, wenn du einen Index bei 1 beginnend willst bekommst du den mit k+1, logisch. Und in anderen Sprachen gibt es auch Funktionen, wo bei "von-bis" Parametern einer inklusiv und einer exklusiv ist.

    Aber solche Eigenheiten hat jede Sprache irgendwo.

    Das ist vollkommen richtig. Wie gesagt, jedem das seine.

    eine Sprache, die Verschachtelungen anhand der Anzahl der vorgestellten Leerzeichen erkennt, wie krank ist das denn? Und dann läuft alles im Interpreter, arschlahm.

    ...ist weder sachlich noch korrekt, mehr "opinion based". Ich freue mich über jede geschweifte Klammer, die ich sparen kann. Und einrücken soll man sowieso, gehört bei allen ernsthaften Sprachen zum guten Stil.

  • *einatmen*, *ausatmen*, *einatmen*.

    Was hat diese sinnlose Diskussion mit dem Problem zu tun? Es geht um Python. P-Y-T-H-O-N. Und ob du die Sprache nun verstehst oder nicht oder ob sie dir gefällt oder nicht spielt keine Rolle. Auch juckt es keinen mehr ob man die 1Millionstel Sekunde braucht, die die Bohrmaschine zum zusammenbauen braucht. Der TE hat sein Problem geschildert und deine persönliche Animositäten haben hier nix zu suchen. Über den fachlichen Bullshit a la warum zählt for i in 1,2,3,4,5 so und for i in range nicht, sag ich jetzt gar nichts. bleibt beim Thema, sonst ist hier zu.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Es geht um Python.

    Nein, es geht darum, dass der TO mit dem Programmieren auf einen Raspberry beginnen will und seiner Aussage nach noch keinerlei Erfahrung mit Programmierung hat.


    Er hat sich dann aufgrund von Online-Tutorials die Meinung gebildet, er müsse dafür Python verwenden. Warum man viele Tutorials mit Python findet habe ich oben dargelegt. Die schiere Anzahl der Tutorials sagt nichts über die Eignung von Python für Programmieranfänger aus.


    Meiner Meinung nach ist Python für Programmieranfänger nicht gut geeignet, weil fehleranfällig und die Grundlagen der Programmierung sehr "lässig" vermittelnd. Wie soll jemand was über Variablentypen und deren richtigen Einsatz lernen, wenn Typen beliebig sein dürfen? Wie soll jemand ein Programm vernünftig strukturieren, wenn 4 Leerzeichen mehr oder weniger aus dem Programm was ganz anderes machen?

  • Wo er recht hat ...


    Nicht umsonst wurde zu meiner Zeit noch Assembler als Einstiegs-Sprache empfohlen.

    Erstens, weil man dann gezwungen war, sich mit der Funktionsweise eines Prozessors auseinander zu setzen und zweitens, weil Assembler keine Schlampereien/Nachlässigkeiten verzeiht.

    Ich glaube nicht, dass es mir geschadet hat ...


    //EDIT: Mario Be: schau' Dich ruhig mal um, was es sonst noch so alles gibt und leg' Dich da nicht vorschnell fest. Blind der grossen Masse hinterherzulaufen kann auch bedeuten, das eigene Ziel nie zu erreicht. Eine Programmiersprache muss dem Entwickler sympathisch und für ihn leicht nachvollziehbar sein. Sonst endet das erfahrungsgemäss in Frust ...


    just :2cents:

    -ds-

  • Hallo zusammen,


    ich habe das ähnlich empfunden wie Timm Thaler. Meiner Meinung will sich der TE Mario Be mit Python beschäftigen, weil er der Auffassung ist, man müsse einen Raspberry Pi in Python programmieren.


    Auf einem Raspberry Pi lassen sich mehrere Dutzend Programmiersprachen zum Laufen bringen. Für einen Beitrag habe ich in den letzten Monaten unzählige Programmiersprachen portiert, installiert, konfiguriert - und Objektcode in Form von shared objects der einen Programmiersprache in einer der anderen Programmiersprachen aufgerufen.


    Man kann einen Raspberry Pi in Python programmieren. Man kann aber auch andere Programmiersprachen nutzen, die je nach Aufgabenstellung durchaus besser geeignet sein können. Was sich bei den meisten noch nicht festgesetzt hat, vielleicht besteht die ultima ratio sogar darin, Aufgabenstellungen (zumindest bei zunehmender Komplextät) zu lösen, in dem mehrere Programmiersprachen zum Einsatz kommen.


    Bevor wir uns jetzt hier aber zerreiben, sollte sich Mario Be mal äußern, wie er verstanden werden möchte.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Na ihr seid ja drollig... Eine Grundsatzdiskussion im Raspberry Pi Forum, wo über Verarbeitungszeiten verschiedener Programmiersprachen gestritten wird? :rofl:


    Cool, weiter so! :thumbup: Mein Taschenrechner wird's euch danken... :shy:


    Bevor wir uns jetzt hier aber zerreiben, sollte sich Mario Be mal äußern, wie er verstanden werden möchte.


    M.E. hat er das im Beitrag #1 getan inklusive Titel "Python und was noch?"


    Da fällt mir ein, dass ich mich zu Deiner Frage Mario Be noch nicht äusserte. Im Grunde verstehe ich die Frage auch nicht so richtig... wozu mehr als Python, ähhm also bevor etwas Anderes nötig werden könnte? Die Darstellungssprachen hast Du ja selbst schon genannt (HTML/CSS). Klar kannst Du als Erweiterung Java(Script)/Ajax lernen, doch das hängt ganz von den von Dir favorisierten Projekten ab oder nicht. PHP ist auch besser als sein Ruf hier im Forum. Man sollte halt nur verschiedene Programmiersprachen nicht mischen.


    :2cents:


  • Mahlzeit zusammen.

    Erstmal danke ich für die ganzen Infos hier.

    Ich fange mal mit dem Grundthema hier an; wieso Python?
    Wer sich für die Pi interessiert wird ja fast zwangsläufig auf Python getrimmt (außer man interessiert sich nur für die fast Plug&Play Projekte wie RetroPi).
    Viele Pi Bücher vermitteln gleich Python mit, viele Tutorials in den verschiedensten Bereichen nutzen Python.
    Python wird zumindest als Programmiersprache verkauft, die recht einfach zu lernen sein soll, man kann wohl über Module bei bedarf andere Sprachen mit einbinden (wenn ich dass jetzt so nennen kann und das nicht ganz falsch verstanden habe).
    Und irgendwie scheint Python, wohl gerade durch den Pi, der "Heiße Scheiß" zu sein.
    Ich habe mich 2015 hier angemeldet weil ich seit dem immer wieder Interesse am Pi hatte, aber aus zeitlichen Gründen mich dagegen entschieden habe mich mit der Sache zu befassen. Das liegt daran, dass wenn ich mit so etwas anfange, es auch "richtig" machen möchte. Daher auch die Intention erstmal Python zu lernen und dann den Pi kaufen. Linux/UNIX sehe ich jetzt nicht als das große Problem, da ich schon seit einiger Zeit Linux nutze (hab nur noch ne Platte mit Win10 im Rechner wegen einigen Spielen).

    Ich möchte aber auch betonen, dass es nicht mein Ziel ist "richtiger" Programmierer zu werden, daher werde ich mir nicht zig Programmiersprachen aneignen.
    Mir geht es um den Spaß an der Sache und Hobbyprojekte, und nachdem was ich gesehen habe reicht Python da voll und ganz aus.
    Als negatives wurde genannt, dass Python langsamer ist als z.B. C, damit kann ich für meine Hobbyanwendungen wohl leben. Sollte ich mal in den Bereich vorstoßen, dass ich so komplexe Programme schreibe, dass die Geschwindigkeit wirklich zu tragen kommt, dann kann ich mir auch vorstellen, dass mir das ganze so wichtig ist, dass ich mir auch eine weitere Programmiersprache anschaue/lerne. Aber dass sind alles noch ungelegte Eier und ich habe noch nicht einmal das Huhn dafür hier.

    Auf Dinge wie PHP, JS, RubyRails etwas bin ich wie gesagt gestoßen, weil diese oft im Zusammenhang mit Webdesign sehen. HTML und CSS sind ja nur für die optische Darstellung so wie ich das verstanden habe. Und es gibt einige Projekte die mir im Kopf herumschwirren, bei denen ich über das Internet etwas machen möchte. Hierfür würden halt Sensoren abgefragt und Module angesteuert, die Anzeige der Infos von den Sensoren und die Steuerung der Module würde ich dann gerne über HTML Seiten optisch ansprechend gestalten.
    Ein plumpes Beispiel wäre hier, dass dass die Zimmertemperatur angezeigt wird und ich dann von Unterwegs das Thermostat einstellen kann, damit die Wohnung warm ist, wenn ich nach Hause komme.
    Nur weiß ich halt derzeit noch nicht, ob hierfür HTML und CSS zusammen mit Python reichen würde, oder ob man noch etwas anderes braucht damit die Daten vom Pi ausgelesen und angezeigt werden, und damit, wenn ich auf solch einer Seite den Button X drücke, damit dieses Signal richtig zum Modul Y kommt.

    Was die Einrückung via Leerzeichen abgeht; ich finde das gar nicht so dumm.
    Ich habe auch schon Mitte der 90er mit AmigaBasic kleine Programme geschrieben.

    Ich habe mir in den letzten Monaten auch mal Beispiele in C, C++ und so angeschaut. Und ich glaube, dass es leichter ist eine falsch eingerückte Zeile zu finden als Klammern zu zählen, die ja auch schon mal böse verschachtelt sein können.

    Zudem soll man i.d.R. mit Python oft viel weniger Zeilen benötigen als mit anderen Programmiersprachen.


    Also wie gesagt, nach dem was ich bisher über Programmiersprachen gelesen habe ist meine ich Python für mich ein gutes Werkzeug um meine Ideen umzusetzen. Mit Python ist wohl sehr viel möglich, nur in recht wenigen Fällen kommen Leute wie ich, die hobbymäßig mit dem Pi basteln wollen an die Grenzen von Python (wohl eher an die eigenen Programmierfähigkeiten).

    Zudem glaube ich, auch wenn Python einfacher zu lernen sein soll als andere Sprachen, dass schon einiges an Zeit brauchen wird, dazu kommen dann noch einige Grundlagen in Elektrotechnik die man hier und da braucht.
    Dann halt noch die "Anzeigende Seite" des ganzen mit HTML und co.
    Und als wenn das nicht reicht fange ich in knapp drei Wochen eine weitere Umschulung an, da werde ich auch noch einiges lernen, da ich Gesundheitsbedingt vom Handwerk weg muss und nun Fachinformatiker für Systemintegration werden möchte.
    Dann habe ich auch noch andere Hobbys denen ich nachgehen möchte.
    Und wenn das noch nicht reicht, dann bin ich noch glücklicher Familienvater von drei Kindern der auch mit diesen und auch mit seiner Frau gerne Zeit verbringt.
    Und daher ist Python mit den "Werbeaussagen" "leicht zu lernen und kann fast alles", und dadurch dass viele Projekte und Tutorials für dne Pi schon mit Python verwirklicht wurden, sehr attraktiv.

    In diesem Sinne

    beste Grüße vom Mario, der gleich in die Stadt fahren wird um sich sein erstes Python Buch zu kaufen. ;)

  • Was die Einrückung via Leerzeichen abgeht; ich finde das gar nicht so dumm.
    Ich habe auch schon Mitte der 90er mit AmigaBasic kleine Programme geschrieben.

    Ich habe mir in den letzten Monaten auch mal Beispiele in C, C++ und so angeschaut. Und ich glaube, dass es leichter ist eine falsch eingerückte Zeile zu finden als Klammern zu zählen, die ja auch schon mal böse verschachtelt sein können.

    Meiner Meinung nach ist das Einrücken in Python ganz schön "dumm". K.A. wie man auf so eine Idee kommt. Wenn man davon weiss, mag man damit umgehen können, aber für Anfänger ist das ganz schön doof. Anfang 00er Jahre durfte ich die Erfahrung in einem Programmierkurs (Schule) machen. Hatte vorher schon programmieren in Java "gelernt". Naja, in dem Kurs für Anfänger ohne Vorkenntnisse wurden dann halt maximal einfache Sachen gemacht die kaum über eine Seite Zeilenanzahl hinausgingen. Also übersichtlich. Beim ausführen des Skripts kam eine nichtssagende Fehlermeldung (grosses Problem für Anfänger). Ok, die paar Zeilen mehrmals angeguckt (zu Zweit) und natürlich nichts gefunden. Kursleiter hergerufen. Irgendwann hat er was gemacht und es lief. Frage, was war der Fehler? Es sieht genau so aus wie vorher. Einrückung! Ähhh was? Es war dann Tabs anstatt Leerzeichen, oder umgekehrt. Schöner unsichtbarer Fehler. ;)


    Da fand ich dann plötzlich die Klammern in Java doch besser, die am Anfang immer nervten, da vergessen/zu viel oder falsch. Zumindestens sagt der Kompiler einem das (mit der Stelle) und wenn man übersichtlich lesbar einrückt, dann findet man die (nicht) Klammer recht schnell. Was hilft, wenn man sich angewöhnt beim Klammer öffnen, gleich eine Klammer schliessen und dann den Code schreiben. Ach ja, und "böse" verschachteln am beste gar nicht erst angewöhnen, wenn man sich das Leben nicht schwer machen möchte.


    Trotzdem steht Python auf meiner Todo Liste. Aber noch ganz unten. Erstmal Linux und RPi einigermassen beherrschen.

  • K.A. wie man auf so eine Idee kommt.

    Es sorgt wirklich für Ordnung, vielleicht nicht bei dir, aber es verhindert recht effektiv, dass man zu viel in eine Zeile schreibt, was in einigen Sprachen ja prinzipiell möglich ist. Entgegen deiner Vermutung ist Guido van Rossum allerdings kein Dummkopf.

    Ich habe durchaus schon Programmieranfänger gesehen, die Java als erste (und letzte) Sprache lernten und dann einen komplexen if-Block auf nur 1-2 Zeilen verteilten, man bekommt die Krise.

    eine nichtssagende Fehlermeldung

    Die Fehlermeldungen in Python sind absolut dankbar, wenn man sie denn verstehen kann. Schon mal C# programmiert? :fies:

    Einrückung! Ähhh was? Es war dann Tabs anstatt Leerzeichen, oder umgekehrt. Schöner unsichtbarer Fehler.

    Wer weder Tabs und Spaces unterscheiden noch einen Editor, der einem das abnimmt verwenden kann, sollte man es mit der Programmierung besser sein lassen.


    Sorry für den Rant, aber es nervt langsam. Ich verweise mal auf #25 und #30, es interessiert niemanden, was ihr an Python so schrecklich findet, darum geht es dem TE auch nicht. Heult euch in einem anderen Thread aus.

    daxb Was manche hier über Java sagen würden, willst du gar nicht wissen.


    Für den TE ist das Thema glaube ich so weit erledigt, ich würde dem TE Mario Be nochmals bestätigen, dass er mit Python und einem überschaubaren Webstack schon recht weit kommt.

  • Mahlzeit.


    Ich komme gerade aus der Buchhaltung, wie zu erwarten war das Buch nicht vorrätig. Morgen kann ich es abholen.

    Wie gesagt, ich finde das mit dem Einrücken ganz gut. So entsteht gleich ein geordneter Code.


    Jetzt werde ich mich erstmal mit Python beschäftigen. Dann kommt der Pi. Dann etwas Elektrotechnik, und dann HTML und Co.

    Das ist meine aktuelle Roadshow und dabei wird es erstmal bleiben. Abstecher sind nicht ausgeschlossen. So habe ich z.B. heute erfahren, daß Mikrocontroller wohl immer in C programmiert werden. Und bei einigen Projekten die mir so vorschweben ist der Pi ggf schon mit Schrot auf Spatzen geschossen. Aber wie gesagt, einen Schritt nach dem anderen.

    Gott hatte auch sieben Tage inkl. Tariflichen Pausen.


    Gruß Mario

  • Falsch verstanden. Ich habe nichts gegen Python und seit damals nicht mehr benutzt und kenne es daher zu wenig um zu urteilen. Also alles gut. :)


    Einrücken ist natürlich wichtig, sonst kann man den Code gar nicht lesen. Nur sollte der Kompiler/Interpreter Leerzeichen/Tabs ignorieren, bzw. nicht zur Bedingung machen. Da kann man natürlich anderer Meinung sein.


    linusg: Schon mal Code ohne Leerzeichen geshehen? ;)

  • linusg: Schon mal Code ohne Leerzeichen geshehen?

    Ja, leider :wallbash:

    JavaScript
    function multiply(x,y){return x*y}const result=multiply(3,5);console.log(result)
    JavaScript
    function multiply(x, y) {
    return x*y;
    }
    const result = multiply(3, 5);
    console.log(result);
    Python
    multiply=lambda x,y:x*y;result=multiply(3,5);print(result)
    Python
    def multiply(x, y):
    return x*y
    result = multiply(3, 5)
    print(result)

    AFAIK lässt sich das mit Python nur mit einer anonymen Funktion (lambda) lösen, nicht mit dem klassischen def in einer Zeile.


    Was viele gar nicht wissen: über die geschweiften Klammern haben sich die Python-Entwickler sehr wohl gedanken gemacht: https://scratch.mit.edu/discuss/topic/160748/ :wink:

  • Ja, aber es wurde nach Code ohne Leerzeichen gefragt...

    Berechtigter Einwand, ist aber in den meisten Hochsprachen durch eine oft nicht kleine Menge an Schlüsselwörtern und Syntax, die an manchen Stellen nun einmal ein oder mehr Leerzeichen erfordert etwas schwer. Ja, brainfuck und ähnliche habe ich auch schon gesehen, kann ich aber weder lesen noch schreiben, auch wenn die Syntax vergleichsweise simpel ist. Sinnvoll ist aber was anderes, und für mich ist Code ohne Leerzeichen nach z.B. Kommata Code ohne Leerzeichen.

  • brainfuck und ähnliche habe ich auch schon gesehen

    me too...


    Aber:

    Wenn ich oftmals sehe, was Entwickler so ohne diese (in meinen Augen unsinnige Sprachverkrüppelung alá brainfuck & Co.) kreieren, sollte vor allem da angesetzt werden:

    • Saubere Strukturierung (Modularität)

    Einrückungen

    Kommentare

    • Logischer Programmaufbau (zusammen gehöriger Code steht auch zusammen)

    Einrückungen

    Kommentare (Kommentare!!)

    • Kurze (Sub-)Routinen (!) ((Sub-)Routinen, welche mehr als 30-40 Zeilen umfassen, sind daneben (auf dem Monitor nicht mehr in Gänze darstellbar und somit nur noch erschwert erfassbar)
      Das kaputteste, was ich in diesem Zusammenhang mal gesehen habe, war eine Subroutine (Java) mit ca. 2500 Zeilen! Dazu hatte die Menge der vielen darüber gelaufenen Entwickler die Einrückungen durcheinander gebracht und der Code war ohne ein Reformating nicht mehr wartbar...

    Python wirkt da (u.a.) durch die Strenge des Einrückungszwangs zuerst abstoßend auf "gestandene" Entwickler mit anderem Sprachhintergrund, weil sie sich gegängelt fühlen...

    Aber es ist heilsam: Wirrer, undurchsichtiger Code ist eben kein Zeichen von Expertentum, sondern eher von Nachlässig- und Oberflächlichkeit und/oder mangelnder Sorgfalt (und manchmal auch ein Zeichen von Arroganz).


    Code wird nun mal viel öfters gelesen als geschrieben, oft sogar von unterschiedlichen Personen, die den Code dann warten/weiter entwickeln sollen/müssen...

    (Wer seinen eigenen Code nach 6 Monaten nicht mehr versteht, hat 'eh was dramatisch falsch gemacht - hab ich aber schon so erleben dürfen... (nicht ich, ich saß nur neben dem "Meister", der mir den Code übergeben sollte... ) :-)

  • Code wird nun mal viel öfters gelesen als geschrieben, oft sogar von unterschiedlichen Personen, die den Code dann warten/weiter entwickeln sollen/müssen...

    (Wer seinen eigenen Code nach 6 Monaten nicht mehr versteht, hat 'eh was dramatisch falsch gemacht - hab ich aber schon so erleben dürfen... (nicht ich, ich saß nur neben dem "Meister", der mir den Code übergeben sollte... ) :-)

    Fremden Code zu lesen ist aber immer schwieriger, als eigenen. Und selbst eigenen Code vergisst man nach einer gewissen Zeit. Da braucht man schon vorbildliche Kommentare um Zeit zu sparen beim wieder einarbeiten. Aber i.d.R. sind doch Kommentare Mangelware. Nach dem disassemblieren herrscht auch eher die Kommenarebbe. ;)

  • Hallo daxb,


    dazu gibt es Coding Guidelines. Und wer sich daran nicht hält, sorry, der hat's echt versaut.


    Ich hatte mal ein Projektgespräch für ein Programmierprojekt. Da fragten mich einer des Teams, wieviel Prozent Kommentare ich in Quellcode für erforderlich halte. Toll, wenn ich deren Guidelines gekannt hätte, dann hätte ich da was Brauchbares antworten können. So konnte ich nur aus eigenen Entwicklungen berichten und kam so auf 25 bis 33 % Kommentare.


    Kaum war ich zuhause, habe ich ein kleines Programm geschrieben, dass den Anteil von Kommentaren ermittelt. Einige der aktuellsten Entwicklungen habe ich dort durchgejagt. Ein Quellcode (rund 3000 Zeilen Code), den ich für "vorbildlich kommentiert" gehalten habe, kam auf 24,98 % Kommentare. Immerhin.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.