Programmier-"Niveau"
-
hustbaer schrieb:
Und sogesehen halte ich es für sehr irreführend zu sagen dass eine Variable einem Offset/einer Adresse/einem Register entspricht. ...
Man kann von mir aus gerne sagen dass es "oft" so ist, z.B. wenn man einem Anfänger erklären will was da so ca. ungefähr passiert, aber als absolutes Statement ist es für mich halt einfach falsch.
Ich kürze das mal ein wenig ab, um dieses Topic in diesem Thread mal zu einem Ende zu bewegen...
Die Optimierung von Maschinencode ist ungefähr das letzte, was man einem Anfänger erklärt. Und man erklärt sie auch nicht, damit ich Shade begreiflich machen kann, dass ich RAII und die Programmierung allgemein aus einer ganz anderen Perspektive betrachte als ein Anwendungsentwickler.
Mein Statement über Variablen gilt auch nicht für die Nachverarbeitung durch einen Maschinencode-Optimierer, sondern ganz allgemein. i ist auch eine Objekt und eine Variable(=Objektidentifizierer), wenn es nie benutzt wird.
Was daraus wird, wenn der Maschinencode durch den Fleischwolf gedreht wird, das ist eine ganz andere Frage - hier findet quasi ein neuer Compiliervorgang statt, der nur noch mit Objekten abläuft und vollkommen ohne ein Dictionary, wie welches Objekt für den Anwendungsentwickler mal geheißen hat. Und das ist vor allem eine Frage, die überhaupt nichts mit dem ursprünglichen Topic zu tun hat. Wenn ich also hier keine vollständige Abhandlung in allein Einzelheiten schreibe, die die Registerverteilung bei der Maschinenspracheoptimierung beinhaltet, dann liegt das auch daran, dass das hier einfach nicht das Thema ist. Und ein Anfänger hat sich eventuell schon bei RAII verabschiedet, was auch nicht das Thema hier war. Da wurde genauso detailverliebt jedes Bit angesehen, weil ich RAII als Buzzword bezeichnet habe für Objekte, deren Speichermanagement durch den Stack gemanagt werden.
Ich bin genauso detailverliebt, denn ich implementiere derartige Details und lasse mich dann leider auch zu gerne dazu hinreißen nach möglicherweise unverstanden oder schlecht verstandenen Details zu forschen. Aber das alles hat nichts in diesem Thread zu suchen oder wäre auch nur annähernd etwas, was jemand, der nicht wirklich scheiße tief in der Materie steckt noch interessiert.An dem Link wäre ich unabhängig von diesem Thread allerdings auch interessiert, falls Du ihn wiederfindest... ^^ (PN?)
Das wäre nämlich genau meine Materie. ^^hustbaer schrieb:
Wir können das auch gerne per Email fortsetzen falls dir das lieber wäre.
Mail klingt gut.
-
Wenn ihr nicht bald aufhört, werde ich absofort dich, hustbaer, Keuchhusten oder Raucherhusten nennen und dich Xin, "nix" oder "niX" (deinen Namen von hinten nach vorne gelesen)!
-
Steffo schrieb:
Wenn ihr nicht bald aufhört, werde ich absofort dich, hustbaer, Keuchhusten oder Raucherhusten nennen und dich Xin, "nix" oder "niX" (deinen Namen von hinten nach vorne gelesen)!
Wieso sind doch lebendes Beispiel für das Programmierer-Niveau.
-
Zeus schrieb:
Wieso sind doch lebendes Beispiel für das Programmierer-Niveau.
Genau. Alleine die Tatsache, dass sie sich so lange über so einen Kleinkram unterhalten können, zeigt schon, dass beide ein hinreichendes Interesse an sauberen Definitionen und Code haben, und das qualifiziert beide zu zumindest potentiell guten Programmierern.
-
cooky451 schrieb:
Zeus schrieb:
Wieso sind doch lebendes Beispiel für das Programmierer-Niveau.
Genau. Alleine die Tatsache, dass sie sich so lange über so einen Kleinkram unterhalten können, zeigt schon, dass beide ein hinreichendes Interesse an sauberen Definitionen und Code haben, und das qualifiziert beide zu zumindest potentiell guten Programmierern.
Ich bin nicht sicher, ob das ein Kompliment ist, aber ich befürchte, Du hast unabhängig davon Recht. ;-D
-
Xin schrieb:
Und man erklärt sie auch nicht, damit ich Shade begreiflich machen kann, dass ich RAII und die Programmierung allgemein aus einer ganz anderen Perspektive betrachte als ein Anwendungsentwickler.
Ja, du hast eine sehr einzigartige Sicht auf alle Dinge.
zB diese Diskussion - eine Variable als Highlevel Konzept lehnst du ab, als Lowlevel Konzept ebenfalls. Eine Variable ist ein Mischding das mal da ist und mal nicht, aber doch irgendwie immer ein Offset auch wenn es sie garnicht gibt.
Ich wette es gibt keinen 2. Menschen auf der Erde der das gleich sieht.
-
Shade Of Mine schrieb:
Ja, du hast eine sehr einzigartige Sicht auf alle Dinge.
...
Ich wette es gibt keinen 2. Menschen auf der Erde der das gleich sieht.Die Wette würdest Du verlieren und deine Zusammenfassung, die ich eines Quote nicht wert ist, spricht für sich.
-
Offtopic: (Ah ne, das war ja quasi das eigentliche Thema.)
In meiner heutigen Java Übungsaufgabe an der Uni habe ich eine Vorlage bekommen, in der sie den Kontostand von Personen als double modelliert haben. Sehr geil.
-
cooky451 schrieb:
Offtopic: (Ah ne, das war ja quasi das eigentliche Thema.)
In meiner heutigen Java Übungsaufgabe an der Uni habe ich eine Vorlage bekommen, in der sie den Kontostand von Personen als double modelliert haben. Sehr geil.Uns versuchte man damals im ersten Semester die Idee von Klassen beizubringen, in dem man uns erklärte, wie man reelle Zahlen abbilden könnte. Dafür wurden Vorschläge gesammelt: Zähler und Nenner und diverses andere. Der Prof entschied sich für die ungeschickteste Lösung, die er selbst vorgeschlagen hat: Nämlich mit zwei Integern, die den Bereich vor dem Komma und den Bereich nach dem Komma repräsentieren.
ReelleZahl( int vorKomma, int nachKomma )
Ich stellte dann die Frage, wie dann Zahlen wie 1,01 erzeugt werden und was passiert, wenn Zahlen wie 1,1 und 1,12 addiert werden. Im Verlauf der Vorlesung wurden die Sätze immer länger und verschachtelter: Unter der Bedingung, dass die es nicht zum Zahlen beide die gleiche Anzahl von Nachkommastellen haben, die auch konstruierbar sind, die auch keinen Überlauf erzeugen, wenn man sie addiert (1,5 + 1,5 ergibt ja bekanntlich 2,10), dann gilt.... (irgendwas triviales wie dass das Ergebnis stimmt). In solchen Sätzen ging dann die ganze Vorlesung weiter, bis man zu dem Schluss kam, dass man die heutige Vorlesung besser vergessen sollte.
-
@Xin: Das ist ein gutes Beispiel für rationale Zahlen. Da kommt dann auch kein 1,00001 vor. Überlauf kann man teilweise verhindern, wenn man den größten gemeinsamen Teiler findet und wenn in deiner rationalen Klasse 1,5 + 1,5 = 2,1 rauskommt, dann hast du sie eben schlicht falsch implementiert...
-
Naja, theoretisch könnte man das dann ja verkaufen als Lektion warum es wichtig ist die Daten richtig zu modellieren.
Denn oft kann Code enorm viel besser werden, indem die Datenstruktur besser gewählt werden... Aber das hat der Prof da dann wohl auch nicht verstanden gehabt :p
-
Steffo:
Ich versteh kein Wort. 1. hat Xin von reellen Zahlen gesprochen und 2. ist z.B. 1,00001 sehr wohl eine rationale Zahl, also was willst Du jetzt sagen?
-
Eisflamme schrieb:
Steffo:
Ich versteh kein Wort.Weil du mich nicht verstehen willst.
-
Wenn Du damit meinst, dass hinter Deinen Worten meist nicht viel steckt, richtig. Darüber hinaus erscheinen mir die Aussagen aber auch falsch. Und ob falsch oder nicht, ich finde es dann auch noch unverständlich formuliert.Edit: Das war etwas hart ausgedrückt. Lass es mich einfach korrigieren: Ja.
-
Was ich damit sagen wollte: Man kann tatsächlich ein gutes OO-Beispiel für Zähler/Nenner konstruieren. Bei den reellen Zahlen mag das fehl am Platze sein, bei den rationalen aber nicht.
-
Ich glaube Steffo kann ein Nenner/Zähler Paar nicht von einem vorm Komma / nachm Komma Paar unterscheiden.
-
cooky451 schrieb:
Ich glaube Steffo kann ein Nenner/Zähler Paar nicht von einem vorm Komma / nachm Komma Paar unterscheiden.
Was ist denn ein / anderes als ein grosses , ?
-
cooky451 schrieb:
Hi,
mir fällt immer mehr auf, dass meine Vorstellung von "programmieren können" und die von den meisten anderen ziemlich weit auseinander geht.
Als DAU, der tagtäglich die Qualitätsarbeit, die Programmierer bzw. Softwareentwickler so produzieren, bewundern darf, wundert mich das nicht.
Z.B. bei einer namhaften Softwareschmiede für Datenbanken, deren Programm irgendwann in den 80er Jahren entwickelt wurde, als es noch 14/15-Zoll-Monitore gab.
Mit heutigen 17 bzw. 19 Zöllern besteht die Darstellung auf dem Bildschirm dann zu einem Drittel oder so aus weißer Fläche, sprich die Leutz haben es in 20 Jahren nicht geschafft, ihre Software auf neue Monitore auszurichten.
-
redrew99 schrieb:
Mit heutigen 17 bzw. 19 Zöllern besteht die Darstellung auf dem Bildschirm
Also in meinem "heute" gibt es 22 und 24 Zöller :p
Aber das von dir beschriebene Problem ist ärgerlich, ja.
-
Ich kann Xin's erste Antwort sofort unterschreiben.
Die Problematik ist nun, dass man so gut sein kann wie man will, wenn man die Entwicklung der Buzzwords nicht verfolgt (hat), kommt man an keinem Personalchef vorbei. Auf den ersten Blick vielleicht sogar zurecht, denn es fehlen dann einfach Vokabeln in der Kommunikation mit einem Team. Die Frage bleibt - wie oft arbeitet man tatsächlich in einem Team?Persönlich habe ich da mal haarsträubende Erfahrungen mit der Nachfrage nach der Nutzung von Design Patterns gehabt. Nachdem ich mir mal angesehen habe, um was es da überhaupt geht, mußte ich feststellen, dass ich viele der Techniken unbewußt schon lange angewendet habe - wahrscheinlich weil ein ordentliches Design diese Methoden regelrecht erzwingt.
Heutzutage ist der Boden im Wesentlichen festgetreten. Ich denke, es kommt mehr darauf an, wie gut man Libraries kennt und wie flexibel man damit umgehen kann.
Und wie auch immer ein Niveau definiert sein mag - bei der Anwendung mehrerer Sprachen verteilt sich dieses sehr schnell...