Beyond Booleans
Explores the limitations of the Boolean type in programming and proposes a more expressive type system for logical expressions.
Explores the limitations of the Boolean type in programming and proposes a more expressive type system for logical expressions.
A PHP developer argues for stricter type systems and static analysis to reduce uncertainty and doubt in code, increasing productivity.
A visual history of PHP Data Transfer Objects (DTOs) evolving from PHP 5.6 through modern versions, showcasing syntax improvements.
Explores the technical and architectural reasons why PHP does not yet support generics, examining three potential implementation methods and their challenges.
An in-depth look at generics in PHP, covering their use beyond collections and how static analyzers implement them via docblocks.
Argues that static analysis can replace runtime type checks in PHP, enabling features like generics without performance cost.
A proposal to add generic syntax to PHP for static analysis tools, bypassing runtime performance issues by transpiling.
Survey results analyzing PHP developers' preferences for strict type systems versus dynamic typing, and how team/project size influences these views.
A survey analyzing the relationship between PHP type systems and project size, with results published on the author's blog.
An in-depth look at how type system compilers like TypeScript work, focusing on type checks and building a custom compiler.
Explores how type systems in programming can reduce the need for extensive testing by ensuring correct data input, using a color conversion function as an example.
Discusses the challenges of using PHP arrays as data structures and advocates for using typed classes/objects for better code clarity and IDE support.
An exploration of the Liskov Substitution Principle (LSP) and its critical role in ensuring type safety in object-oriented programming and inheritance.
A guide to building a statically typed functional language, covering type checking, interpretation, and transpilation to JavaScript.
A literature review examining empirical studies on the impact of static vs. dynamic typing on software quality, finding mostly small effects.
Jonathan Shapiro explains why he stopped developing the BitC programming language, citing design issues and lack of funding.