The result of a controversial topic that tends to create long, recurring debates in wikis or
UseNet groups in which both sides can't reach a mutual agreement. Often cause
FlameWars.
A war declared or fought for a religious or high moral purpose, as to extend or defend a religion.
How does one distinquish between a HolyWar and a PerpetualArgument?
Taken unscrupulously from
EricRaymond's
JargonFile.
-
- holy wars n. [from Usenet, but may predate it; common] n. flame wars over religious issues. The paper by Danny Cohen that popularized the terms big-endian and little-endian in connection with the LSB-first/MSB-first controversy was entitled "On Holy Wars and a Plea for Peace". Other perennial Holy Wars have included EMACS vs. vi, my personal computer vs. everyone else's personal computer, ITS vs. Unix, Unix vs. VMS, BSD Unix vs. USG Unix, C vs. Pascal, C vs. FORTRAN, etc., ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy war most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. See also theology.
One theory is that holy wars result when people accidentally or purposely make their
PersonalChoiceElevatedToMoralImperative.
Some holy wars on Wiki:
- OperaVsFirefox
- EmacsVsVi (I can't believe this wasn't on the list!)
- JavaVsCpp
- JavaVsSmalltalk (A variation of static vs. dynamic typing? - BenefitsOfDynamicTyping)
- CsharpVsJava
- DvorakKeyboard
- ComVsCorba
- PythonVsPerl
- PythonVsRuby
- KdeVsGnome
- VideoAddiction / GaveUpOnTelevision / TvShowsWorthWatching?
- HungarianNotation / MisunderstandingHungarianNotation
- Any topic with "Microsoft" in the title ( http://c2.com/cgi/wiki?search=Microsoft ) {I don't think anyone "loves" MS or their products. It is mostly about GoodEnough versus really stinky.} - Examples: ThingsWeLoveAboutVbClassic, ThingsWeHateAboutVbClassic
- Any topic about Lisp or EssExpressions.
- HeInventedTheTerm vs HeDidntInventTheTerm
- TabsVersusSpaces, SyntacticallySignificantWhitespaceConsideredHarmful
- PatternBacklash
- ObjectRelationalPsychologicalMismatch (relational V. OO)
- Declarative versus Imperative - MythOfMetadata, DataAndCodeAreTheSameThing
- AccessorsAreEvil (TellDontAsk) vs. OneResponsibilityRule
- Just about anything ConsideredHarmful
- Value of XML (links to follow)
- the value of source-code comments and design documentation (see ToNeedComments and AppropriateTechnicalDocumentation)
- CoordinateVersusNestedGui - perhaps related to WYSIWYG versus text (WhyWhatYouSeeIsWhatYouGetWorksNot)
- RealWorldModel - OO design should/shouldn't closely model the real world
- MultipleInheritance - good or bad
- SemiColon in computer languages
- The merit of exceptions (ExceptionsAreOurFriends vs. AvoidExceptionsWheneverPossible)
- Planning versus "organic" growth (ExtremeProgramming)
- Database key generation source - AutoKeysVersusDomainKeys
- Level of up-front engineering - YagNi, GoldPlating, FormalMethodsAndPatterns
- Size of "named units" - LongFunctions, LongMethodSmell, RavioliCode
- "Purity" - Whether the pure concept should be adhered to at all costs or whether practical "shortcuts" are permitted.
- Code Generation - CodeGenerationIsaDesignSmell
- Case statements versus subtyping - PolymorphismVsSelectionIdiom
- Strings: Embedded strings vs API's - NoStrings, PerniciousIngrownSql, ExpressionApiComplaints, PowerOfPlainText
- The existence or objectivity of GoldenHammers. Some say SoftwareIsArt, others say it is known.
- Utility of Nulls and Nils (CategoryNull)
- Dynamic or "loose" versus static or "tight" typing (CategoryLanguageTyping)
- CriticizeBluntly - Does it work? What is the definition of "blunt", etc.
- Practitioners Vs. Academics - PractitionersRejectFormalMethodsDiscussion
- MonolithicKernelvsMicrokernel? - Examples: SplitOperatingSystemIntoServices
- This may be an instance of a bigger issue: One Grand Language/Architecture versus Linked Specialized Services. Many of our "type", "database", and "GUI" debates circle around this, variations of a GodLanguage versus services not tied to specific app programming languages.
Definition Battles:
Off-topic battles
- StarTrekVsBabylonFive? (another HolyWar: whether TV is off topic)
- Mountain Dew versus Coffee
- Vi vs Emacs
- System V vs BSD
- Jesus vs Vishnu, in a welterweight match
- LiberalMind?
- DeathRow?
- EmbryonicStemCellResearch?
- The text-ification of the Bionic Man "power" sound (70's TV). Some say it's similar to "Ch-ch-ch-ch", others say more like, "Rim-rim-rim-rim", and others "Fft-fft-fft-fft".
I propose splitting this list into specific technologies/languages and more general philosophical debates. What say you'll?
It doesn't count as holy war the instances where
TopMind is handwaving by himself against the rest of the world.
- Hand waves are just reinventing side flags.
I couldn't handwave against good objective evidence if it existed. It doesn't. Instead, your kind tends to mistake personal preference for objectivity. --top
- I recommend waving side flags instead of waving hands.
Tragically the term is reverting to its original meaning, instead of being used as a metaphor.
Crusade, Jihad; the only difference is who holds the scimitar. So you noticed.
The most annoying thing about holy wars in a forum such as Wiki is that they tend to spread into every page. Every topic related to text editing becomes a vi vs Emacs discussion; every topic about programming becomes a Java vs C++ discussion; every topic related to Windows software development becomes a tirade about the evils of the
MicrosoftCorporation, etc. If you want to advocate or discuss the relative merits of technologies, tools, and methodologies,
please confine your contributions on the pages devoted to those purposes, instead of putting them everywhere. If you see out-of-place holy-war contributions, please move them or refactor them so that they are in some way related to the whole of the page where they reside.
In my opinion, a brief mention is fair. If it grows beyond that, then it should be moved to the relevant ordinance testing area topic.
It is my opinion that in many cases the benefits of something are subjective. What helps or bothers person A may not help or bother person B. The problem is that it is hard to discuss technical issues if such psychological issues keep creeping in.
SoftwareEngineering is more about psychology than math. We all know that means WRT solving a
HolyWar.
People with different viewpoints on a
HolyWar topic tend to view their "opponents" in different ways. Usually they fall into one of these categories:
The other person disagrees with me because:
- They are poorly educated or ill-informed.
- Just differences in personal preferences; no two brains are alike.
- They just don't "get it" and need a complete brain overhaul, not just incremental education.
Let's try to keep one thing in mind here, folks: all of us are entitled to our own professional assessment of these matters, but we are not entitled to our own set of facts. If we refuse to acknowledge established research and factual test conclusions then we're not arguing in good faith, are we? Let's avoid that.
For something different (an image) see the page on
TheAdjunct with the same name.
See:
PersonalChoiceElevatedToMoralImperative,
TrollDefinition,
BenefitsAreSubjective,
EverythingIsa,
WikiWarrior,
MostHolyWarsTiedToPsychology,
LaynesLaw
CategoryJargon,
CategoryProblem