Tach!
okay ich habs verstanden und für supercool befunden Das macht aus 4 übersichtlichen codezeilen, eine einzige übersichtliche Codezeile
Das ist mMn in der Praxis gehupft, wie gesprungen. Die Trinitätsschreibweise führt im ersten Schritt nämlich oft zu sehr langen Zeilen.
Ich verstehe dein Anliegen, aber daran ist nicht der conditionale Operator schuld. Wenn man sehr lange Zeilen hat, sollte man eher darüber nachdenken, kürzere Terme zu erstellen, beispielsweise durch den Einsatz von Funktionen.
Es ist einfacher zu erkennen, dass nur eine Variable gesetzt werden soll, wenn es nur eine Variablenzuweisung gibt, statt zwei Zuwesungen an dieselbe Variable in unterschiedlichen Blöcken.
In Sprachen, in denen jeder Block einen eigenen Scope darstellt, ist zudem if-else nachteilig, weil die Variable zusätzlich außerhalb deklariert werden muss, damit sie nach dem if-else noch existiert. Beispiel Javascript, auch ohne {}-Klammern bilden sich da zwei Blöcke:
let foo;
if (bedingung)
foo = 42;
else
foo = 23;
console.log(foo);
Selbst wenn sich der Wert von foo nicht mehr ändert, muss man let statt const nehmen. Mit dem conditionalen Operator gibt es keine separate Deklaration, und man kann let oder const nehmen, so wie man es fachlich braucht.
const foo = bedingung ? 42 : 23;
Da muss man dann im Sinne der Lesbarkeit und ggf. "Druckbarkeit" (hierzu zähle ich auch HTML und PDF, ...) die Zeile wieder -irgendwo- umbrechen und muss Gehirnschmalz darauf verschwenden, an welchen Stellen dies erlaubt ist.
Letzteres halte ich nur bei Sprachen mit optionalem Anweisungsbegrenzer (Javascripts Semikolon) für bedingt problematisch.
Am Ende hat man dann doch wieder drei Zeilen, die man dann später nicht mehr unbedingt als zusammemgehörig erkennt.
Das Problem der einfachen Lesbarkeit löst sich nicht wirklich, wenn man viel Code nur am selben Platz in anderer Form notiert. Wenn die Erzeugung der Werte sehr aufwendig ist, stört das generell den Lesefluss. Da hilft Code auszulagern besser.
Der (zeitliche) Abstand zum Projekt darf die Verständlichkeit nicht mindern. Für jede weitere "Codierung" aka Kurzschreibweise muss man dann erfahrungsgemäß eine Kommentarzeile mehr spendieren.
Das kann ich so nicht erkennen. Du würdest damit die Syntax kommentieren. Um Syntax zu erlernen, gibt es die Tutorials und die Dokumentation der Programmiersprache. Wenn es einen Erklärungsbedarf gibt, dann liegt das sicherlich nicht an der Syntax.
Schreibfaulheit rächt sich meistens genau zu der Zeit, an der man gerade keine davon hat.
Das Problem sortiere ich bei if-else vs. ?: nicht unter Schreibfaulheit ein, sondern als generelles Problem, seinen Code erfassbar zu schreiben.
dedlfix.