Zig macht es wirklich schwer, eine virtuelle Funktion auszuführen. Was anfangs super nervig ist. Man kann nicht einfach ein Interface erstellen und dann eine Implementierung so trivial machen, wie man es in Golang oder den meisten anderen Sprachen könnte. Aber das ist ein Feature, kein Bug. Man kann virtuelle Funktionen mit comptime machen. Aber Zig macht es offensichtlicher, dass es negative Handelsmöglichkeiten gibt. Zig macht das Schreiben von einfacheren Code, der keine virtuellen Funktionen verwendet, zu deinem Standardweg, und als Ergebnis verwendest du Interfaces und virtuelle Funktionen nur, wenn es extrem wirkungsvoll und den Aufwand wert ist. Es stellt sich heraus, dass man in vielen Codes fast nie Interfaces benötigt.
Ich habe vergessen zu erwähnen, dass ich übrigens zustimme. Das ist mehr wie der Silberstreif am Horizont, der es von "wtf" zu "eigentlich ist es eine interessante Denkweise, um diese Abstraktion abzulehnen" gemacht hat. So ähnlich wie der Mangel an Enums in Go oder der Borrow Checker in Rust. Oder objektorientierte Sprachen. Insgesamt mag ich diese Dinge nicht, aber ich habe irgendwie etwas gelernt, indem ich die Perspektive der Programmiersprache übernommen habe.
@norswap Übrigens ist mir aufgefallen, dass mein Beitrag nicht erwähnt, dass ich insgesamt Schnittstellen möchte. Ich spreche hier nur über die positiven Aspekte, aber meiner Meinung nach gehen Schnittstellen bei Zig ohne versteckte Kontrollflüsse einen Schritt zu weit.
794