Programación Genérica



En este articulo, veremos que cosa es la "Programación Genérica" y lo mas importante: ¿para qué nos sirve?

Definición

Segun la wikipedia:

La programación genérica es un tipo de programación que está mucho más centrada en los algoritmos que en los datos. La idea de esta forma de programar pretende generalizar las funciones utilizadas para que puedan usarse en más de una ocasión.

Esto se consigue parametrizando lo máximo posible el desarrollo del programa y expresados o devueltos de la forma más simple posible, evitando detalles concretos.

Como el nombre de la palabra compuesta lo dice: Programación Genérica, signifíca una programación que no dependa de datos fijos, cuyo algoritmo funcione de manera "genérica" para todo tipo de ocaciones.

Si hacemos una analogía: es como tener una máquina de hacer helados:
Con la programación No-Genérica (la clásica) tendriamos una máquina por cada sabor.
Con la programación Genérica, podriamos utilizar la misma máquina para crear diferentes sabores. Y las posibilidades son infinitas!

Para explicar esta idea, veamos unos ejemplos bien concretos:

PHP:
function saludar_eduardo() {
  return "Hola Eduardo";
}

function saludar_pedro() {
  return "Hola Pedro!";
}

function despedir_eduardo() {
  return "Chau Eduardo! que la pases bien.";
}

Aplicando el principio de la programación genérica, lograriamos algo asi:

PHP:
function saludar(nombre, despedir) {
  if(despedir) {
    return "Hola"+nombre;
  }else{
    return "Chau"+nombre+"! que la pases bien.";
  }
}

El ejemplo es bien concreto.

¿Que ventajas ofrece este tipo de programación?

  • Reutilización del código
  • Mejorar el mantenimiento del código
  • Facilidad para encontrar errores y debuguear
  • Concentrarse más en la lógica que en los datos

Otra ventaja?

La reutilización del código tanto dentro del mismo proyecto, como para otros proyectos!
Esto es extremadamente útil ya que, solo necesitarias programar un algoritmo una vez en tu vida, y lo reutilizarias (Sí, haciendo copy paste) en otros proyectos.

¿Que pasa si el algoritmo es muy grande y complejo... se puede hacer genérico?
Divide y vencerás: La idea es dividir el algoritmo en partes más simples tantas veces como sea necesario, para volverlo fácil de comprender y de generalizar.

Como palabras finales, cabe destacar que los "Templates" en C++ siguen este principio de generalización, al permitirnos crear estructuras de datos que no dependen de tipos de datos específicos. Pero sobre este tema se hablará en otra ocación.

Y tu... ¿estas familiarizado con este tipo de programación?

digg it
meneame

Guardar / Compartir este Artículo

Del.icio.us StumbleUpon Fresqui Technorati Barrapunto Google
Juan Antonio28 de Abril

Hola,
Me gustaría saber si existe actualmente algún proyecto de lenguaje usando programación genérica.
Si es así, me apunto.
Un saludo

Hola Juan Antonio,
La programación generica es una "forma de programar" y no depende de ningún lenguaje en específico.

Se trata de programar (en el lenguaje que más te guste) de manera "genérica" concentrandose mas en la lógica que en los datos.

Gracias por comentar, cualquier duda que tengas pregunta ;)

rabanomen4 de Agosto

Juan Antonio, JAVA actualmente permite el modelo de programación genérica

Dejar un comentario

Powered by WP Hashcash