Stimmt.
Finde das jetzt nicht sooo kritikwürdig. Also nicht so schlimm wie das, was Schlumpf gepostet hat
Der Compiler optimiert es eh weg und so könnte man noch verargumentieren, dass das den Code expliziter macht
Aber wo wir dabei sind: ich hatte mal kurz mit einer Firma zu tun, die Fans von sehr optimiertem Coden war. Die haben statt Multiplikation mit 2 immer nen Bitsthift um eine Stelle gemacht (C++ unter Windows) und waren etwas überrascht, als ich denen erklärt hab, dass der Compiler da noch dazwischen sitzt und ne ganz eigene Meinung hat (beides wurde da zu genau der gleichen Routine kompiliert, die kein bloßer Shift war ) und das einzige, was leidet, die Lesbarkeit des Codes ist.
E: haben sich aber auch beklagt, dass sie kaum Programmierer finden, die auf ihrem Niveau coden können.
Ist halt die alte Schule: Vermeide Divisionen. Da ist der Bitshift für mich der Kommentar des Programmierer, dass er nur vielfache von Zwei im Nenner erwartet/voraussetzt.
War halt mal in einem der Branches noch eine Anweisung, oder auch nur Kommentar, enthalten. Da finde ich die fehlenden Klammern, sofern C++, etc problematischerCode:if (Bed) return True else return False
@Matlab: Der Zugriff auf Teilmatrizen per M[ Matrix mit Indizes ] ist recht angenehm. Die Daten in Matrizen zu halten kann nützlich sein, @EpicFail, wenn man die Berechnungen per Matrix-Multiplikation ausdrücken kann.
Dann kann Matlab seine Vorteile ausspielen, weil es sich die Berechnung gut parallelisieren lässt.
Geändert von Ramkhamhaeng (06. Februar 2022 um 14:59 Uhr)
Programmierer, die keine Klammern um if-Blöcke setzen sind furchtbar!
Steht auch in fast jedem Coding Guideline, da ohne Klammern leicht Unfälle passieren können (in C/C++).
#KriegIstFrieden
#FreiheitIstSklaverei
#UnwissenheitIstStärke
Hat da jemand Python gesagt?
Eine absolute unsitte dort keine Klammern zu setzen. Perfekt durcheinander wirds dann wenn die zweite Zeile nach der If(ohne Klammer) noch eingerückt ist. Das rätselt man dann ob der Vorgänger zu blöde war und die KLammer vergessen hat oder ob der die zweite versehentlich eingerückt hat. Wenn da Klammern sind ist es glasklar was gemeint war.
Naja eine gut eingestellte IDE mit checkstyle macht die Klammern wenigstens automatisch ringsrum.
Wer Rechtschreibfehler findet darf diese behalten :)
Original geschrieben von robertinho:
"Asterix und Flati stehen für solide Kompetenz und Verlässlichkeit."
Ist ja auch oft eine Wissensfrage, denke ich.
Was man vor (ggf) vielen Jahren in Schule oder auch Uni gelernt hat, das man vermeiden soll, wird mittlerweile eh wegoptimiert.
Als Beispiel nehme ich mal Strings zusammenfügen in Java. Da ein +="append text" zu nutzen, war sehr verpönt, da es unnötig neue Objekte erzeugt, die dann direkt wieder in den Müll (GC) wandern.
Also nahm man z.B. StringBuffer, der wurde dann abgelöst von StringBuilder (weil nicht synchronized).
Wenn man sich die Compiler-Optimierungen im Detail anguckt, z.B. Java Compiler Optimization for String Concatenation, war es dann doch lange so, dass es viele Szenarien gab, in denen man in einigen Situationen besser selbst direkt überlegten Code geschrieben hat. Und ggf immer noch gibt, sonst wären da nicht 9 verschiedene wählbare Optimierungsstrategien für den Compiler (die ich mir jetzt nicht im Detail angucke).
Ist halt wie in vielen Feldern, es mag Situationen geben, wo man es besser weiß als die versammelten Fachleute der Welt, aber dann sollte man auch mit einem guten Konzept ankommen und sich auf viel Kritik einstellen. Wer nur einmal kurz zur Youtube-Universität gegangen ist oder am liebsten Code von Stackoverflow kopiert, hält sich vielleicht lieber etwas zurück. Und da schließe ich mich selbst mit ein, Compilerbau war nie mein Lieblingsfach...
Aktuell: [18] - Bringt die Pfeffersäcke über Land - Deutschland CPL
Letzte Stories: PBC 6 - Skythische Koreaner in stürmischen Schlachten, PBC 7 - Arabische Piraten auf allen sieben Weltmeeren , PBEM 42 Koggen und Kanonen, PBEM 39 Savoir Vivre für die Alliierten , PBEM 24: Der Große Vaterländische Krieg, PBEM 18: Nobody Expects The Spanish Hamburger
Also wird Datenorientierte Programmierung häufig in der Praxis genutzt? Ich spiele seit ein paar Tagen ein bisschen in unity rum und habe heute gelernt, dass es mit dem recht neuen DOTS in unity datenorientiertes programmieren gibt. Ich habe das zugegebenermaßen noch nie gemacht, wäre also eine gewisse Umstellung. Allerdings lohnt sich das in Unity wohl massiv und ich wundere mich gerade ein wenig, dass ich diese Herangehensweise in der Uni so noch nie wirklich gehört habe
Ich denk es ist sinnvoll, möglichst wenig zur Laufzeit interpretieren zu müssen. Aber manuell am Speicherlayout optimieren lohnt sich wohl nur in Sonderfällen. Die meisten sind gut damit bedient, wenn das Programm an sich richtig funktioniert.
Einer der Gründe wieso ich Godot vorziehe.
Ich bin ja neuerdings Admin an meinem Lehrstuhl. Heute habe ich wohl die wichtigste Lektion gelernt. Erstmal fragen ob die Menschen runter und wieder hochgefahren haben. Damit hätte ich mir eine halbe Stunde Radfahren ersparen können.
Meine Liste:
- K
- T
- V