"Allgemeine Fragen* in 2 Unterforen splitten.

Kritik und Vorschläge für dieses Board bitte hier rein.
Antworten
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

Hallo,
ich würde mir 2 Unterforen statt nur "Allgmeine Fagen" wünschen:
  • Anfängerfragen
  • Expertenfragen.

Im Moment komme ich mir im Forum "Allgemeine Fragen" vor, wie ein Fahranfänger, der in der Frankfurter Innenstadt am Steuer sitzt.
Bei jede Frage wird man gemaßregelt, sich pingelig an einem Regelwerk zu halten, das etwa so leicht zu verstehen -und vor allem mit allen seinen Details und Verzweigungen- zu verinnerlichen- ist, wie die StrVo.
Es ist nicht, dass sie keinen Sinn machen, aber lesen und loslegen, so einfach ist es nicht. Jeder Fahranfänger braucht eine Übungspiste.
Kann man auch eine Frage stellen, ohne sofort zuerst auf ein falsch platziertes Leerzeichen* gemaßregelt zu werden?

Ich bin kein Programmieranfänger, komme von c++, ein solch rauer Ton wie hier im "Allgemeine Fragen" Forum bin ich nicht gewöhnt.

Danke fürs in Betracht zu nehmen.
Laszlo

*wohl gemerkt nicht so falsch, dass es für die Ausführung relevant wäre
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

Sorry habe viewtopic.php?f=10&t=45864 gelesen.
Ich habe verstanden. Hier möchte man unter sich bleiben.
Anfänger sollen bitteschön woanders lernen...
Vielleicht könnte man nur den Untertitel anpassen: das deutsche Python-Expertenforum
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Du kannst mich ruhig direkt erwähnen, das ist schon in Ordnung.

Grundsätzlich halte ich die Unterteilung für nicht sinnvoll. Ich hätte auf deinen Post in einem Anfängerforum genauso geantwortet.

Natürlich kannst du dich dadurch gemaßregelt fühlen, wenn dir danach ist.
Ich persönlich sehe sowas ja als zusätzlichen Service am Code. Um bei deinem Bild zu bleiben: Auch dem Fahranfänger muss auf der Übungspiste gesagt werden, was er falsch macht, sonst wird er in der Frankfurter Innenstadt niemals fahren können.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Die Lernkurve hier ist steil aber man wird recht schnell auf den richtigen Weg gebracht.
Gewöhnungsbedürftig zuerst, aber hilfreich.
Spreche aus eigener Erfahrung. :-)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

ThomasL hat geschrieben: Sonntag 15. März 2020, 09:23 Die Lernkurve hier ist steil aber man wird recht schnell auf den richtigen Weg gebracht.
Gewöhnungsbedürftig zuerst, aber hilfreich.
Spreche aus eigener Erfahrung. :-)
Trotzdem: sowohl Verkehrsübungsplatz als Nürnburgring haben ihre Berechtigung.
Und das soll mir bitteschön keiner mir mehr erzählen, dass Python anfängertauglich ist.
Das war es sicherlich am Anfang, aber wenn jetzt die Voraussetzung ist, dass man zuerst ein Semester in Objektorientierung absolviert um überhaupt die PEP 8 verstehen zu können, dann ist die ursprüngliche Einfachheit von Python futsch.
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

sparrow hat geschrieben: Sonntag 15. März 2020, 08:14 Grundsätzlich halte ich die Unterteilung für nicht sinnvoll....Auch dem Fahranfänger muss auf der Übungspiste gesagt werden, was er falsch macht, sonst wird er in der Frankfurter Innenstadt niemals fahren können.
Die Frage ist aber auch, ob das "richtig" und das "falsch" Konstanten sind, die man unbedingt in ALLCAPS schreiben muss. :D
Meines Erachtens gibt es dazwischen noch Nuancen.

Die Objektorientierung ist eine feine Sache, sie als Zwang zu verstehen, halte ich für übertrieben.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Das klingt nach Frustration.
Aus Erfahrung, und ich habe einigen Leuten beim Einstieg in die Programmierung geholfen, ist Python durchaus einteigerfreundlich. Aber ich denke, die Diskussion darüber, hat hier wenig Sinn.

Wo siehst du denn einen Zwang zur Objektorientierung? Den gibt es bei Java, wo um alles sinnfrei eine Klasse geklatscht werden muss. In Python gibt es das nicht. Es sei denn wir reden von GUI-Programmierung, aber die ist in allen Programmiersprachen zwangsläufig objektorientiert, wenn es denn mehr als ein triviales Beispiel ist.
Zuletzt geändert von sparrow am Sonntag 15. März 2020, 11:00, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man KANN Radmuttern mit der Wasserpumpenzange anziehen. Und hier keiner verhindern, das du das tust. Aber der Hinweis wie‘s richtig gemacht wird, sollte schon gegeben werden. Ignorieren kannst du das ja immer noch. Und je nach Aufgabe ist OO das richtige Werkzeug. Auch in C++ übrigens.
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

__deets__ hat geschrieben: Sonntag 15. März 2020, 10:49 Man KANN Radmuttern mit der Wasserpumpenzange anziehen. Und hier keiner verhindern, das du das tust. Aber der Hinweis wie‘s richtig gemacht wird, sollte schon gegeben werden.
Am eigenen Fahrrad ist das nicht schlimm. Am Formel-1 Bolide ist das eine Todessünde.
Darauf zu bestehen, dass man ein Momentschlüssel für jede Mutter immer und jederzeit verwendet, ist nicht hilfreich.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Jemanden dabei zuzusehen, wie er eine Radmutter mit einer Wasserzange anzieht, und ihm nicht auf das richtige Werkzeug hinzuweisen, ist nun wirklich nicht hilfreich.
Genau wie diese Diskussion. Du fühlst dich persönlich angegriffen, deshalb wird das hier zu nichts führen, was meinen Umgang hier im Forum angeht.

Deine falschen Aussage über Python bezüglich der erzwungenen Objektorientierung ist trotzdem falsch.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@RIN67630: Python ist keine einfache Programmiersprache und war das IMHO auch nie, jedenfalls nicht seit Python 2. Vielleicht war das bei Python 1 noch anders. Aber das ist ja jetzt echt eine Ewigkeit her, da war die Sprache auch noch nicht so bekannt und beliebt. In Python kann man (IMHO) leicht(er) lesbare Programme schreiben als in einigen anderen Programmiersprachen — wenn man es kann. Denn eine einfache klare Syntax auch für komplexere Dinge hilft zwar, ersetzt aber nicht Erfahrung im strukturieren von Code und Daten und dem finden von guten Namen. Und trotz einfacher Syntax hat die Sprache eine Menge Sprachkonstrukte und Möglichkeiten dem bisschen Syntax durch eigenen Code Bedeutung zu geben.

Für lesbaren, verständlichen Code braucht es Konventionen was die Schreibweisen und die Form angeht. Die Namensschreibweisen sind ja nicht Kosmetik, da werden Informationen transportiert die dem Leser helfen den Code zu verstehen. Wenn sich alle daran halten erkennt der Leser Konstanten und Datentypen schon an der Schreibweise. Dadurch das nur Klassen ”MixedCase” geschrieben werden hat man immer eine offensichtliche, direkte generische Möglichkeit für den Namen von einem Exemplar einer Klasse: „some_class_name = SomeClassName(…)“ und es muss nicht jeder einen eigenen Weg finden, beispielsweise durch sinnlose Prä- oder Postfixe wie „my“ oder „obj“.

Das mit den Konstanten verstehe ich nicht. Entweder ist etwas eine Konstante, dann ALL_CAPS, oder es ist keine Konstante, dann klein_mit_unterstrichen *und* dann hat das nichts auf Modulebene zu suchen. ”Dazwischen” gibt es nur globale Variablen, wenn man die denn verwenden würde, was man nur in sehr wenigen Ausnahmefällen macht. Das was Anfänger mit globalen Variablen anstellen fällt eigentlich nie unter diese Ausnahmen. Und das sollte man auch gleich sagen, denn globale Variablen schaffen letztlich mehr Probleme als sie lösen.

Wofür muss man um PEP8 anwenden zu können denn Objektorientierung verstehen? Mal abgesehen von den Sachen die sich auf Klassen und Methoden beziehen, aber die braucht man nicht wenn man sich nicht sowieso schon mit Klassen und Methoden auseinandersetzt.

Andererseits ist in Python *alles* was man an einen Namen binden kann ein Objekt. Inklusive Module, Funktionen, Klassen, Methoden, und so weiter. Programme ohne Objekte und Methodenaufrufe kann man in Python nicht wirklich schreiben. Zudem kommt man nicht wirklich sinnvoll ohne Verbunddatentypen aus wenn es auch nur etwas komplexer wird, und Verbunddatentypen schreibt man in Python als Klassen. Wenn sie unveränderbar sein dürfen geht auch `collections.namedtuple()` aber das ist liefert, auch wenn man ``class`` nicht selbst verwendet, als Rückgabewert auch eine Klasse. Wenn man in Python keine Klassen verwendet, ist das als wenn man in C++ keine Klassen *und* kein ``struct`` zur Verfügung hätte.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

sparrow hat geschrieben: Sonntag 15. März 2020, 11:15 Jemanden dabei zuzusehen, wie er eine Radmutter mit einer Wasserzange anzieht, und ihm nicht auf das richtige Werkzeug hinzuweisen, ist nun wirklich nicht hilfreich.
Wenn er gerade nur diese Wasserzange parat hat und eigentlich nur den platten Reifen flicken will?
Soll er stattdessen erstmals das Fahrrad liegen lassen, im Telefonbuch nach einem Fachhandel für Profi-Momentschlüsseln suchen, dann ein Taxi nehmen, um in die Stadt fahren um genau diesen Schlüssel für diese Mutter zu besorgen, die Bedienungsanleitung studieren, um dann die Mutter an seinem Fahrrad "richtig" anzuziehen?
Dann hat er vielleicht den Momentschlüssel für das nächste Mal, aber dann kommt es mit dem Spezialschraubenzieher.
Wobei er zuerst unterrichtet werden muss, dass man "Schraubendreher" sagt :D ...

Dabei wollte er mit seinem Drahtesel nur weiterfahren!

P.S. ich hätten dem Mann zuerst geholfen, mit seinem Verfügbares weiterzukommen, dann am Ende auf die Spezialwerkzeuge hingewiesen.
Auch wenn er vielleicht das nächste Mal wieder die Wasserzange nimmt.
Zuletzt geändert von RIN67630 am Sonntag 15. März 2020, 12:26, insgesamt 2-mal geändert.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Wie gesagt, diese Diskussion nützt nichts, weil du das persönlich nimmst.
Wie haben Sirius3 oder __deets__ das hier letztens so schön gesagt: Wenn man nur einen Hammer hat ist jedes Problem ein Nagel.
Wie gesagt, es macht keinen Sinn, jemanden mit einem falschen Werkzeug weiterarbeiten zu lassen.

Von dem Thema mit der erzwungenen Objektorientierung bist du weg? Oder müssen wir da noch etwas erklären?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Anders als dein hypothetsicher Fahrradfahrer hast du deine Shift-Taste sehr wohl immer dabei. Die Entscheidung die nicht zu nutzen, ist also bewusst. Aber WIR sind das Problem....
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

sparrow hat geschrieben: Sonntag 15. März 2020, 12:20 Wie gesagt, diese Diskussion nützt nichts, weil du das persönlich nimmst.
Nein.
Wie haben Sirius3 oder __deets__ das hier letztens so schön gesagt... ?
Sirius3 hat mir geholfen.
Ich habe mich bei ihm bedankt, und mache mich jetzt weiter ans codieren.
Vielen Dank für die Unterhaltung.
Bleibt gesund!
Laszlo
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

RIN67630 hat geschrieben: Sonntag 15. März 2020, 07:42 Bei jede Frage wird man gemaßregelt, sich pingelig an einem Regelwerk zu halten, das etwa so leicht zu verstehen -und vor allem mit allen seinen Details und Verzweigungen- zu verinnerlichen- ist, wie die StrVo.
Ich glaube, was insbesondere für viele Umsteiger von anderen Sprachen bei Python ein Problem sein kann, ist, dass die Sprache zwar auf den ersten Blick viele Freiheiten bietet, diese aber einem diese gleich wieder genommen werden, weil es sehr viele Konventionen und Vorstellungen darüber gibt, wie man mit diesen Freiheiten umzugehen hat. Aus meiner Sicht ist es so, dass man bei Python eben nicht nur die Syntax sondern gleichzeitig auch diese Konventionen lernen muss, weil bei Python (m.M.n. mehr als bei anderen Sprachen) großer Wert auf guten -- "pythonischen" -- Code gelegt wird. Gerade wenn man Sprachen, die hier weniger "dogmatisch" sind, gewöhnt ist und vielleicht auch schon gut programmieren kann, mag das irritierend sein. Aber wenn man nicht nur Code in Python-Syntax sondern "echtes" Python schreiben möchte, muss man da wohl leider durch. Und da hier ja schon fleißig mit Metaphern und Analogien jongliert wird: Wenn man eine Fremdsprache lernt, lernt man in der Regel gleich, dass manche Dinge nicht 1:1 übersetzbar sind, sondern anders ausgedrückt werden. Klar kann man auf Englisch sagen "i make vacation" oder sowas; nur ist das halt kein korrektes Englisch und das sollte man auch gleich als Anfänger gesagt bekommen.

Edit: Beispiel zurück geändert.
Zuletzt geändert von nezzcarth am Sonntag 15. März 2020, 13:08, insgesamt 4-mal geändert.
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

nezzcarth hat geschrieben: Sonntag 15. März 2020, 12:44 [viel richtiges und sinnvolles]
Klar kann man auf Englisch sagen "i make vacation" oder sowas; nur ist das halt kein korrektes Englisch und das sollte man auch gleich als Anfänger gesagt bekommen.
Es ist auch schlicht unmöglich Shakespears Sprache zu beherrschen, ohne ein paar Jahre lang Fehlern zu machen.
Es erinnert mich an dem - sehr schlechten - Englischlehrer, der meine Tochter wochenlang abstottern ließ:

-"I hear Henry's hammer hitting in the hall of the hotel"!
-"I ear enry's ammer itting in the all of the otel"?

Er fügte hinzu "Du wirst nie richtig Englisch lernen".
Hilfreich war das nicht sondern nur destruktiv.

Mittlerweile hat meine Tochter promoviert. In Durham, UK.

Ein guter Lehrer weiß, welche Fehlern man am Anfang besser übersehen sollte.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@RIN67630: Er weiss aber auch welche Sachen man sich gar nicht erst angewöhnen sollte und es ist ja wie nezzcarth sagte nicht nur die Sprache sondern es geht auch um das was in der Umgebung in der sie gesprochen wird sonst noch so erwartet wird. Meine Englischlehrer haben jedenfalls immer darauf hingewiesen wenn man etwas so formuliert hat das man in der Öffentlichkeit schräg bis entsetzt angeschaut wird und das dann auch als Fehler angestrichen.

Ich weiss nicht recht was ich von dem Beispiel halten soll – das erste ist das was der Lehrer hören wollte und das zweite ist das was er als Antwort bekam? 🤔 Dann rate ich mal das Deine Tochter 🇫🇷 als Muttersprache hat‽ 🙂

Ich glaube auch nicht dass das bei Python so viel stärker ist mit den Konventionen sondern dass es bei Python eher den *einen* Satz an Richtlinien gibt, und nicht mehrere konkurrierende. Man denke an die Frage wo man denn die geschweiften Klammern positioniert, die anderswo mit religiösem Eifer ausgefochten wird, und die Python elegant umgeht. Und bei Namenschreibweisen frage ich mich oft warum es da in Python Leute gibt die das ausdiskutieren wollen, aber komischerweise noch nie das Bedürfnis hatten in Java Methoden klein_mit_unterstrichen oder Klassen nicht mit einem Grossbuchstaben am Anfang zu schreiben — es da also akzeptieren als wäre das Teil der Syntax und nicht nur eine Konvention an die sich alle halten.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
RIN67630
User
Beiträge: 91
Registriert: Sonntag 29. April 2018, 08:07

__blackjack__ hat geschrieben: Sonntag 15. März 2020, 17:38 @RIN67630: Er weiss aber auch welche Sachen man sich gar nicht erst angewöhnen sollte und es ist ja wie nezzcarth sagte nicht nur die Sprache sondern es geht auch um das was in der Umgebung in der sie gesprochen wird sonst noch so erwartet wird. Meine Englischlehrer haben jedenfalls immer darauf hingewiesen wenn man etwas so formuliert hat das man in der Öffentlichkeit schräg bis entsetzt angeschaut wird und das dann auch als Fehler angestrichen.

Ich weiss nicht recht was ich von dem Beispiel halten soll – das erste ist das was der Lehrer hören wollte und das zweite ist das was er als Antwort bekam? 🤔 Dann rate ich mal das Deine Tochter 🇫🇷 als Muttersprache hat‽ 🙂
Ja, richtig geraten, so war das: meine Tochter -und ich auch- sind Franzosen.
Und ich hatte noch früher als trotziger Pubertier sogar das Gymnasium gewechselt, um bloß kein Deutsch lernen zu müssen. :wink:
Meine Grammatik ist immer noch holprig, aber nicht signifikant schlechter, als die von vielen Deutsche:
Meine Englischlehrer haben jedenfalls immer darauf hingewiesen, wenn man etwas so formuliert hat, dass man in der Öffentlichkeit schräg bis entsetzt angeschaut wird und dies wird dann auch als Fehler angestrichen.
Merkst Du was? :D

Was Englisch angeht: ich kann es dir aus eigener Erfahrung versprechen: Engländer lieben es über alles, wenn Franzosen ihre Sprache französisch anhauchen. Sie finden das totaaal süß!
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@RIN67630: Das „dies wird“ müsste inhaltlich dann aber „dies wurde“ heissen, denn das liegt in der Vergangenheit. Ich würde aber diese Ersetzung von „das“ an der Stelle nicht nötig finden. Ansonsten ja: Ich kann absolut gar keine Kommaregeln und setze die nach Gefühl oder gar nicht. Das scheint akzeptabel zu sein. Wenn ich meine Shift-Taste nicht finden und/oder Satzzeichen am Ende weglassen würde, dann würde ich garantiert hier (und auch in anderen Foren) deutlich darauf hingewiesen werden.

Das Engländer das süss finden glaube ich, aber das kommt sicher auch auf den Akzent an. Polnischer ist bestimmt deutlich weniger beliebt. Programmiersprachen sind aber formaler und da fallen ”Fremdkörper” deutlicher und auch unangenehmer auf. Unter anderem auch weil es handfeste Fehler verursachen kann wenn man versucht Idiome von anderen Sprachen zu übertragen. Jemand der von C++ beispielsweise deterministische Destruktoren und ``del``-Anweisungen gewohnt ist, sollte das nicht einfach so auf Python übertragen, weil die Destruktoren hier nicht deterministisch sind, und ``del`` eine andere Bedeutung hat. Und auch Code dem man deutlich ansieht das er von einem Pascal-, C-, VB-, oder Java-Programmierer stammt ist alles andere als süss. Vielleicht ist das französisch der Programmiersprachen ja Lisp oder Scheme — ich finde Hy jedenfalls ganz nett. 🙂
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten