🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #12212

Re: [OT] Dudas sobre programacion grafica (KDE y GNOME)

#12212
From: Fco. Javier Espejo
Date: Tue, 14 Aug 2001 18:27
133 lines
7233 bytes
>  Supongo que cuando dices que Kylix est� orientado a objetos te refieres a
> que permite
> crear clases e instancias de la clase u 'objetos' (que no es lo mismo,
esto
> es lo que
>  siempre critico en C++, pues la orientaci�n a objetos la provee el
> programador no el
> lenguaje, por medio de una arquitectura bien hecha, dividida en capas y
> m�dulos o plug-ins,
>  donde los recursos de uso frecuente se dise�an de forma que sean
f�cilmente
> accesibles por toda
> la aplicaci�n de forma transparente, haciendo de estos recursos los
> verdaderos 'objetos'.

Tienes raz�n, no por programar en C++ se hace un programa orientado a
objetos. Necesita la extrecha colaboraci�n del programador. Pero lo
contrario tampoco, no por programar orientado a objetos el lenguaje lo es;
necesitas que el lenguaje te de la protecci�n necesaria. Te digo esto por
que creo que todo programador de C (creo que tu lo eres),  programa
orientado a m�dulos, o a TAD, pero C no te da esas capacidades de
encapsulaci�n y ocultaci�n de la informaci�n. Y a ver quien le dice a un
programador que cuando hace un *.h no est� haciendo un m�dulo :-( (vease
Modula2 para autenticos M�dulos y TAD)

>  Para m�, C++/Java/Kylix... son lenguajes DESorientados a objetos).
>  Yo me atrever�a a decir que cualquier aplicaci�n realizada con StarOffice
> cumple mucho mejor
> el parad�gma de la programaci�n orientada a objetos que el 99'9% de los
> programas realizados con
> lenguajes supuestamente OOP.

La programaci�n orientada a objetos no la da el lenguaje en s�, si no la
forma de programar. Pero esto es como todo. Pero no me negar�s que C++ da
las capacidades, y protecci�n necesarias para que un programador programe
orientado a objetos. �Sabes el fallo de C++? Que acepte c�digo de C, y su
preprocesador. Si no lo aceptara, nadie pondr�a en duda que C++ es
totalmente orientado a objetos. Y adem�s de los m�s dif�ciles, lo cual le da
su potencia, al igual que le pasa a C. Es m�s en C++ no puedes hacer nada
sin una clase previa (usando s�lo POO), al contrario que en otros totalmente
orientados a objetos como Smalltalk, que si, ya que heredan siempre de la
clase principal Object.

> para entender mejor lo que est�s haciendo resulta que el c�digo est� hecho
> en C, lo cu�l
> pone en duda de nuevo la necesidad de utilizar un nuevo lenguaje como
> Pascal. Que narices, por qu�
> no Cobol 99. �Habe�s probado el Cobol99? Es cojonudo. No tiene nada que
> envidiar a C.
> Y el ADA. Es la leche. �Para qu� continuar utilizando C?

Los lenguajes que dices son orientados a modulos y TAD. Eleva bastante el
nivel de complejidad, (millones de l�neas de c�digo) y ver�s que es m�s
facil usar POO que esos lenguajes muy bien programados. Pero C no puede
desaparecer, por que hay mucha base de c�digo. Esta es la raz�n principal de
que C++ acepte c�digo C.

> > > - C++ NO es un lenguaje
> > > orientado a objetos por mucho que se repita tan b�rbara tonter�a y en
> > > la pr�ctica se ven aut�nticas chapuzas de gente que cree que por
> > > teclear la palabra class dentro del c�digo ya est� programando a
> > > objetos -,
> >
> > esto se debe a mala pr�xis y falta de formaci�n, no al lenguaje.
>
>  Exacto, pero el C++ (a mi modo de ver) fomenta la mala pr�xis de la que
t�
> hablas.
>  Un ejemplo t�pico: Se supone que el objetivo de la programaci�n orientada
a
> objetos
>  es la de encapsular el c�digo y sus complejidades. Es t�pico sin embargo
> ver clases
> en C++ que ocultan miembros que deber�an ser p�blicos (porque ser p�blico
es
> pecaminoso)

�miembros? supongo que te refieres a atributos �no?

> para luego modificarlos con m�todos setXXX/getXXX que adem�s son agrupados
> en
>  subclases contenidas dentro de la clase principal. Para mayor cachondeo
los

Esto se debe al paradigma de la POO, es decir no se debe permitir que se
toquen directamente los atributos, ya que la implementaci�n de estos puede
variar en un futuro, o que se necesite comprobar sus valores. P.ej. mes s�lo
acepta los valores del 1 al 12, y eso lo hacen los m�todos. No es nuevo pasa
tambi�n as� en los TAD.

> constructores/destructores est�n mal implementados y acaban colgando el
> programa con
> punteros nulos y todo para manipular un dato de tipo int o char*, con lo
que
> en vez de encapsular
> el c�digo y sus complejidades han creado un terremoto donde no hab�a
> problema alguno.

Me resulta muy raro, en una clase bien dise�ada nunca pasar�a.

> M�s a�n, una clase mal implementada lejos de encapsular la complejidad del
> c�digo lo �nico que
> hace es encapsular los errores y hacer todo mucho m�s dif�cil de depurar.

Claro si est� mal hecha que quieres. Lo mismo pasa en C o en otros
lenguajes.

> Menuda la gracia cuando despu�s de est�r toda una ma�ana intentando
> encontrar un error te das
> cuenta con una sesi�n de debugger que el constructor hab�a inicializado
mal
> la clase por cualquier
> tonter�a y el objeto no conten�a los datos que se supene deber�a de
> contener. Oohh!, que gran suerte
> tener constructores/destructores que automatizan el c�digo y facilitan la
> programaci�n.

Pues si, es una gran suerte, pero sigue sin ser nuevo hasta en C puedes
hacer lo mismo, de formas un tanto m�s complejas. Pero claro a todo el
c�digo no a cada objeto que uses. De todas formas si la clase est� mal
implementada es normal que pase eso. Pero lo primero que debe mirar un
programador son los constructores y destructores si existen, ya que son la
base en s� de la clase. Por lo tanto el fallo es tuyo al no mirarlos bien. Y
si tienen herencia los de las clases base, aunque si est�n bien hechas no
tienes ni que mirarlas.

Dime algo, �que problema tienes con C++? �que te ha hecho?

---------------------------------
jespejoYASABES@QUEHACERarrakis.es
�Sistemas Operativos? �Vis�tala!
http://www.arrakis.es/~jespejo
---------------------------------
Technical Details
Message-ID: <3b796d86_1@news.arrakis.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!jussieu.fr!news.rediris.es!newsfeed.mad.ttd.net!caladan.arrakis.es
References: <kkAa7.8$e8.129@coltserv-news.interno.es.colt.net> <9l810e$6pa$1@talia.mad.ttd.net> <9l8q2q$6r3$1@daneel.audiolis.com> <9latqn$hmm$1@talia.mad.ttd.net>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,bd7a3ba28fdcd82c
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-08-14 11:29:36 PST
From: "Fco. Javier Espejo" <jespejoYASABES@QUEHACERarrakis.es>
Newsgroups: es.comp.os.linux.programacion
References: <kkAa7.8$e8.129@coltserv-news.interno.es.colt.net> <9l810e$6pa$1@talia.mad.ttd.net> <9l8q2q$6r3$1@daneel.audiolis.com> <9latqn$hmm$1@talia.mad.ttd.net>
Subject: Re: [OT] Dudas sobre programacion grafica (KDE y GNOME)
Date: Tue, 14 Aug 2001 20:27:28 +0200
Lines: 135
Organization: http://www.arrakis.es/~jespejo
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
NNTP-Posting-Host: 212.59.223.158
Message-ID: <3b796d86_1@news.arrakis.es>
X-Trace: 14 Aug 2001 20:27:18 +0100, 212.59.223.158
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!jussieu.fr!news.rediris.es!newsfeed.mad.ttd.net!caladan.arrakis.es