I termini debug e antibugging sembrano essere ampiamente usati per riferirsi a strumenti, misure e schemi di progettazione sbarazzarsi di bug.
Dopo aver letto il Paradigmi di programmazione di Intelligenza Artificiale: Case Studies in LISP comune Non ero sicuro della differenza tra questi termini:
It is a good idea to include antibugging checks in your code in addition to doing normal debugging. Antibugging code checks for errors and possibly take corrective actions.
E inoltre:
It may seem like wasted effort to spend time writing assertions that (if all goes well) will never be used. However, for all but the perfect programmer, bugs do occur, and the time spent antibugging will more than pay for itself in saving debugging time. Whenever you develop a complex data structure, such as some kind of data base, it is a good idea to develop a corresponding consistency checker. A consistency checker is a function that will look over a data structure and test for all possible errors. When a new error is discovered, a check for it should be incorporated into the consistency checker. Calling the consistency checker is the fastest way to help isolate bugs in the data structure. In addition, it is a good idea to keep a list of difficult test cases on hand. That way, when the program is changed, it will be easy to see if the change reintroduces a bug that had been previously removed. This is called regression testing, and Waters (1991) presents an interesting tool for maintaining a suite of regression tests.
E qui è un altro esempio di una conferenza intitolata "Linguaggio di programmazione Paradigms "presso l'Università di San Francisco (Chris Brooks, 2004). Lì, come @ Max3k ha sottolineato in questo post,
it seems that "antibugging" is a term that covers many good practices and/or the resulting code. It mentions defensive programming, throwing and catching exceptions, named exceptions, (unit) testing. Also according to the source just using a strongly typed langue over a dynamic one, would mean that you are "antibugging".
Ancora un altro riferimento, molte grazie a @CandiedOrange:
Antibugging means "defect avoidance", as opposed to debugging, which means "defect removal".
C through design - George E. Defenbaugh, Richard Smedley Franklin, Beedle, 1988 p16
Quindi ho cercato su Google per avere una risposta precisa e obiettiva ma non sono riuscito a ottenere una risposta autorevole, né ho molta esperienza su questo (come fino ad ora ho fatto solo progetti "domestici").
Puoi dirmi la differenza tra i due termini per distinguerli e usarli correttamente?
DISCLAIMER Antibugging sembra non essere ancora accettato globalmente come pensavo. Ma ci sono prove che alcune persone famose usano entrambi i termini, sia nel mondo accademico che in quello industriale. Penso che questo giustifichi la domanda e mostri che questo non è basato sull'opinione pubblica.