alunduil / alunduil/blog.alunduil.com

The null object took the name the real thing needed

Đang mở
#670 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
idea
Ngôn ngữ chính
Astro
Star
1
Fork
1
Merge trung bình
6 giờ 34 phút
Pull request đã merge (30 ngày)
118

Mô tả

## Spark

`Partir.Agent.Observer` was specced, then shipped as `Partir.Agent.Null` mid-PR. An agent that emits no intent against any scene is a null object, not an observer — and someone typing `partir-glut observe` expects a camera they can point. Renaming it freed `Observer` and immediately surfaced two design questions the shared name had been hiding.

## Why it could be interesting

The first instance of an abstraction is almost always the do-nothing one, and the do-nothing one is almost always named after the abstraction's most obvious real use — because at that point nobody has built the real use yet. The claim: naming the null instance after the concept you haven't implemented is a reliable way to lose the concept, and the tell is that the no-op's name describes a behaviour it doesn't have. Fixing it is cheap and mechanical; the payoff is that the questions the fused name was suppressing become filable.

## Open questions

- [ ] What made it obvious at the moment it became obvious? The spec said Observer for weeks. Something during PR #92 broke the fusion — the post lives or dies on that beat.
- [ ] Is there a general tell, or does this only read as obvious in hindsight? Candidate: the no-op's name is a verb-derived noun describing behaviour the no-op doesn't perform.
- [ ] The word collision worth naming or worth avoiding: this `Agent` is a typeclass for anything driving a client — human, camera, screenshot bot — not the LLM sense in #357 and #565. Does addressing that help the reader or derail the post?
- [ ] Do #94 and #95 need to be resolved before this is writeable, or is "the rename produced two open questions" the honest ending?

## Source material

- qua-world/partir.qua.world#11 → PR https://github.com/qua-world/partir.qua.world/pull/92; the issue body carries the "Update (naming, 2026-08-30)" note explaining the split
- qua-world/partir.qua.world#94 (viewpoint: intent or client-local state) and #95 (screenshot agent — "Raised while naming the null agent during PR #92")
- Commits: "Name the do-nothing agent Null, freeing Observer", "Name what the observer spec asks of step", "Report the agent the observe command becomes"
- Adjacent: #426 (name workflows for when they run, jobs for what they check), #357, #565

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.