Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Kase en 8 Mayo 2010, 09:14 am



Título: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Kase en 8 Mayo 2010, 09:14 am
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?


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: dark_hat en 8 Mayo 2010, 21:10 pm
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: biribau en 8 Mayo 2010, 22:05 pm
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Kase en 9 Mayo 2010, 05:21 am
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


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Og. en 9 Mayo 2010, 07:24 am
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: 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 :/


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Kase en 9 Mayo 2010, 09:16 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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Meta en 10 Mayo 2010, 00:04 am
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: Beowulf en 26 Mayo 2010, 23:05 pm
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: chocola en 15 Enero 2012, 06:17 am
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.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: ShotgunLogic en 15 Enero 2012, 09:37 am
A ver, creo que estais todos algo confundidos...

En la carrera, si es que tus profesores son competentes, te habran enseñado que los paradigmas y los lenguajes deben de usarse dependiendo de el objetivo que tengamos. Además los paradigmas no son características en sí de los lenguajes.

Me explico. En el caso de que querramos desarrollar una aplicación destinada, por ejemplo, a un videojuego, a un simulador o a un programa con bastante interacción con el usuario, lo mejor es usar el paradigma orientado a objetos. ¿Porqué? Pues básicamente porque nos será más facil de desarrollar, quedara un código mucho más legible y ordenado, pudiendo aplicar todo el ciclo del software de una manera correcta, y será mucho más MANTENIBLE.

En cambio, si por ejemplo necesitamos utilizar una aplicación multihilo, lo más probable es que usemos un lenguaje que haga uso del paradigma Funcional, ya que al usar la transparencia referencial no habrá efectos colaterales y convertiremos la concurrencia en paralelismo, evitando condiciones de carrera.

Esto es así, como ingeniero te corresponde saber en que situación debemos de usar un lenguaje(por sus características, como tipado, nivel de abstracción, si es compilado o interpretado...) y los paradigmas que este maneja.

Así que no se que cojones te han dicho en la carrera, pero las cosas son así. Otra cosa es que estudies más el paradigma orientado a objetos porque actualmente sea el que más se usa y el que más salida laboral represente.

Un saludo.


AÑADO: No asocies clase con POO. Objeto es lo que esta asociado para POO. Clase es la manera que tiene Java, C#, y otros lenguajes de definir las propiedades de los objetos, pero hay otros lenguajes que no usan clases, si no otras cosas, para definirlos, como Python.


Título: Re: Usas la Programacion Orientada a Objetos para todo?
Publicado por: H1jack en 15 Enero 2012, 16:54 pm
totalmente deacuerdo con shotgun

POO está demostrado que es la mejor forma de mantener programas a gran escala, luego se pueden combinar más paradigmas de programación segun el problema, el lenguaje y la situación