¿Qué significa abstracción?
La abstracción es un principio fundamental en algunos tipos de informática. Es un aspecto clave del diseño de los lenguajes de programación orientados a objetos y de las interfaces de programación de aplicaciones. También es una de las ideas menos comprendidas en programación, en parte por razones semánticas.
La abstracción se define comúnmente como la extracción de información relevante de un conjunto de datos mayor, donde la utilización de la abstracción permite a los ingenieros y a otros simplificar un código base.
Definición de abstracción
La razón por la que esto resulta confuso para mucha gente es que la abstracción no «suena» como lo que es, semánticamente. Suena a hacer algo más vago, porque así es como lo usamos en el lenguaje general.
Sin embargo, en informática, abstracción significa normalmente simplificar y separar la señal del ruido para que la programación sea más eficiente y eficaz.
Programación orientada a objetos
Código
En uno de los ejemplos más destacados de abstracción en informática, en la programación orientada a objetos, la abstracción suele funcionar mediante el uso de objetos en el código. Estos objetos, como contenedores portátiles de atributos y estructuras de código repetibles, abstraen la funcionalidad que, de otro modo, podría programarse de forma lineal.
En otras palabras, el vehículo de la abstracción son los objetos en el código, que toman un montón de código subyacente y lo hacen portátil y repetible.
Clase
Otro vehículo de abstracción en la programación orientada a objetos es la clase. Las clases de objetos estratifican aún más el principio de uso repetible y proliferación automatizada del código.
Por ejemplo, en esta guía de fácil uso para los no aficionados a la tecnología en Stackify, el escritor habla de cómo una cafetera es un buen ejemplo de cómo la programación orientada a objetos utiliza la abstracción para quitar gran parte del trabajo intensivo de los hombros del programador.
En lugar de crear un objeto virtual como una cafetera desde cero, programando a mano cada línea de su funcionalidad, los ingenieros pueden invocar al objeto «cafetera» y conectar «granos» y «tazas de café», etc., para obtener el mismo resultado con mucho menos trabajo.
De hecho, la abstracción que funciona en la programación orientada a objetos es una forma excelente de mostrar la fuerza con que estas ideas apoyan los «mundos» virtuales: cuando los programadores pueden crear todo tipo de objetos virtuales con sus propios atributos, pueden modelar con mayor eficacia el mundo real, el mundo físico, y al mismo tiempo, optimizar la eficacia de la hora de trabajo de un programador.
Ambas son capacidades apasionantes que la POO aportó al mundo de la tecnología.
Interfaz de programación de aplicaciones
Otro ejemplo moderno de abstracción se ilustra en la interfaz de programación de aplicaciones (API), tan frecuente en los sistemas multiplataforma.
La API es una forma clave de proporcionar esa información de abstracción para que terceras partes externas no necesiten saber tanto sobre una base de código inherente.
En un sentido muy simple, las API son «conectores»: las partes utilizarán la API para conectar el código de una aplicación con el de otra, para impulsar conjuntos de datos a través de un entorno multiplataforma y permitir que estos programas colaboren de forma automatizada.
La API, por tanto, funciona como el vehículo clave de la abstracción al incorporar los principios orientados a objetos que muestran al «programa exterior» lo que hace el «programa interior».
Para terminar, la abstracción es simplemente el proceso de hacer que la información del código base sea más versátil simplificando cómo se representa en sistemas externos. Sin embargo, esto ha dado lugar a avances tecnológicos masivos que han precedido a otros tipos de cambios fundamentales, como el avance hacia la virtualización de las redes.