Hace 11 años | Por --249036-- a harmful.cat-v.org
Publicado hace 11 años por --249036-- a harmful.cat-v.org

Cuando fui introducido por primera vez al concepto de la programación orientada a objetos yo fui escéptico, aunque no supe por qué; simplemente lo intuía 'erróneo'. Después de su introducción la POO se hizo muy popular (explicaré por qué más adelante) y criticarla se volvió algo así como "maldecir en la iglesia". La OO se convirtió en algo que cualquier lenguaje respetable simplemente debía tener. Mi principal objeción a la OO se remonta a las ideas básicas en que se fundamenta, voy a esbozar algunas de estas ideas y mis objeciones a las mismas

Comentarios

D

#1

Es equivalente

D

#2 Bueno, la mierda ciertamente apesta, pero no todo lo que apesta es mierda.

D

#6 No lo he criticado demasiado por que hay cosillas que no estoy muy seguro de si las he entendido bien pero en líneas generales ninguno de los puntos me parece un argumento sólido... Tampoco propone alternativas que solucionen los problemas que la POO soluciona con facilidad...

mdudu

#10 Añadiría que todo lo que aporta un lenguaje OOP ya existía antes, sólo que antes se lo tenía que currar el programador (con bastantes limitaciones). A partir de los OOP es el compilador el que da las facilidades para estructurar mejor el código.

D

Aquí una respuesta (en Inglés también): http://www.librador.com/2012/07/16/No-thats-not-why-OO-sucks/

D

A ver si me aclaro, ¿Como las funciones y los datos son diferentes deben ir separados por que si? No me parece un argumento muy potente...

mdudu

Cuando empecé con la OOP la principal razón era que el compilador debía encargarse de ciertos trabajos que antes hacía el programador. Por ejemplo, hacer que el compilador se encargara del polimorfismo, en vez de estar haciendo tu funciones identicas incluyendo el nombre del tipo de dato en el de la función (ie: save_customer(&customer)).

También se intentaba evitar el rippling, es decir que el cambio en un aspecto del código no afectara a otras partes del programa.

Encapsular la complejidad (ie: dame_saldo() y no preguntes cómo)

Hay muchas otras necesidades de este tipo que no se mencionan en el artículo. Supongo que Erlang habrá dado su respuesta, pero me parece estúpido lo que dice Armstong y es la típica impostura para ser más escuchado.

zorion

#15 Precisamente dice que no encuentra evidencias de las razones 1 y 2, no dice que sean malas, dice que no están demostradas.

#9 Que algunos lenguajes no acepten el polimorfismo no significa que sea un invento de la OOP.
La programación funcional acepta polimorfismo de un modo más natural (desde mi punto de vista) que cualquier programación imperativa, por ejemplo.
Además, lo del encapsulamiento tampoco lo considero propio de la orientación a objetos, es casi la base del diseño descendiente (programación modular) que para mí incluye la orientación a objetos pero no se restringe a ella.

Dicho esto, considero como casi todos los comentarios de este meneo, que al Amstrong se le va la olla y que la orientación a objetos tiene ventajas. Yo la usaba sin problemas.

T

#16 Pues para no decir nada, titulando el artículo como OOP apesta..mejor se calla no? Esta persona no le hace falta demostrar nada, y Erlang no tiene "competencia" dentro de su sector.

mdudu

#16 Precisamente es lo que digo; y que como los lenguajes no lo soportaban era el programador el que lo apañaba. Una función como save_customer, está haciendo name-mangling a pelo.

D

Este y el Torlvalds deben hacer buenas migas

T

Por qué OO fué popular:

Razón 1 - Fué sencillo de aprender.


Y ésto que tiene de malo? Un paradigma tiene que ser hiper-complejo para que se considere serio?.


Razón 2 - Se pensó para hacer el código reusable fácilmente.

Más de lo mismo. Para qué reescribir cosas innecesarias?

Razón 3 - Estuvo hype-ado.

Aquí hablas de Java más que de la OO en general.

Razón 4 - Creó una nueva industria del software.

Ejem....

Con mis respetos hacia Amstrong y Erlang, es una trolleada como una casa sin fundamentos reales. Se nota que no ha programado en Smalltalk. Le podrá gustar más o menos, pero de ahí a decir que apesta con esos fundamentos.... Si nos ponemos así, entonces, bajo sus criterios, ¿por qué no hay ERPs en Erlang?, que sí, que posible es, pero productivo?

Es como la eterna discusión que he tenido con un montón de gente. "Es que C/C++ es lo mejor y más potente, y Object Pascal es una mierda" ... ¿Y por qué en un proyecto en el que debo centrarme (porque es lo realmente importante) en la lógica de negocio, debo de preocuparme de ciertos aspectos que en C/C++ debes preocuparte, y que no tienen nada que ver precisamente con la lógica de negocio?

En todo caso se debería decir que la OOP apesta, en ciertos entornos donde otros paradigmas encajan mejor, pero no de manera tan general. Erlang no es precisamente tampoco la solución a todos los problemas.

No sé, él sabrá...en fin....

D

Quizás se refiere a su abuso, por ejemplo:
Galaxia.Sistema_Solar.Tierra.España.Mi_ciudad.Mi_casa.Mi_cocina.Mi_sandia.
Con lo fácil que es decir:
Mi_sandia...

D

#12 Si pero las jerarquías pueden ser muy útiles, como muchas otras cosas de la POO, se ahorra código, problemas, y se logra un nivel de abstracción muy útil. Por ejemplo en tu caso ¿qué pasa cuando quieres saber cuántas frutas hay en Mi_cocina? Sin objetos tienes que hacer la cuenta de forma externa.

sotanez

Vaya pérdida de tiempo leerme eso. Para ser creador de un lenguaje no profundiza nada de nada.

mdotg

Titular alternativo: ¿Por qué no programa ni Dios en Erlang?

D

En ese caso, si, pero si mi programa no va a necesitar recuento de fruta, no debería ser obligatorio crear un objeto, así va de maravilla...

D

este es el eterno flame, como el tipico windows vs linux vs mac

r

hacia tiempo que no veia tantas tonterias juntas...

si parece ser que lo único algo interesante de su lenguaje es la gestión de hilos, es decir, algo totalmente independiente de que sea lenguaje secuencial o no...