Tag
Bjarne Stroustrup's rule states that for new features, programmers prefer explicit syntax, but once established, they prefer terse notation. The article explores examples in Rust and Python and discusses implications for language design and teaching.
Reproduced emails from Alan Kay in 2003 clarify the original meaning of "object-oriented programming" — centered on messaging, data hiding, and a biological/cell metaphor, with inheritance intentionally omitted initially.
A tutorial on type inference covering the Damas-Hindley-Milner type system, unification, and related concepts, with OCaml code examples.
Argues that TypeScript is a poor default for the AI era due to its unsound type system, which fails to catch errors in AI-generated code, and likens it to Paul Graham's Blub paradox.
The second edition of 'The Garbage Collection Handbook' updates the authoritative reference on automatic memory management, covering new hardware, software, and algorithm developments.
This paper presents Hybrid ClojureScript, a programming language that allows developers to mix visual and textual syntax for domain-specific expressions, preserving composability and static reasoning.
At the June 2026 C++ standards committee meeting in Brno, three papers enabling lifetime-end pointer zap were voted into C++29, solving a problem since the 1998 standard, and progress was made on forbidding out-of-thin-air (OOTA) values in the draft standard.
The article explains the basics of type inference for anonymous records in statically typed languages, using type theory notation and Haskell as the implementation language.
Peter Norvig's classic tutorial on implementing a Scheme interpreter in Python, explaining the core concepts of language interpretation and evaluation.
An interview with Claude Roux, maintainer of LispE and TAMGU, discussing his career in computational linguistics, symbolic AI, and the limitations of rule-based NLP systems.
Xavier Leroy announces a new book on control structures in programming languages, covering from goto to algebraic effects, available as a free preview under CC license.
The author argues that the resurgence of static typing in the 2010s was due to improved type systems (e.g., TypeScript, Haskell, Rust) that offer nullable type handling, sum types, and type inference, contrasting with poor static typing in earlier languages like Java and C++98.
The article argues that disallowing trailing separators (like commas) in programming languages and data formats makes code editing more error-prone and less consistent, and advocates for language designs that permit trailing separators for better developer experience.
The article explores why TypeScript has become the dominant language for building AI agents and agent frameworks, questioning why alternatives like Rust or C++ aren't more prevalent.
A detailed catalogue of C++ standard library features that have been formally deprecated, informally discouraged, or are effectively broken but cannot be fixed due to ABI constraints, spanning from C++11 to C++26. The article argues a consistent pattern of the C++ committee shipping replacements for its own features, including a benchmark showing 58x P99 latency difference between Rust and C++ standard library containers.
This article introduces a new approach to memory safety based on linear types and abstract interpretation, aiming to eliminate common bugs like use-after-free and memory leaks more ergonomically than Rust.
This article explains how Go handles experimental features, their lifecycle, and examples of recent experiments.
The article draws parallels between the security flaws in C/C++ and those in Verilog, arguing that the hardware description language's design leads to bugs and that the industry should invest in safer alternatives, similar to the push for memory-safe programming languages in software.
An educational blog post explaining the concept of algebraic effects in programming, using analogies to try/catch and async/await, and discussing their potential relevance to React and future programming paradigms.
A blog post from 2015 that presents a hypothetical programming language where functions are colored red or blue, using this metaphor to critique the separation between synchronous and asynchronous functions in languages like JavaScript.