Usas la Programacion Orientada a Objetos para todo?

Iniciado por Kase, 8 Mayo 2010, 09:14 AM

0 Miembros y 1 Visitante están viendo este tema.

Kase

personalmente soy de los que piensan que la POO  no es para todos los problemas ¬¬
de echo de solo pensar en ella me da sarpullido.

y creo que puedo resumir el por que a una frase que me dijeron una vez.
Quieres una banana y la POO te da un gorila sosteniendo una banana y  la selva entera

creo que hay problemas en los que la abstraccion de la poo es muy eficiente, mientras que en otras es una patada en los wevos.

por ejemplo si necesitas abstraer un carrito de compras, la poo es muy buena para almasenar los datos del usuario sin consultar ala Base de datos a cada momento.

por lo contrario, si te piden un sistema de login y que posteriormente puedas dejar un mensaje y guardarlo en una base de datos me parece que  programar orientado a objetos es una estupides =/

estudio ingenieria en sistemas y voy a mitad de la carrera(se preguntaran como pase primaria con esta ortografia) y me an inculcado la poo  a cada momento, sin embargo solo me a dejado malas experiencias =/
una vez tenia que entregar un programa de  numeros aleatorios, no tenia tiempo y acudi a google descargue el codigo y lo primero que dije que es esto?! por que necesitas 4 clases ¬¬ si programado de una forma estructurada solo ocupas 20 lineas  x__x termine  programandolo ala mera hora de entregar.

hace poco platicaba con una maestra que llegaba de hacer doctorado, y entre la platica salio la poo y ella me dijo, enrrealidad no la comprendo.. por que programar tantas clases cuando programando con modulos o incluso estrucurado quedaria mas pequeño y legible =/ durante toda la carrera se lo pregunte a mis maestros, y ellos solo me dijeron "la poo es buena"


hace poco platicaba con un amigo que se tomo un año para irse a programar con su padre a una empresa, desarrollaron un software de un tamaño mediano, y cuando le pregunte sobre poo, me dijo, yo no programo con eso, de echo mi papa tampoco, el dice: es una forma mas de programar pero no me gusta.
lo que me hace pensar que hay mas mercado de programador que solo programar con poo.


por ultimo creo que me gusta mas la filosofia de que el codigo debe ser legible y bonito y lo menos abstracto posible, un amigo que actualmente trabaja y estudia me repitio lo que le dijeron en su trabajo, "si tu codigo no es legible para otro programador, no importa que tan optimizado este, no sirve"

me gustaria escuchar opiniones.. sobretodo de personas que ya trabajan como programadores/desarroladores pero toda opinion es bienvenida (incluyendo las mentadas a mi ortografia)

PD: alguien a notado que los diagramas UML son dificiles de aplicar cuando programas de forma modular?

dark_hat

Desde luego para programas simples la POO puede complicar las cosas a veces.
Una utilidad que le veo por ejemplo a la POO es que a mi manera de ver se hace más fácil de enterder códigos para ventanas y eventos que generan algunes IDEs como por ejemplo el código que te genera automáticamente el NetBeans para Java o el Visual C++ para C, a lo mejor eso en programación estructurada sería aunque más eficiente más dificil de ver que hace cada parte del código para quien no ha hecho el programa.
Eso que huele es un poco de incienso,
eso marrón una tableta de turrón...

biribau

Confundes el tocino con la velocidad, encima no he visto un sólo argumento coherente.
Escribir de más no tiene nada que ver con la metodología, sino con el lenguaje, hay lenguajes orientados a objetos en los que escribir 4 clases con un método es más corto que escribir 4 tipos con un procedimiento en C. Además creo que a poco que programes estructuradamente acabarás usando la programación orientada objetos porque son evoluciones lógicas y de sentido común, como la encapsulación en los tipos abstractos de datos(que diferencia tienen con los objetos?)
Además todo evoluciona hacia ahí, no sé si es porque es lo más avanzado y en lo que más investigación se ha dedicado... por contra tienes la programación funcional como algo opuesto y apartado... pero la estructurada? eso no ha avanzado nada, si tuvieras que trabajar sólo con programación estructurada renunciando a todo lo de objetos acabarías escribiendo mucho más código, pues tiene menos opción a refactorizar y pocos mecanismos para reutilizar.
Y esa chica que estaba haciendo el doctorado... pues como que da un poco de vergüenza ajena... si no lo entiende, no sabe mucho, porque desde luego la POO no es de lo más complicado de entender(el porqué es mejor)
Y tu amigo quizá trabaje con código heredado, o no sepa programar OO, también hubo campañas contra la programación estructurada tiempos atrás, con razones de porqué era bueno el uso del GOTO.
Ya para acabar, la POO es una extensión, una manera de completar las carencias de la estructurada, porque sigue copiando todas sus características.
La OO tiene sus desventajas, que no comentaré, pero es que no has dicho ni una, de hecho pareces un vendehumo, con frases de falso profeta.

Kase

#3
pues enrrealidad tu no as dicho niguna buen motivo, solo  le dijiste estupida ala maestra que mas quiero n__nU   y un poco de que la evolucion logica de estructurado eventualmente me llevaria a objetos...

no se en que momento dije que yo programo estructurado.. yo programo en lo que es conveniente para el problema(y eso incluye desde e paradigma al lenguaje) y me e topado con que la POO no lo es siempre... =/

y porcierto, usar clases no es precisamente  abstraer a objetos =/ es simplemente usar un estilo de programacion con otro tipo de paradigma

pero concuerdo contigo
hay lenguajes de programacion en los que escribir 4 clases es mas corto que una rutina en C

y tambien concuerdo que de programar a estructurado la logica te llevara eventualmente ala poo pero creo que esto es por la complejidad de los problemas....


yo e visto en mis compañeros (y en mis alumnos desde hace 6 meses) que la poo les entra dificil y el principal problema es el no usar los ejemplos adecuados en donde se ve el verdadero potencial de la poo.  por que?
bueno para que necesitas abstraer una serie de numeros primos =/  explicar eso con poo es hacer que subconcientemente piensen "por que tengo que escribir 3 veces mas codigo!"

pero si les dices... quiero que me abstraigan un automovil.
(hacerlo con estructurado es mucho mas complicado, que hacer una clase automovil con sus atributos y metodos)


quisas en realidad quiero saber que tanto se usa la poo en el mercado... mi amigo me dejo muy confundido pues  yo pense que usaban poo en esa empresa cuando enrrealidad no estan ni a favor ni en contra solo la usan cuando es indispensable...

quiero pensar que el mercado esta dejando atras la campaña de desprestigio ala programacion estructurada y se mueve a un sector multiparadigma
donde los sistemas dejan de estar compuestos de solo orientado a un paradigma para incluir varios dentro de un solo sistema...  tal vez es mi sueño y sea tonto, pero es mi ideal

Og.

pues yo pro ejemplo el viernes que viene empiezo a trabajar de programador y los requisitos para la admisión eran saber: .NET, Bases de Datos y POO.

realmente cuando se trata de trabajos largos y que se requiere un código limpio y legible, considero a la POO indispensable. Esta bien incluir algunas funciones fuera de clases, pero las clases son la base de un código fácilmente editable y entendible.
|-

Nakp

te dire... la poo es una gran cosa, e inclusive en el login :P podrias tratar a tus usuarios como objetos que tienen id, sesiones, etc y se manejan por el sistema...

siento que la poo totalmente es inecesaria en casos mas simples, algoritmos mas logicos y menos parecidos a la realidad, pero en sistemas de informacion son casi obligatorios porque manejas objetos reales y es una gran forma de abstraer todo (se me ocurren bodegas, clientes, inventarios, carritos, mensajes, y un sin fin de cosas), hacerlos de forma estructurada si es un dolor de huevos xD solo el analisis estructurado es mucho mas dificil a medida que crecen los sistemas en comparacion al analisis orientado a objetos, y la implementacion ni se diga... un caos total :/
Ojo por ojo, y el mundo acabará ciego.

Kase

Cita de: Nakp en  9 Mayo 2010, 08:34 AM
te dire... la poo es una gran cosa, e inclusive en el login :P podrias tratar a tus usuarios como objetos que tienen id, sesiones, etc y se manejan por el sistema...

siento que la poo totalmente es inecesaria en casos mas simples, algoritmos mas logicos y menos parecidos a la realidad, pero en sistemas de informacion son casi obligatorios porque manejas objetos reales y es una gran forma de abstraer todo (se me ocurren bodegas, clientes, inventarios, carritos, mensajes, y un sin fin de cosas), hacerlos de forma estructurada si es un dolor de huevos xD solo el analisis estructurado es mucho mas dificil a medida que crecen los sistemas en comparacion al analisis orientado a objetos, y la implementacion ni se diga... un caos total :/

diste en mi clavo...   justamente estaba pensando eso...
que la poo sirve para gestionar informacion...
por ejemplo en una escuela, tienes una clase  persona con atributos genericos y en otras clases mas especificas tienes  una  clase maestros otra clase alumnos...
y luego me tope contra un gran muro o__O BASES DE DATOS   en estas BD expresas exactamente lo mismo pero en entidades relaciones....  y  entonces al desarrollar un sistema por que tendrias que generar la misma estructura en clases cuando ya la tienes en tu BD?  =/ (cuando no usas la BD, oviamente la poo es la ley y la estructurada se keda corta).

entonces creo que se abstrae a otro nivel la poo, y en lugar de  crear la misma estructura de tus entidades podrias generar una   clase consultas_sql,  otra clase desplegar_informacion, otra clase interface_grafica  y entonces llegamos a un modelo-vista-controlador (MVC)

pero por aotro lado puedes usar la programacion modular para acceder a esta BD y desplegar la informcion y tambien te permite reutilisar codigo... =/
(y es mucho mas ligero de comprender que MVC)

creo que ese fue el problema... hace 2 años comprendia bien la poo (auque seguia pensando que no era la solucion a todo)  pero ase 1 año conoci  las Bases de Datos  y deje de usar la poo para abstraer cosas que tambien se abstraen en BD y mi sentido de la poo trono XD


PD: me retracto....   la programacion estructurada eventualmente por logica no te lleva a programacion orientada a objetos, sino a programacion modular.

Meta

Hola:

Usa el ASM a ver que tal.

El POO es lo que se lleva ahora, con el tiempo tendrás otras formas de ver las cosas, te falta más experiencias. Cuando deciden a escala mundial hacer estas cosas como el POO, es porque la ventaja es mayor que las desventajas.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Beowulf

En mi parecer el usar clases y objetos no significa utilizar orientado a objetos, muchos codigo lo que hacer es programar orientado a formulario y aprovechar los objetos existentes, creo que la metodologia de programacion responde mucho mas a completar el desarrollo de la metodologia utilizada en el sistema de informacion, actualmente las metodologias mas utilizadas son PUD o Grapple, lo dos son orientados a objetos, todo el modelado que se realiza no tendria sentido ulilizando tecnicas de programacion estructuradas, aunque se completen con bases de datos relacionales.
La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)

chocola

Alguien me podría da un ejemplo exacto donde es necesario usa la POO?

Yo desde siempre he trabajado con la programación estructurada, mas que nada porque no se he estudiado la POO, y ahora estoy tratando de entender el concepto de la POO, y los casos en los que el uso de la POO seria mas conveniente.

No quiero una explicación de lo que es la POO, si no un ejemplo de su uso.

Muchas gracias con antelación.