Tag
This article defends object-oriented programming by explaining its benefits in creating powerful abstractions for data and behavior, while cautioning against its misuse and arguing for its continued relevance in software development.
This article introduces functional programming from first principles, covering the mathematical definition of functions and the classification of programming language paradigms. It is the first part of a series aimed at imperative programmers.
The article explores the concept of writing code in two dimensions, using vertical chaining and 3-arity infix operators to simplify certain expressions, with practical examples like a chicken coop door controller.
The article explains the conceptual shift required when moving from imperative to declarative programming, using Prolog to illustrate thinking in terms of relations rather than mutable state.
The article recommends Peter Naur's 'Programming as Theory Building,' arguing that programming is fundamentally about constructing and communicating a mental model of the software rather than just writing code.