Functional Classes in Clojure
Explains how to implement class-like abstractions in Clojure using namespaces, specs, and functions, without traditional OOP constructs.
Robert C. Martin (Uncle Bob) explores software craftsmanship, clean code, design principles, and professional ethics. Through essays on Clojure, functional programming, OO design, types, testing, and industry culture, it reflects decades of experience shaping modern software engineering.
19 articles from this blog
Explains how to implement class-like abstractions in Clojure using namespaces, specs, and functions, without traditional OOP constructs.
Explores the true definition of a 'class' in programming, critiquing Java/C# overreach and distinguishing classes from namespaces.
A developer reflects on reviving his 40-year-old Space War game, rewritten in Clojure with functional programming principles.
A developer investigates a bug in a Space War game where duplicate bases cause crashes, detailing the debugging process and unit testing.
A developer recounts his lifelong journey with the PDP-8 computer, from teenage exploration to creating a modern iPad emulator and solving Project Euler problems with it.
Explores type modeling in Clojure using a Turtle Graphics program as an example, detailing the spec definitions for a turtle's state.
A veteran programmer recounts his early career from the 1960s, detailing experiences with binary, assembler, and various early computer systems.
Analyzes the problems with if/else/switch statements in code and proposes a polymorphic factory object solution for better architecture.
Guidelines for effective pair programming in software development, covering when to pair, session length, and team dynamics.
A defense of the SOLID principles in modern software development, arguing they remain essential for writing simple, maintainable code.
A software engineer discusses the need for due process in conference codes of conduct, based on personal experience of being disinvited.
A software consultant shares his experience of being disinvited from a tech conference due to political opinions, analyzing the contractual and ethical implications.
A developer compares REPL Driven Design with TDD in Clojure, using a COVID-19 data project to highlight the trade-offs in speed and safety.
A tutorial on Clojure programming, covering basic functions and implementing a prime number sieve as a learning exercise.
A beginner-friendly introduction to Clojure syntax, covering lists, basic arithmetic functions, and using the REPL.
An open letter to the Linux Foundation criticizing its public handling of a Code of Conduct case involving a conference attendee.
A historical look at how programmers and computer scientists have been portrayed in popular culture, from 1950s sci-fi movies to modern media.
A personal story about using software and technology to reconnect family through old photos and DNA analysis, highlighting software's vital role in modern life.