Programmier-"Niveau"
-
@muemmel
Es gibt nunmal bestimmte Dinge die ein Programm unübersichtlich und unwartbar machen.
Manuelle Resourcenverwaltung gehört da dazu.
Da braucht es schon sehr gute und vor allem disziplinierte Programmierer damit das leserlich und wartbar und korrekt bleibt.
Dummerweise sind genau die Programmierer die kein RAII verwenden üblicherweise auch die die nicht besonders gut und/oder diszipliniert sind.
Wären sie nämlich beides, dann würden sie verstehen was es bringt, und würden ggf. vermutlich auch nicht davor halt machen mal ein paar Stunden oder gar 1-2 Tage ihr Hirn einzuschalten während sie sich in das für sie neue Thema einarbeiten.
Wobei RAII hier nur ein Beispiel ist. Eine weitere Sache ist z.B. Code-Duplizierung zu vermeiden bzw. auch Strukturierung. Man mag es nicht glauben, aber es gibt Programmierer die ab einer bestimmten Projektgrösse anscheinend Angst bekommen neue Funktionen zu definieren. Die schreiben dann einfach Code in Funktionen dazu. (BTW: ich sitze gerade vor einem so entstandenen 2000 Zeilen Funktionsmonster. *Freude*)Schlechte Programmierer dagegen schreiben schlechten Code.
Wobei "schlecht" hier eine bewusste Vereinfachung ist. Letztlich ist mir auch egal warum ein "schlechter" Programmierer schlechten Code schreibt. Wenn er blitzgescheit ist, aber aus irgend einem anderen Grund total unwartbaren Code schreibt ist er trotzdem ein schlechter Programmierer.Und daran ändert sich auch nix wenn du bestimmte Dinge als "zu hoch gehängte Akademische Glocke" bezeichnest.
Die wenigsten unwartbaren Programme sind für den Benutzer gut. Vorausgesetzt das Programm wird lange genug "gewartet" (=über Monate oder Jahre hinweg immer wieder erweitert/geändert) ergibt sich irgendwann mal ein so verbuggter und inkonsistenter Dreckshaufen dass kein User gerne damit arbeiten mag. Also ist es IMO eine Voraussetzung halbwegs sauberen Code zu schreiben, wenn man ein gut bedienbares Programm haben will. Es ist aber eben auch nur eine Voraussetzung, und für sich genommen noch nicht ausreichend.
Und nachdem das Thema hier das Programmieren war, und nicht User-Interface-Design, würde ich mal sagen: deine Einwände sind völlig off-topic
-
@muemmel
Es gibt nunmal bestimmte Dinge die ein Programm unübersichtlich und unwartbar machen.
Manuelle Resourcenverwaltung gehört da dazu.
Da braucht es schon sehr gute und vor allem disziplinierte Programmierer damit das leserlich und wartbar und korrekt bleibt.
Dummerweise sind genau die Programmierer die kein RAII verwenden üblicherweise auch die die nicht besonders gut und/oder diszipliniert sind.
Wären sie nämlich beides, dann würden sie verstehen was es bringt, und würden ggf. vermutlich auch nicht davor halt machen mal ein paar Stunden oder gar 1-2 Tage ihr Hirn einzuschalten während sie sich in das für sie neue Thema einarbeiten.
Wobei RAII hier nur ein Beispiel ist. Eine weitere Sache ist z.B. Code-Duplizierung zu vermeiden bzw. auch Strukturierung. Man mag es nicht glauben, aber es gibt Programmierer die ab einer bestimmten Projektgrösse anscheinend Angst bekommen neue Funktionen zu definieren. Die schreiben dann einfach Code in Funktionen dazu. (BTW: ich sitze gerade vor einem so entstandenen 2000 Zeilen Funktionsmonster. *Freude*)Schlechte Programmierer dagegen schreiben schlechten Code.
Wobei "schlecht" hier eine bewusste Vereinfachung ist. Letztlich ist mir auch egal warum ein "schlechter" Programmierer schlechten Code schreibt. Wenn er blitzgescheit ist, aber aus irgend einem anderen Grund total unwartbaren Code schreibt ist er trotzdem ein schlechter Programmierer.Und daran ändert sich auch nix wenn du bestimmte Dinge als "zu hoch gehängte Akademische Glocke" bezeichnest.
Die wenigsten unwartbaren Programme sind für den Benutzer gut. Vorausgesetzt das Programm wird lange genug "gewartet" (=über Monate oder Jahre hinweg immer wieder erweitert/geändert) ergibt sich irgendwann mal ein so verbuggter und inkonsistenter Dreckshaufen dass kein User gerne damit arbeiten mag. Also ist es IMO eine Voraussetzung halbwegs sauberen Code zu schreiben, wenn man ein gut bedienbares Programm haben will. Es ist aber eben auch nur eine Voraussetzung, und für sich genommen noch nicht ausreichend.
Und nachdem das Thema hier das Programmieren war, und nicht User-Interface-Design, würde ich mal sagen: deine Einwände sind völlig off-topic
-
hustbaer, du wiederholst dich
-
Xin schrieb:
Worum geht's? Man sagt der Templateklasse, von der man ableitet, wer man selbst ist. class B : public A<B>. Jemand dabei gewesen, der bei "Curiously Recurring Template Pattern" schon wusste, worum es ging?
Und wer weiß bei deiner Beschreibung worum es geht? Warum benutzt man das? Wobei ist das hilfreich? CRTP->erster Link auf Google. class B : public A<B>-> ???
-
otze schrieb:
Xin schrieb:
Worum geht's? Man sagt der Templateklasse, von der man ableitet, wer man selbst ist. class B : public A<B>. Jemand dabei gewesen, der bei "Curiously Recurring Template Pattern" schon wusste, worum es ging?
Und wer weiß bei deiner Beschreibung worum es geht? Warum benutzt man das? Wobei ist das hilfreich? CRTP->erster Link auf Google. class B : public A<B>-> ???
Falsche Fragestellung: Wer das Pattern kennt, aber nicht den Namen, wird in einer Diskussion nicht zwangsläufig Google fragen können. Diskussionen gibt es ja nicht nur in Internetforen, sondern auch von Angesicht zu Angesicht.
Es ging eben darum, dass man nicht alle Buzzwords kennen muss/kann... sollte?
Wenn Du mich morgen auf CRTP ansprichst, werde ich keine Ahnung, wovon Du sprichst. Das Pattern kenne ich trotzdem.
-
Xin schrieb:
Falsche Fragestellung: Wer das Pattern kennt, aber nicht den Namen, wird in einer Diskussion nicht zwangsläufig Google fragen können.
Doch sicher, wer in der Lage ist Google gut zu benutzen, wird diese Dokument finden (greade gegooglt): http://www.dre.vanderbilt.edu/~sutambe/documents/More C++ Idioms.pdf
-
Zeus schrieb:
Xin schrieb:
Falsche Fragestellung: Wer das Pattern kennt, aber nicht den Namen, wird in einer Diskussion nicht zwangsläufig Google fragen können.
Doch sicher, wer in der Lage ist Google gut zu benutzen, wird diese Dokument finden (greade gegooglt): http://www.dre.vanderbilt.edu/~sutambe/documents/More C++ Idioms.pdf
Zurück zum Niveau: Ich frage mich gerade, wie man eine Diskussion zielführend fortsetzen soll, bei der zwischenzeitlich das Ziel ausgetauscht wird. Das ist wie mit Navi fahren und auf halber Strecke es auf Heimatort umstellen und glücklich sein, dass man am Ziel angekommen ist.
Ich glaub' ich mach jetzt noch was sinnvolles...
Trotzdem, guter Link.
-
Xin schrieb:
Es ging eben darum, dass man nicht alle Buzzwords kennen muss/kann... sollte?
Wenn Du mich morgen auf CRTP ansprichst, werde ich keine Ahnung, wovon Du sprichst. Das Pattern kenne ich trotzdem.Doch, man muss sie kennen - sonst ist eine Diskussion nicht moeglich.
Pattern sind jetzt aber nicht was ich als Buzzword bezeichnen wuerde. Aber wenn bei uns eine Besprechung ist, dann muss jeder die Terminologie kennen. Das ist Grundvoraussetzung. Sonst dauern solche Besprechungen ewig. Wir schulen deswegen auch die nicht Techniker auf gewisse Vokabeln.
Das bedeutet natuerlich, dass man zeitweise Vokabeln lernen muss.
Fuer mich sind sowas die Grundlagen. Denn sonst ist Kommunikation nicht moeglich.
-
Shade Of Mine schrieb:
Xin schrieb:
Es ging eben darum, dass man nicht alle Buzzwords kennen muss/kann... sollte?
Wenn Du mich morgen auf CRTP ansprichst, werde ich keine Ahnung, wovon Du sprichst. Das Pattern kenne ich trotzdem.Doch, man muss sie kennen - sonst ist eine Diskussion nicht moeglich.
Das bedeutet natuerlich, dass man zeitweise Vokabeln lernen muss.
Fuer mich sind sowas die Grundlagen. Denn sonst ist Kommunikation nicht moeglich.
In diesem Paradigma wird dauerhaft keine hochqualifizierte Diskussion möglich sein. Und an dem Punkt sind wir ja schon lange vorbei.
Warum?
Davon auszugehen, dass jeder in einer unbekannten Runde - wie dieser - über die gleiche Terminologie verfügt, macht es einfach eine Diskussion zu unterbrechen und zu sagen "Du hast da was nicht verstanden", "Unfug" - es ist leicht einen Schuldigen zu bestimmen, der dann die Verantwortung tragen darf, dass eine Diskussion stockt. Ggfs. macht man einen Exkurs, um die Schuldfrage zu diskutieren, was sowieso gerne viel engagierter getan wird, als sich um den ursprünglich fraglichen Punkt zu kümmern.Was haben wir davon? Nix.
Wer sich für Neues interessiert, darf an solchen Diskussionen nicht qualifiziert teilnehmen und muss unterwürfig schlucken, was ihm dargeboten wird. So werden implizit Hierarchien geschaffen, die bekanntlich nicht dazu geeignet sind, das ein optimales Ergebnis zu erziehen, sondern dafür schnell zu Entscheidungen zu gelangen.
Es ist wie mit der Politik: Während die Demokratie eher träge ist, ist die Diktatur sehr wendig, erzieht aber nur punktuell herausragende Ergebnisse. Um eine Demokratie sinnvoll zu führen, muss der Bürger informiert sein, um sich einbringen zu können. Das ist er in der Regel nicht. Das bedeutet, dass der Idealfall eher die Ausnahme ist. Auf dem Weg zu optimalen Ergebnissen, muss man diese Tatsache erstmal so akzeptieren.
Dennoch können Bürger gute Ideen liefern. Die Grundannahme, das der Bürger informiert zu sein hat, ist also nicht zielführend für ein optimales Ergebnis.
Jede Annahme ist nur eine Fehlerquelle.Eine qualifizierte Unterhaltung muss also Pausen bieten, sich Sachverhalte, die nunmal nicht jeder kennen kann, freundlich zu erklären, bzw. zu benennen und Bekanntes in seiner Bedeutung abzugleichen. Das ist eine andere Form der Diskussionskultur. Die würde ich als Grundlage für eine qualifizierte Diskussion sehen, zumal es ein sich gegenseitig beschleunigender Effekt ist.
Menschliche Kommunikation ist sehr komprimiert, implizit und daher für detaillierte Sachverhalte eigentlich ungeeignet. Darum programmiert man auch in z.B. C und nicht in Englisch.Die Vorstellung, dass alle gefälligst mit den gleichen Grundlagen in eine Diskussion gehen, ist nicht nur illusorisch, es ist auch unproduktiv, denn wenn alle das identische Denk-Muster im Kopf haben, so besteht ja auch kein Grund zur Diskussion. Auch dieses Muster kennen wir aus dem Alltag in Form von "Das haben wir schon immer so gemacht".
Aber zum Thema Diskussionskultur kann ich mir hier eh den Mund fusslig reden. ^^
-
von "Vokabeln" auf identische Denkmuster zu kommen ist ein _so_ weiter Sprung, dass ich mich so langsam frage, welche Diskussion du gerad verfolgst.
Schnelles Gegenbeispiel: Bei uns ind er Arbeitsgruppe arbeiten alle mit derselben Kovnention wie man formeln aufschreibt, welche indizes was bedeuten etc. Und trotzdem machen alle völlig unterschiedliche Dinge, denken ganz anders und kommen zu unterschiedlichen Lösungswegen.
Am Ende verstehen aber alle die ANsätze der anderen, weil das Vokabular stimmt.
-
Ich kenne dies nur aus der Elektroniksprache aus der Lehrzeit, wenn wir da jeder für die Schaltung eines Schmidt-Trigger oder Monoflop was anderes gesagt hätten, aber dasselbe gemeint hätten, dann wäre dies schon sehr anstrengend für alle Beteiligten gewesen.
Bei der Softwarebranche kann ich nicht so mitreden, in der Zeit wo ich das beruflich gemacht habe, war ich absoluter Anfänger und habe aber gleich die Leitung für den Webbereich gehabt. War etwas schwierig, aber wir haben mit etwas Verzögerung alles hin bekommen und es läuft heute immer noch. OOP war da noch ein Fremdwort in PHP und dementsprechend wurde nur von Funktionen/Schnittstellen oder fertigen Modulen geredet.
-
Xin schrieb:
Die Vorstellung, dass alle gefälligst mit den gleichen Grundlagen in eine Diskussion gehen, ist nicht nur illusorisch, es ist auch unproduktiv, denn wenn alle das identische Denk-Muster im Kopf haben, so besteht ja auch kein Grund zur Diskussion. Auch dieses Muster kennen wir aus dem Alltag in Form von "Das haben wir schon immer so gemacht".
Vokabeln sind Vokabeln und haben nichts mit Denk Mustern zu tun.
Die gleichen Vokabeln zu verwenden ist die Grundlage jeder Kommunikation.
-
otze schrieb:
von "Vokabeln" auf identische Denkmuster zu kommen ist ein _so_ weiter Sprung, dass ich mich so langsam frage, welche Diskussion du gerad verfolgst.
Schnelles Gegenbeispiel: Bei uns ind er Arbeitsgruppe arbeiten alle mit derselben Kovnention wie man formeln aufschreibt, welche indizes was bedeuten etc. Und trotzdem machen alle völlig unterschiedliche Dinge, denken ganz anders und kommen zu unterschiedlichen Lösungswegen.
Am Ende verstehen aber alle die ANsätze der anderen, weil das Vokabular stimmt.
In einer Arbeitsgruppe wird das Vokabular auch aufeinander abgestimmt.
Dieses Forum hier ist aber keine Arbeitsgruppe.
Egal ob Arbeitsgruppe oder Forum, imho sollte man immer bereit sein, in die Definitionsphase einer Vokabel zurück zu kehren, sobald auch nur der Hauch einer Chance ist, dass eine Vokabel nicht mit exakt der gleichen Intention verwendet wird. Es sind oftmals nur Nuancen, die zwischen Genialität und Unsinn unterscheiden.
-
Vielleicht können wir uns darauf einigen, dass es durchaus sinnvoll ist, nach der Umsetzung eines Denkmusters dem Kind auch einen Namen zu geben.
Insofern muß ich Shade ein wenig widersprechen, denn das Ziel der Vokabel ist es letztlich, das damit beschriebene Denkmuster so einfach wie möglich zu übermitteln. Im Bereich der Informatik sollte die Vokabel deswegen ja nichts mit Intention zu haben. Nur damit ist letztlich auch Fortschritt möglich und das hat dann auch sehr viel mit Niveau zu tun. Das Problem heutzutage ist eher die Sammlung und Bewertung jener Vokabeln. Viele Dinge sind dead-end-streets, von vielen kriegt man nichts mit - und - was leider der Fall ist, aber eigentlich nicht sein sollte - Modeerscheinungen gibt es auch immer mehr.
-
Es gibt nun mal in jedem Beruf eine Fachsprache, welche die Kommunikation untereinander enorm erleichtert.
-
Lichtweite schrieb:
Es gibt nun mal in jedem Beruf eine Fachsprache, welche die Kommunikation untereinander enorm erleichtert.
Und damit hebt man sich von allen Leuten anderer Berufe deutlich ab und zeigt eine hohes Niveau auch bei völlig fehlender Fachkompetenz im eigenem Beruf.
Thema kann geschlossen werden. daddeldu!
-
Bitsy schrieb:
Vielleicht können wir uns darauf einigen, dass es durchaus sinnvoll ist, nach der Umsetzung eines Denkmusters dem Kind auch einen Namen zu geben.
Insofern muß ich Shade ein wenig widersprechen, denn das Ziel der Vokabel ist es letztlich, das damit beschriebene Denkmuster so einfach wie möglich zu übermitteln.Wieso Denkmuster?
Wenn ich sage:
"op<< ist friend von string"So ist dir klar was ich meine. Aber meinem Nachbaren waere es kein bisschen klar.
Dabei ist dies eine simple Aussage, die keinerlei Denkmuster verlangt. Ich kann es einem Kleinkind erklaeren und es wird es verstehen.
Oder auch Fremdworte in der deutschen Sprache. Ich brauche keine Denkmuster - ich kann auf fremdwort.de gehen und dumm vokabeln lernen. Und das kann ein Kleinkind auch.
Die Vokabeln stellen die Grundlage der Kommunikation da. Wir koennen diese Unterhaltung ja nur fuehren, weil wir zu einem sehr grossen Teil die selben Vokabeln verwenden. Dabei ist es egal ob ich "Observer Pattern" oder "Mittagessen" sage. Beides sind simple Vokabeln die eine bestimmte Bedeutung haben. Und damit wir einander verstehen, muessen wir beide das Vokabel und ihre Bedeutung kennen.
-
Shade Of Mine schrieb:
Oder auch Fremdworte in der deutschen Sprache. Ich brauche keine Denkmuster - ich kann auf fremdwort.de gehen und dumm vokabeln lernen. Und das kann ein Kleinkind auch.
Die Vokabeln stellen die Grundlage der Kommunikation da. Wir koennen diese Unterhaltung ja nur fuehren, weil wir zu einem sehr grossen Teil die selben Vokabeln verwenden. Dabei ist es egal ob ich "Observer Pattern" oder "Mittagessen" sage. Beides sind simple Vokabeln die eine bestimmte Bedeutung haben. Und damit wir einander verstehen, muessen wir beide das Vokabel und ihre Bedeutung kennen.
Meiner Meinung nach eine ziemlich arrogante Ansicht.
Schonmal im Ausland gelebt? Dort spricht nicht jeder Deutsch und kennt die gleichen Vokabeln. Das schöne ist, dass dabei keiner auf fremdwort.de geht und man trotzdem miteinander kommuniziert.
Es basiert darauf, dass man akzeptiert, dass das Gegenüber nicht alle Vokabeln genauso kennen muss, wie ich selbst. Und das gilt nicht nur für Menschen mit anderen Sprachkenntnissen, sondern auch von anderen Fachrichtungen. Interdisziplinäre Wissenschaft ist erfolgreicher als Fachidioten, die sich darauf beschränken, Vokabeln zu pauken.
Die Akzeptanz, dass das Gegenüber entweder nicht die Vokabel kennt, aber den Verstand besitzt, sie zu lernen, wenn man sie bei Bedarf höflich erklärt ist grundlegend zusammen mit der Bereitschaft, erklären zu wollen.
Kommunikation dient dazu, Ideen zu transportieren, nicht Vokabeln. Und zwei interessierte Gesprächspartner, müssen nichtmals über gemeinsame Vokabeln verfügen, um zu kommunizieren.
Als ich im Ausland lebte arbeitete ich in einer Forschungseinrichtung. Die wichtigste Vokabel "like this" und dann ging es mit Skizzen, Pantomime und so weiter los. Kaum jemand konnte gutes Englisch und trotzdem war Kommunikation definitiv kein Problem.
Vokabeln sind nützlich, aber nicht notwendig.
Aber wenn Du auf fremdwort.de gehst, schau doch bitte mal nach, wie die Kapellen heißen, in denen die Kirche ihre überflüssig gewordenen Reliquien entsorgt. Das sind geweihte Kapellen, aber dort wird halt nicht (mehr) gebetet, sie dienen quasi nur als Lager für Zeugs, dass irgendwann mal als Heiligtum angesehen wurde. Die Vokabel suche ich jetzt schon länger... ich bin offenbar zu dumm, die Vokabel zu finden.
-
Xin schrieb:
Schonmal im Ausland gelebt?
Tue ich gerade. Man wechselt dann auf eine Sprache, die beide verstehen. Und wenn eine Vokabel unbekannt ist, dann fragt man eben nach. Das Stichwort heißt hier kooperation.
Um mal mit diesen Thread zu vergleichen: Du knnst viele der Vokabeln nicht, gibst das auch zu, aber anstatt nachzufragen sagst du Dinge wie:
"Weiß hier jemand was Vokabel X bedeutet? Es ist [falsche Erklärung]. Also ganz einfach, warum benutzen wir X überhaupt, wenn es so einfach ist?".
Kein Wunder, dass dann die Kooperationsbereitschaft schwindet, wenn du dich offensichtlich weigerst eine gemeinsame Sprache zu sprechen.
-
otze schrieb:
Xin schrieb:
Schonmal im Ausland gelebt?
Tue ich gerade. Man wechselt dann auf eine Sprache, die beide verstehen. Und wenn eine Vokabel unbekannt ist, dann fragt man eben nach. Das Stichwort heißt hier kooperation.
Bis hierhin sind auf einer Wellenlänge.
otze schrieb:
Um mal mit diesen Thread zu vergleichen: Du knnst viele der Vokabeln nicht, gibst das auch zu, aber anstatt nachzufragen sagst du Dinge wie:
"Weiß hier jemand was Vokabel X bedeutet? Es ist [falsche Erklärung]. Also ganz einfach, warum benutzen wir X überhaupt, wenn es so einfach ist?".
Aha... muss ich irgendwie nicht mitbekommen haben... möchtest Du konkreter werden oder ist das jetzt einfach nur mal eine in den Raum gestellte Behauptung und fertig? Ich kann mich jedenfalls nicht erinnern, dass ich Dinge wie diese gesagt habe.
otze schrieb:
Kein Wunder, dass dann die Kooperationsbereitschaft schwindet, wenn du dich offensichtlich weigerst eine gemeinsame Sprache zu sprechen.
Jow... ich bin schuld... Wir sollten eine Linie durch's Forum ziehen, Du und Shade auf der einen Seite und ich auf der anderen. Dann brauchen wir auch nicht miteinander zu diskutieren oder zu kooperieren.
Schön, dass wir zumindest theoretisch auf einer Wellenlänge sind.