La programación orientada a objetos tiene sus detractores

Y en pleno 2014 oiga.

En Internet como sabemos, hay de todo. Y en unas de esas andanzas que tuve al comenzar mi nuevo empleo fue preguntarme ¿por qué ? ¿por qué se enseña con tanta vehemencia la programación orientada a objetos (POO)? No soy tan viejo como para decir que hice código en COBOL o en ADA pero sí se que la programación estructurada se presta para optimizar el software y que, unificar funciones con tipos de datos puede resultar un poco extraño se mire por donde se mire.

Dennis Ritchie, falleció el mismo año que Steve Jobs, Ritchie fue el creador del lenguaje C y la mente detras de UNIX

Dennis Ritchie, falleció el mismo año que Steve Jobs, Ritchie fue el creador del lenguaje C y la mente detrás de UNIX junto a Ken Thompson

Clases, métodos, framework, sobrecarga, herencia…” es lo que escucho constantemente en los pasillos de donde dedico ocho horas diarias (espero que por poco tiempo), nadie habla de optimización, nadie habla de recursos, nadie habla de funciones, todo es coger el Visual Studio e inflar lo que se tiene a rabiar, bueno, lo que se busca es algo funcional que pueda cumplir con los tiempos de planificación, cosas que solo le interesan al usuario final y a “los de arriba” como se suele decir.

John Carmack "a veces solo necesitas una función que haga el trabajo"

John Carmack (creador de los motores gráficos IDtech) “a veces solo necesitas una función que haga el trabajo”

Para muchos la POO es un lastre, complica lo que puede ser simple, es ineficiente y consume demasiados recursos, para Joe Armstrong (creador del lenguaje de programación Erlang) unificar  funciones con estructuras de datos es un error fundamental, “… las funciones y las estructuras de datos pertenecen a mundos totalmente diferentes. Las funciones tienen entradas y salidas, dichas entradas y salidas son estructuras de datos que se van modificando por las funciones. Las estructuras de datos son eso, no hacen absolutamente nada“, Armstrong afirma que “dado que las funciones y estructuras de datos son animales completamente diferentes es fundamentalmente incorrecto encerrarlos en la misma jaula“.

Bjarne Stroustrup, creador del lenguaje C++

Bjarne Stroustrup, creador del lenguaje C++

Otra objeción de Armstrong esta en que la definición de tipo de datos estan ligadas a los objetlos lo que lo hace más dificil de manipular, las definiciones de tipo de datos en la POO pertenecen a los objetos, por lo tanto no se puede encontrar toda la definición en un solo lugar “… en la POO tengo que elegir un objeto de base en el que voy a definir la estructura de datos, todos los demas objetos que deseen utilizar esta estructura de datos deben heredar este objeto“. Para Armstrong la programación orientada a objetos es popular solo por cuatro motivos: se cree que es fácil de aprender, se cree que se reutiliza código, fue bien promocionada y se creó una nueva industria del software, aunque según explica no esta tan seguro de las dos primeras.

Linus Torvalds "C++ es un lenguaje horrible"

Linus Torvalds “C++ es un lenguaje horrible”

El caso más duro al respecto es sobre el lenguaje C++ escrito por el danés Bjarne Stroustrup, colegas como Ken Thomson (co-creador del sistema operativo UNIX) ha dicho “… usted escribía algo y luego al día siguiente no iba a funcionar porque el lenguaje cambió . Era muy inestable por mucho tiempo . En algún momento me dije: ‘no más’” Además agrega “… sin duda, tiene sus cosas buenas . Pero en general creo que es un mal lenguaje. Hace un montón de cosas medio bien y que es sólo un montón de basura con ideas que se excluyen mutuamente . Así que no es un buen lenguaje para aplicar algoritmos, para decir:  ‘Lo escribí ; aquí , tómalo.’ Es demasiado grande , demasiado complejo . Y es obvio que esta construido por un comité“.

Theo de Raadt tampoco tiene buenas impresiones de C++

Theo de Raadt (lider del proyecto OpenBSD) tampoco tiene buenas impresiones de C++

Brad Fitzpatrick, desarrollador de OpenID también dijo algo al respecto: “No me importa, la sintaxis es terrible y totalmente inconsistente y los mensajes de error por lo menos en el compilador GCC son ridículos“, aquí dejo otras frases célebres:

C++ es la historia se repitió como tragedia . Java es la historia repite como farsa” – Scott McKay.

C hace que sea fácil de disparar en el pie ; C++ hace que sea más difícil, pero cuando lo hace, es que pierde toda su pierna” – Bjarne Stroustrup.

Yo inventé el término orientado a objetos , y te puedo decir que no tenía C++ en mente” – Alan Kay.

C++ es un insulto para el cerebro humano” – Niklaus Wirth.

Oh , definitivamente. C++ no puede ser el peor lenguaje de programación creado nunca , pero sin duda es el peor de todos para ser tomado en serio” – Mason Wheeler.

C++ es un montón de mierda” – Theo de Raadt.

Siempre que puedo solucionar un problema difícil con C + + , me siento como si hubiera ganado una pelea en un bar” – Michael Fogus.

La gran mayoría de los grandes programas estan escritos en C++ (que no los sistemas operativos), como por ejemplo el motor de búsqueda de Google, el navegador Firefox, también esta claro que la industria del videojuego esta dominada como no, por C++, pero esto no le quita detractores.

En fin, que hay para todo.

Anuncios

Un pensamiento en “La programación orientada a objetos tiene sus detractores

  1. Mark VR

    Que todo sea escrito en un lenguaje de mierda (léase Java) no implica que ese lenguaje de mierda este en lo correcto. Es como decir que por qué todo el mundo habla en inglés el inglés sea el mejor lenguaje de todos. No es mas que una moda, una expresion cultural. Un hecho que poco se toma en cuenta en computación.

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s