El vocablo latino duplication llegó a nuestro idioma como duplicación. Se trata del acto y el resultado de duplicar: multiplicar algo por dos o hacerlo doble.
Por ejemplo: «Para minimizar las congestiones en el tráfico de la zona céntrica, el gobierno municipal anunció la duplicación de la calzada de la Avenida Centenario», «Tengo que hacer la duplicación del DVD cuanto antes: no quiero perder ese material por ningún motivo», «Según varios economistas, la duplicación de la tarifa de electricidad encarecerá los precios de todos los bienes producidos en el país».
Se denomina duplicación de ADN al proceso que posibilita que el ácido desoxirribonucleico se duplique, sintetizando una copia exacta. Esto quiere decir que, a partir de una molécula de ADN, se generan dos réplicas.
También se llama duplicación a una mutación genética que se produce cuando, en la secuencia del ADN, se repiten uno o varios nucleótidos. Expresado de otro modo, la duplicación cromosómica es un fenómeno que implica la repetición de una parte del cromosoma.
Esta mutación se produce en el marco de la duplicación de ADN. Un sobrecruzamiento erróneo o una cierta reorganización estructural pueden provocar el trastorno. La duplicación cromosómica no se observa a simple vista: requiere de estudios moleculares y citogenéticos.
En el terreno de la programación informática, por último, la duplicación de código se produce cuando una misma secuencia de código fuente aparece más de una vez en un mismo programa. Dicho tipo de secuencia recibe el nombre de clon y puede causar diversos inconvenientes, como un mayor tamaño del archivo.
Los desarrolladores de programas consideran la duplicación una situación «indeseable», ya que acarrea complicaciones innecesarias y se opone al concepto de optimización. Cabe mencionar que dos porciones de un archivo de código, o bien del código de un programa entero, pueden ser muy parecidas sin llegar a ser consideradas clones: en estos casos, se habla de una «similitud coincidente».
Para que dos secuencias de código puedan entrar en la categoría de la duplicación se tiene que cumplir al menos una de las siguientes condiciones:
* que sean iguales al cien por ciento, sin excepción;
* que sean idénticas una vez que se ignoran los comentarios y los espacios en blanco;
* que todos sus tokens (componentes léxicos que poseen un significado coherente en un determinado lenguaje de programación) sean idénticos;
* que se cumpla el punto anterior aunque con ciertas variaciones ocasionales;
* que sean idénticas en funcionalidad.
Dado que la duplicación de código es considerada tan negativa por los programadores, resulta difícil entender por qué alguien incurriría en esta práctica. Por lo general, se asocia con la acción de «copiar y pegar», y se da en proyectos muy descuidados, generalmente en prototipos, donde no se busca la optimización sino la consecución de resultados en el menor tiempo posible.
Los expertos en programación critican de perezosos a quienes cometen este error, ya que el estilo de desarrollo recomendado se centra en reutilizar el código. Es importante señalar que el código duplicado vuelve más difícil su comprensión por parte de terceros, pero también del propio creador.
Veamos un ejemplo práctico de cómo evitar la duplicación de código. Supongamos que estamos desarrollando un procesador de texto y deseamos incluir una herramienta para copiar el formato de una cadena de texto a otra (cada una puede constar de uno o más caracteres). Por lo general, los programas de este tipo permiten hacerlo de dos maneras: copiando el formato una única vez, o bien manteniendo el botón asociado activo para realizar tantas copias como deseemos hasta finalmente desactivarlo.
En el código, lo ideal sería crear una función en la cual se lleven a cabo todos los pasos para copiar el formato de una cadena, y luego «llamarla» desde cada parte del archivo en la cual la necesitemos, ya sea para la copia única o la múltiple. Sería un desperdicio de espacio duplicar esta porción de código en cada una de dichas secciones.