MeatballWiki | RecentChanges | Random Page | Indices | Categories

Popular philosophical principle, much cited in English speaking countries (maybe overused). Little talked about in many other countries.

Latin original:

"Entia non sunt multiplicanda praeter necessitatem"
(see also Wiki:OccamsRazor and WikiPedia:Occam's_Razor)

Possible translations / interpretations:

OccamsRazor is a philosophical principle that has mathematic precision - it's never wrong in science. In a way it is constitutional for science.


There are various parallels to OccamsRazor, applying it (or mis-applying it) to wider contexts. Such pieces of advice are purely pragmatic: they may be right or wrong, depending on the circumstances. These are not logically derived from Occam's Razor - just similar statements from other fields.

Don't multiply words without a need, either. When there are many words, transgression is unavoidable, but he who restrains his lips is wise. Even apart from the greater risk of offense, it is good to be concise, and to avoid complexity and jargon if possible. It's better to express something short, clear and in simple words. Cf DiminishingReplies.

Stronger statements are "Small is beautiful", KeepItSimpleStupid, and WorseIsBetter. In other words, avoid multiplying entities even when this is necessary. In software, the advice Wiki:YouArentGonnaNeedIt discourages multiplying entities even if the programmers think they might be necessary later on. In parallel, the advice Wiki:OnceAndOnlyOnce suggests replacing two near-identical pieces of code with a single entity that performs both tasks.

But there are misunderstandings

No agreement on YAGNI

It is said "Wiki:YouArentGonnaNeedIt". No, this completely misses the point. A feature is not a theory, it adds an advantage at a cost. It may be worth the effort or not, but it has nothing to do with OccamsRazor.

No, it doesn't miss the point. In theory, a feature adds an advantage at a cost. In practice, some features add no advantages. "Don't add features without need" is a clear parallel to "Don't postulate entities without need".

About YAGNI. During my initial time at WardsWiki, the features "page deletion" was considered YAGNI by Ward. Even at that time OccamsRazor wouldn't have applied, because these additional features clearly have an advantage, but it wasn't worth the effort for Ward, which is understandable. A number of people had already tried to talk him into it, without success. Then I started to read through the (then) 13500 pages and after a few thousand pages I had marked about 200 as misspelled (targeting for about 800-1000 misspelled pages). At that point Ward implemented page deletion (did it now seem worth the effort?). A similar story goes with RecentEdits?. This is just a story, but I think it shows that YAGNI is not objective, but subjective. YAGNI has to do with efforts and priorities in the light of experience. OccamsRazor works on the way we structure knowledge, it is absolute. A shallow page is always a shallow page, no matter how cheap the page space is or how easyly we can create or delete it. -- HelmutLeitner

Sure, there are cases when someone says "YAGNI" where Occam's doesn't apply - but equally there are cases when it is. Programs are castles in the sky, just like knowledge or theories, and it's entirely possible to have a subcomponent of a program that has no effect visible to the user whatsoever. Equally, it's possible to have two programming designs that achieve precisely the same result, where one of them has ten times more subcomponents than the other. I think the application of OccamsRazor to such cases is obvious. --MartinHarper

I agree with you that there is a lot of similarity. I agree that in a given situation one could often argue with OccamsRazor or with YAGNI, there is a substancial overlap. But my point is: YAGNI is not based on OccamsRazor. If you can, please derive it in a logical proof. -- HelmutLeitner

I think we're in Wiki:HeatedAgreement here. YAGNI is not OccamsRazor, nor is it logically derived from it. However, there are similarities, and it is in some sense parallel advice.


MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions | Search MetaWiki