Ver Mensaje Individual
  #20  
Antiguo 21-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Recién me he dado cuenta que Guille ha respondido a lo expuesto en este hilo:
Cita:
Nota del 29/Ago/2003:

Esta nota es para aclarar, que no para justificar, (aunque puede que también se justifique), un comentario de este artículo, por el que algunos programadores de Delphi se han sentido "ofendidos", o casi...

Si antes de seguir leyendo quieres ver "parte" del revuelo que se ha formado, sigue este link:
http://www.clubdelphi.com/foros/show...&threadid=3101

El comentario que levantó la polémica fue este:

La verdad es que herencia, lo que se dice herencia, el Visual Basic no tiene, ni tampoco el Delphi, ya que estamos, (aunque no me gusta meter cizaña, todo hay que decirlo... je); al menos si lo miramos desde el punto de vista de los programadores de C++ o de los puristas de la OOP.

El pasado 21 de agosto, recibo un mensaje procedente de Federico Firenze, (no se presentó como tal, pero después descubro que es uno de los moderadores de ese foro de Delphi), en el mensaje me pregunta los fundamentos en los que me baso para decir en este artículo que Delphi carece de herencia.
Mi respuesta fue esta:


Los "fundamentos" del porqué dije eso hace 5 años... ni me acuerdo...
Pero en el párrafo "aclaro" que al menos desde el punto de vista de los
"puristas" de la OOP.

...<pego el párrafo mostrado arriba, pero que no lo muestro aquí para no volver a repetirlo>...

Con tanto tiempo, ya no recuerdo en qué me basé para decirlo, pero seguro que
en algún sitio "alguien" dijo algo...


Creo, (al menos así lo entiendo yo), que en ese párrafo fatídico queda bien claro, (aparte de que lo dije en plan "broma"), que si la herencia la tomamos desde el punto de vista de los programadores de C++ o los puristas de la OOP, el Delphi no tiene herencia. Pero, (aunque yo no programe en Delphi), yo se que Delphi soporta la herencia, y los que utilizan Delphi deberían saberlo y eso es lo que realmente debería importar.
Pero no creo que fuese un comentario como para "levantar polémica" y en ningún momento dije que el Delphi no soporta la herencia, aunque, según he leído en el mencionado "hilo" del foro, la herencia que soporta Delphi es herencia simple, (igual que los lenguajes basados en .NET Framework, Java y algún otro), por lo que puede ser que ese comentario lo hiciera por esa razón, pero aún así, aunque después de casi 5 años no recuerde de dónde "me llegó ese mensaje", no es motivo para armar ningún tipo de "historias".
Historias que después llegan a las descalificaciones sobre mi persona y sobre Visual Basic. Y no es por defender al Visual Basic, ya que nunca me ha gustado entrar en ese tipo de "lucha", cada uno sabe, (o debería saber), con lo que trabaja (o programa), debería conocer sus limitaciones. Cierto es que si no conocemos "al enemigo" no deberíamos criticarlo, (si alguno piensa que ese ha sido mi "pecado", pido disculpas), cosa que hace uno de los participantes de ese mismo hilo, (el cual en otro mensaje dice que antes de criticar a un lenguaje, (con respecto a otro), se deben conocer los dos), cuando comenta (más bien pregunta) cómo puede el Visual Basic soportar Polimorfismo sin soportar herencia, y pone como ejemplo un código que usa enlace tardío (late binding). Este señor, (Federico), no sabe cómo se puede conseguir el Polimorfismo mediante la implementación de interfaces, (al menos en VB); y esto no es algo particular de Visual Basic, por supuesto no voy a decir si Delphi soporta o no soporta este tipo de "herencia de interfaces", ya que lo desconozco, pero me imagino que "debería" soportarla, lo que si es cierto es que Visual Basic, al estar basado en COM, es el único tipo de herencia que soporta.

Pues esto es todo, así al menos, los que leáis este artículos "atraídos" por esos comentarios, que sepáis de qué va todo esto...

Nos vemos.
Guillermo
P.S.
El artículo está como estaba desde que lo publiqué, lo único que he cambiado, aparte de esta nota y algunas "tildes" (o palabras acentuadas), es el formato (y el código que ahora está coloreado), pero no he cambiado nada del artículo que originalmente publiqué; que por otra parte, creo que para estar escrito hace casi 5 años, (a pesar de que algunos no lo hayan leído completo), cuando la herencia era algo que nos había estado vetado a los programadores de Visual Basic, no me "quedó" mal del todo, je, je.
Bueno, antes que nada quiero aclarar que yo soy Federico Firenze, y que ahora mismo estoy enviándole un e-mail a Gille, para que lea mi respuesta desde este hilo.

Gille:

Cita:
Dice Guille
Esta nota es para aclarar, que no para justificar, (aunque puede que también se justifique), un comentario de este artículo, por el que algunos programadores de Delphi se han sentido "ofendidos", o casi...
Pues en lo personal no me he sentido ofendido, creo que en mas de una ocasión he dado una respuesta incorrecta en este foro, pero siempre con la intención de ayudar. Creo que a "Guille" le ha sucedido lo mismo, lo que no me agrada es que se niegue categóricamente algo sin conocerlo. Y creo que cuando dice “lo que se dice herencia, el Visual Basic no tiene, ni tampoco el Delphi, ya que estamos, (aunque no me gusta meter cizaña, todo hay que decirlo... je)”, lo esta haciendo. No creo que un motivo válido sea “dicen….”. Aunque destaco que en el ámbito informático es imposible conocer todos los aspectos de herramientas tan grandes como Delphi o VB, es mas, me considero ignorante de muchas de las tecnologías que han incorporado las últimas versiones de ambos lenguajes.

Cita:
Dice Guille
Pero no creo que fuese un comentario como para "levantar polémica" y en ningún momento dije que el Delphi no soporta la herencia
A mi entender esto es contradictorio, igualmente te comento que aquí nos gusta la polémica … puedes darte una vuelta por el foro “Debates”, y comprenderás lo que digo.

Cita:
Dice Guille
Pero, (aunque yo no programe en Delphi), yo se que Delphi soporta la herencia, y los que utilizan Delphi deberían saberlo y eso es lo que realmente debería importar.
Aunque no lo creas, hay mucha gente que trabaja en Delphi sin aprovechar las ventajas de la programación orientada a objetos, simplemente porque lo desconocen. Doy fe de eso!

Cita:
Dice Guille
Historias que después llegan a las descalificaciones sobre mi persona…
Creo que yo no he participado en esto, si algo que he escrito te ha ofendido tu persona, te pido disculpas, no fue mi intención. Lo que si he criticado es el artículo, y creo que con justa razón.

Cita:
Dice Guille
Y no es por defender al Visual Basic, ya que nunca me ha gustado entrar en ese tipo de "lucha", cada uno sabe, (o debería saber), con lo que trabaja (o programa), debería conocer sus limitaciones.
Estoy de acuerdo contigo, te comento que trabajo habitualmente con ambos lenguajes, y personalmente creo que Delphi es un lenguaje muy superior, tengo muchos motivos para creerlo, aunque creo que mi criterio no es muy parcial, porque le he tomado prejuicios al VB. De todos modos creo que hay lenguajes para todos los gustos y necesidades, queda en cada uno la elección del lenguaje a utilizar para cada proyecto.

Cita:
Dice Guille
uno de los participantes de ese mismo hilo, (el cual en otro mensaje dice que antes de criticar a un lenguaje, (con respecto a otro), se deben conocer los dos), cuando comenta (más bien pregunta) cómo puede el Visual Basic soportar Polimorfismo sin soportar herencia, y pone como ejemplo un código que usa enlace tardío (late binding). Este señor, (Federico), no sabe cómo se puede conseguir el Polimorfismo mediante la implementación de interfaces
Si es verdad, me lo pregunto aún, y creo que podemos discutirlo un buen rato, por lo siguiente: Tanto el polimorfismo por “late binding” como con el uso de interfaces, es tan discutible, como la herencia múltiple de Delphi.
Los programadores en Delphi justificamos la falta de herencia múltiple con el uso de interfaces, cuando en realidad no existe herencia múltiple, lo que si existe es herencia múltiple de interfaces. Para muchos programadores, en los cuales me incluyo, la herencia múltiple trae mas problemas que soluciones, para otros no (sobre gustos…).
Ambos casos de polimorfismo en VB, a mi criterio, no son del todo ciertos pues para que exista polimorfismo de clases debe existir el concepto de la herencia, pues de otra manera no existe la clase polimórfica, particularmente no me gusta el concepto de “late binding” o “dynamic binding” pues suele llevarnos a producir errores de sintaxis que solo se producirán en tiempo de ejecución y esto no es solo para VB, y destaco que el uso de interfaces, puede ayudarnos a escribir código que evite este problema y que “simule” polimorfismo y herencia. Digo “simule”, porque lo que obtenemos es herencia de interfaces, e interfaces polimórficas. (No de Clases). Digamos, que en la práctica si podré notificar el mismo mensaje a través de un método a objetos de diferentes tipos, heredados de la misma interface.
Sin discutir si es polimorfismo o no, es claro que tenemos la misma desventaja que en la supuesta “herencia múltiple” de Delphi: Estamos obligados a implementar todos los métodos, cuando en el polimorfismo de clases no es así y en la herencia múltiple tampoco.

Cita:
Dice Guille
por supuesto no voy a decir si Delphi soporta o no soporta este tipo de "herencia de interfaces", ya que lo desconozco, pero me imagino que "debería" soportarla
Si lo soporta.

Por otro lado, y esto es una duda personal: Ahora que VB.NET es un lenguaje orientado a objetos… ¿sigues pensando lo mismo de la POO?


Creo haber sido claro en mis conceptos, cualquier duda aquí estaré….
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita