A Philosophy of Software Design Vs. Clean Code
Posted4 months agoActive4 months ago
github.comTechstory
calmneutral
Debate
30/100
Software DesignCode QualityProgramming Principles
Key topics
Software Design
Code Quality
Programming Principles
A GitHub repository compares 'A Philosophy of Software Design' with 'Clean Code', sparking a discussion on coding practices.
Snapshot generated from the HN discussion
Discussion Activity
Light discussionFirst comment
5h
Peak period
1
5-6h
Avg / period
1
Key moments
- 01Story posted
Aug 31, 2025 at 10:06 AM EDT
4 months ago
Step 01 - 02First comment
Aug 31, 2025 at 3:28 PM EDT
5h after posting
Step 02 - 03Peak activity
1 comments in 5-6h
Hottest window of the conversation
Step 03 - 04Latest activity
Aug 31, 2025 at 3:28 PM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45083238Type: storyLast synced: 11/17/2025, 10:01:44 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
UB dislikes comments because they may differ from what the code actually does, and JO likes comments because they say some things not explicitly written in the code.
Their two ways can be reconciled as follows: I'd say comments and code co-describe what the developer's intentions are to the human reader, but since the comments are ignored by the machine, only the code has "normative" nature (to use the language of standards/regulations). Ironically, in their debate they both ignore what Knuth considers his greatest accomplishment of his career: literate programming, which is a single view/representation that can be automatically compiled to serve its two audiences: human (LaTeX) and machine (code, obviously no comments needed as they are ignored): literate programming also solves one key point expressed by UB, namely that to understand comments, you must already have understood how the code works. This is not true for literature programming. To paraphrase Knuth quoting Wikipedia:
Knuth would not like comments or JavaDoc, as both are ways inferior to literate programming, a way that explains the origins, assumptions, design rationale and construction of the method step by step, and therefore explains why the code looks like it looks, from the author's original motivation.