¿De dónde obtuvo su nombre la programación orientada a objetos?

¿De dónde obtuvo su nombre la programación orientada a objetos? / Cultura web

Orientado a objetos No es solo una palabra de moda que escuchas en los círculos de programación. Hay una razón detrás del nombre, pero ¿qué? Únase a mí mientras exploro algunos de los fundamentos de los conceptos de programación y explico solo por qué la programación orientada a objetos impulsa la tecnología detrás de cualquier software moderno y la contrasta con la programación basada en procedimientos y lógica..

Historia de la programación procesal

Cuando se inventaron las computadoras por primera vez, debían programarse explícitamente con instrucciones simples, y “software” no era más que una colección de estos comandos extremadamente simples que se ejecutaban en secuencia.

Inicialmente, estos códigos de máquina requeridos para ser escritos - mueva esto “poco” de esta memoria a esta ubicación, y realice una lógica “y” Opérelo con este bit, etc., pero pronto se resumieron a un nivel superior utilizando BASIC.

Sospecho que la mayoría de ustedes se han topado con BASIC (Código de instrucción simbólica de uso múltiple para principiantes) en la escuela. Es un ejemplo perfecto de un lenguaje de programación de procedimientos. Incluso mi primera incursión en la programación fue usar BASIC en un Amstrad CPC-64. Cada línea comienza con un número de línea, seguido de una instrucción simple en lenguaje legible por humanos.

Dado que los lenguajes de procedimiento siguen los comandos uno tras otro, generalmente es fácil para los humanos seguir lo que sucede en el programa. Sin embargo, también es difícil hacer algo más que un simple ejercicio de aprendizaje, lo que nos lleva a la creación de Programación Orientada a Objetos..

Orientado a objetos?

Con la programación orientada a objetos, la idea es agrupar las variables relacionadas y la funcionalidad en un objeto, lo que representa algún tipo de estructura de datos compleja. Ese objeto puede ser reutilizado varias veces, o extendido para ser algo aún más complejo..

Por ejemplo, un juego puede tener un objeto de jugador. Cada objeto del jugador en el juego representa a un jugador único y único de la vida real en nuestro juego en línea imaginario multijugador. Cada objeto de jugador tiene un apodo, una ubicación actual, un inventario y una velocidad de movimiento. Aunque cada jugador es único, queremos que compartan la misma funcionalidad de nivel base. Cada jugador puede tener un movimiento Función, que hace que el jugador avance X número de casillas. Cada jugador puede tener una tasa de movimiento diferente, pero cuando le decimos que se mueva con un comando, sabrá cómo reaccionar de acuerdo con su propia mecánica de Internet..

¿Por qué es esto útil? Tomando un ejemplo más real, ya que las interfaces gráficas de usuario modernas serían imposibles sin objetos, todos los sistemas operativos proporcionan un objeto Window. Por lo tanto, es fácil tener una nueva “ventana” complete con los botones de cierre y de pantalla completa, y la capacidad de moverse sin tener que programarlo usted mismo. Todo lo que necesitas hacer es decir crear una ventana.

De hecho, el software moderno consta de miles y miles de objetos, no solo ventanas, sino también botones y campos de formulario, y cuadros de alerta (que son en sí mismos un tipo especial de objeto de ventana), y es solo la forma en que están organizados y la lógica de interacción entre ellos que hace que este software sea diferente a otros. Esto significa que los programadores y diseñadores de software tienen la libertad de concentrarse en hacer la mecánica básica de su programa sin tener que reinventar la rueda cada vez.

Otra ventaja del diseño orientado a objetos es que la funcionalidad está separada e invisible entre sí. Así que cuando el jugador presiona la tecla de avance en nuestro juego, llamadas la función de movimiento en el objeto jugador. Si hacemos un pequeño cambio en la forma en que ese movimiento se realiza con precisión dentro del objeto del jugador, como saltar en lugar de caminar, entonces no necesitamos ajustar el oyente del teclado. Todavia llama “movimiento” independientemente de lo que ocurra internamente en el objeto del jugador, para que podamos cambiar la funcionalidad sin interrumpir todo lo demás.

Lo mismo ocurre con los sistemas operativos: si el usuario decide cambiar repentinamente el color de la ventana a rojo, entonces no es necesario que lo detecte y que la ventana también se vuelva roja, todo está integrado en el objeto de la ventana..

Herencia

Una vez que tenemos objetos, también podemos extenderlos y heredarlos para producir objetos más útiles con un comportamiento diferente o funcionalidad adicional. Tú puede Reinventa la rueda - si quieres. En nuestro ejemplo de jugador, tal vez queremos crear un “superhombre” objeto. Superman sigue siendo un jugador, al igual que todos los demás (también quiere un apodo y quiere ser incluido en la misma tabla de clasificación de jugadores), pero en lugar de la acción de movimiento estándar que hace avanzar el objeto del jugador X espacios, queremos vuela en su lugar: mueve 10 cuadrados a la vez sobre la parte superior de cualquier objeto en el camino. Extendiendo el objeto básico del jugador podemos “heredar” toda esa funcionalidad útil sin tener que volver a escribirla de nuevo, pero aún podemos “anular” La función de movimiento con nuestro movimiento especial de superman volando.!

La programación orientada a objetos es una revelación absoluta si solo hubiera experimentado la programación de procedimientos, y personalmente creo que es una pena que no se enseñe un tipo simple de lenguaje OOP en la escuela secundaria..

Una última cosa: lenguajes de programación basados ​​en lógica

Estos son de particular interés para mí, ya que generalmente son más útiles para cualquier cosa relacionada con la Inteligencia Artificial. Los lenguajes de programación basados ​​en lógica, como Prolog, no usan comandos e instrucciones en el sentido tradicional. En su lugar, resolverán un problema dado un conjunto de reglas y condiciones.

Piense en una cena que está organizando para su familia. Tu tía no puede sentarse junto a tu tío porque discutirán; no quieres dos niños sentados juntos porque serán pequeños sinvergüenzas; ciertamente no quieres sentarte entre dos niños. Eso es justo ahí, ese es tu programa Prolog escrito. Ahora simplemente déle una lista de los niños y adultos que vienen a la fiesta, y le dará una lista de posibles sugerencias de asientos.!

Espero que hayan disfrutado de esta introducción a los conceptos de programación para principiantes. Lo siento, no pude entrar en más detalles y, por supuesto, hay un millón de cosas que no he tocado. Si desea obtener más información, hágamelo saber en los comentarios. ¿Quizás podríamos hacer una serie de tutoriales de programación orientados a objetos para principiantes para varios idiomas si hay suficiente interés? Asegúrese de consultar también nuestros archivos relacionados con la programación, con varias herramientas y sitios web de programación.

Crédito de la imagen: ShutterStock

Explorar más sobre: ​​Programación.