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 FlameWar''''''s. 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?'' * How about PerpetualArgument could be lot more civilised, and can even have a amicable AgreeToDisagree scenario. ---- 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!)'' * NanoVsEmacs * 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 * RatioWar - Dispute of quantity or size of one unit in respect to another ** LongFunctions - lines per function ** LongMethodSmell - lines per function ** RavioliCode ** FearOfAddingTables - columns per table * "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 GoldenHammer''''''s. Some say SoftwareIsArt, others say it is known. * Utility of Nulls and Nils (CategoryNull) * Dynamic or "loose" versus static or "tight" typing (CategoryLanguageTyping, BalancingDisciplineAndAgility) * CriticizeBluntly - Does it work, or is it that RudenessFails? What is the definition of "blunt", etc. * Practitioners Vs. Academics - PractitionersRejectFormalMethodsDiscussion * Software design/maintenance is mostly a soft-science (such as psychology) versus a hard-science (math, logic, physics, etc.). * PurposeOfProgramming - What factors should we try to optimize? * Long variable/object names versus short and/or abbreviated names. * 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: * "Syntax" * "Domain Specific" Language * OOP - NobodyAgreesOnWhatOoIs * "Code" (programming code), esp. when distinguished from 'data' * "Types" (Either too vague or too complex) - WhatAreTypes, AlternativeTypeDefinitions * "Storage/Persistence" * DefinitionOfLife - Marginally related to IT, but an interesting thought exercise * "Data" - DataAndCodeAreTheSameThing * WhatIsModularity * WhatIsIntent 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. "Your kind," quotha. Thanks again, topper, for showing the C2 community your particular brand of delicacy in dealing with what you perceive to be "personal preference," even though it is accepted industry practice. ---- 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's good to have different perspectives on each topic, such as having an agile, functional, OOP, and TableOrientedProgramming perspective of say "ideal module size", what factor to split up modules/code-units by, how long should a "code file" be, etc. Topics do interweave, and this wiki will often reflect that. The trick is to factor the topics to avoid repetition.'' ---- 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. ''To generalize this: If you're using AdHominem attacks, it's almost certainly a HolyWar'' -- DonBranson ---- 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. ''That should go without saying, but the problem here is that our industry is sorely lacking in objective research related to the problems that plague us and/or cause disagreement. Related: ThingsWeAllAgreeOn.'' ---- I want to give a picture of a railway engine called '''Holy War''' (named after a racehorse) but I am not sure of the copyright position if I put the picture here so here is a link to where it can be found: http://en.wikipedia.org/wiki/Holy_War_%28locomotive%29 -- JohnFletcher ---- Most HolyWar participants can be sorted into two groups: those who answer to the theoreticians and those who answer to the machine. See ComputerScienceVersionTwo. ---- See: PersonalChoiceElevatedToMoralImperative, TrollDefinition, BenefitsAreSubjective, EverythingIsa, WikiWarrior, MostHolyWarsTiedToPsychology, LaynesLaw, LanguagePissingMatch CategoryJargon, CategoryProblem