Dunkle Magie in Pythons 3.10 Mustervergleich: Ausnutzung von `__subclasshook__`

2025-08-22

Dieser Artikel untersucht die unerwarteten Möglichkeiten, die sich aus der Kombination von Pythons 3.10 Mustervergleich und der Methode `__subclasshook__` abstrakter Basisklassen (ABCs) ergeben. Durch geschickte Verwendung von `__subclasshook__` zeigt der Autor, wie man den Mustervergleich „kapert“, um selbst zu definieren, welche Typen übereinstimmen, und sogar die Übereinstimmung basierend auf Objektattributen, nicht nur Typen, zu ermöglichen. Obwohl er leistungsstarke Funktionen wie das Erstellen benutzerdefinierter Übereinstimmungen demonstriert, warnt der Autor dringend vor der Verwendung dieser Technik in Produktionscode aufgrund ihres unvorhersehbaren und potenziell schädlichen Charakters.

Mehr lesen

Der überraschend tiefgreifende Einfluss „toter“ Programmiersprachen

2025-07-16

Dieser Artikel untersucht den überraschend großen Einfluss historisch wichtiger Programmiersprachen, die nicht mehr weit verbreitet sind, wie COBOL, ALGOL, APL und BASIC. Durch die Betrachtung ihrer Hintergründe, Beiträge und Gründe für ihren Niedergang zeigt der Autor ihren nachhaltigen Einfluss auf moderne Sprachen auf. Beispiele hierfür sind die Datensatzstrukturen von COBOL, der lexikalische Umfang und die strukturierte Programmierung von ALGOL sowie die Array-Verarbeitung von APL. Der Artikel betont die Bedeutung des Studiums der Geschichte von Programmiersprachen und die oft übersehenen Beiträge von Sprachen, die nie allgemeine Popularität erlangten.

Mehr lesen

Die missverstandenen Ursprünge der OOP: Klarstellung

2025-05-10

Dieser Artikel widerlegt das weit verbreitete Missverständnis, dass Alan Kay sowohl die objektorientierte Programmierung (OOP) als auch das Konzept von Objekten erfunden hat. Tatsächlich war die Sprache Simula ein wichtiger Vorläufer der OOP, eine Tatsache, die vom Smalltalk-Team anerkannt wurde. Obwohl Kay den Begriff „Objekte“ prägte, bedauerte er dies später und betonte, dass die Nachrichtenübermittlung die Kernidee der OOP sei. Der Artikel untersucht weiter die einzigartigen Beiträge von Smalltalk zur OOP, insbesondere sein Designprinzip, alles als Objekt zu behandeln, und seinen innovativen Nachrichtenverarbeitungsmechanismus. Der Autor argumentiert, dass die Entwicklung der OOP kein einzelnes Ereignis war, sondern eine Zusammenkunft von Ideen und Bedürfnissen, wobei verschiedene Entwickler die OOP in verschiedenen Kontexten unterschiedlich verstanden und angewendet haben.

Mehr lesen
Entwicklung

Die kuriose Geschichte der JavaScript-Kommentare: Warum `<!--` und `-->` funktionieren

2025-03-12

Dieser Artikel enthüllt die kuriose Geschichte hinter der Verwendung von `` als Kommentarzeichen in JavaScript. Ursprünglich, um die Kompatibilität mit älteren Browsern zu gewährleisten, umhüllten Entwickler ihren JavaScript-Code mit HTML-Kommentaren innerhalb von ``-Tags. Überraschenderweise unterstützen moderne Browser diese Syntax immer noch, aufgrund historischer Browser-Kompatibilitätsprobleme und dem Engagement des Standardisierungskomitees, das „Web nicht zu zerstören“. Der Artikel erklärt, wie diese Syntax funktioniert und warum `-->` nur am Anfang einer Zeile stehen darf.

Mehr lesen
Entwicklung

Anwendung der Kontrollhierarchie in der Softwareentwicklung

2025-03-08

Ein Maschinenbauingenieur stellte dem Autor die Kontrollhierarchie (HoC) vor, ein wichtiges Konzept für die Arbeitssicherheit. Der Autor wendet HoC auf die Softwareentwicklung an und analysiert einen Produktionsdatenbankvorfall, der vor zehn Jahren durch eine fehlerhafte Abfrage verursacht wurde. Der Artikel untersucht die Anwendung von Eliminierung, Substitution, technischen Kontrollen, administrativen Kontrollen und persönlicher Schutzausrüstung (PSA), um Risiken in der Softwareentwicklung zu mindern. Die Vor- und Nachteile sowie die Grenzen jedes Levels werden diskutiert – beispielsweise können zu strenge Zugriffsbestimmungen die Problemlösung verlangsamen. Der Autor betont die Notwendigkeit, die Auswirkungen von Kontrollen auf die Systemsicherheit ganzheitlich zu betrachten und neue Risiken zu vermeiden.

Mehr lesen
Entwicklung