Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Participa en la encuesta sobre RAD Studio, Delphi y C++Builder 2014

Hoy me apareció en Twitter un mensaje de Paolo Rossi, quien acaba de hacer lo que, en mi opinión, deberíamos hacer todos los presentes:

Participar en la nueva encuesta de Embarcadero sobre RAD Studio, Delphi y C++Builder. Recuerden que las encuestas son una muy buena forma de influir en las decisiones de quien las convoca, a fin de obtener resultados que favorezcan a la mayoría de los participantes (al menos en teoría). Así que los exhorto a que participen.

¡Venga ese ánimo!

https://www.surveymonkey.com/s/2014RADStudioSurvey

Saludos cordiales.
Responder Con Cita
  #2  
Antiguo 26-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #3  
Antiguo 26-06-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que las preguntas sobre Linux y la pregunta abierta de qué característica te gustaría que se agregara van a resultarte de las más interesantes, Casimiro.
Responder Con Cita
  #4  
Antiguo 26-06-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
2. Which language would you use the IDE in if RAD Studio were also available in additional languages than those above?
Which language would you use the IDE in if RAD Studio were also available in additional languages than those above? None, the languages supplied are sufficient
Chinese
Russian
Portuguese
Spanish
Korean
Italian
Dutch
Other (please specify)
Responder Con Cita
  #5  
Antiguo 07-08-2014
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Nueva Encuesta de Embarcadero

Estimados , les dejo un link de la ultima encuesta de Embarcadero con 103 preguntas muy interesantes algunas y sobre todo, a mi entender, varias preguntas sobre que esperamos o necesitamos de nuestro tan querido Delphi.

https://www.surveymonkey.com/s/2014RADStudioSurvey

Saludos.
Responder Con Cita
  #6  
Antiguo 07-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola.

Dado que se trata del mismo tema, sugiero que sean unidos ambos hilos.

http://www.clubdelphi.com/foros/showthread.php?t=86173

Un cordial saludo.
Responder Con Cita
  #7  
Antiguo 08-08-2014
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Tienes razon Al, no habia visto el post anterior.

Lamento haber posteado la misma noticia.

Saludos.
Responder Con Cita
  #8  
Antiguo 08-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He unido ambos hilos, perfecto
Responder Con Cita
  #9  
Antiguo 08-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por lbidi Ver Mensaje
Tienes razon Al, no habia visto el post anterior.

Lamento haber posteado la misma noticia.
No pasa nada.

Lo importante es que todos seamos partícipes del destino de Delphi, incluso en las tediosas encuestas.

Por lo pronto ya propuse que el compilador de Delphi permita redefinición de clases (herencia insertada), aunque de antemano sé que a casi nadie le interesan mis locas ideas.
Responder Con Cita
  #10  
Antiguo 08-08-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Al González,

Cita:
Empezado por Al González
...que el compilador de Delphi permita redefinición de clases (herencia insertada)...
Pregunto:

1- ¿Que es Herencia Insertada?

2- ¿No sería mejor Herencia Múltiple en Delphi?

Saludos,

Nelson.

Última edición por nlsgarcia fecha: 08-08-2014 a las 21:29:50.
Responder Con Cita
  #11  
Antiguo 09-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por nlsgarcia Ver Mensaje
1- ¿Que es Herencia Insertada?
Hola Nelson.

Aunque es algo teórico en Delphi todavía, básicamente consiste en que, teniendo una jerarquía de clases tal como:
Código:

      ...
       |
       TA
       |
   ---------
   |       |
   TB      TC
   |       |
 -----   -----
 |   |   |   |
... ... ... ...
puedas derivar e "insertar" una clase TA1 (o "redefinir" la clase TA), agregándole más campos, métodos y todo lo que puede tener una clase normal (cosa que no satisfacen los ayudantes de clases). De tal manera que la nueva clase quedaría en el esquema así:
Código:

      ...
       |
       TA
       |
      TA1 (clase "insertada")
       |
   ---------
   |       |
   TB      TC
   |       |
 -----   -----
 |   |   |   |
... ... ... ...
Y todo, claro, sin necesidad de modificar el código fuente de las clases ya existentes.

Aunque no lo he revisado, recuerdo que Román comentaba hace tiempo que esta característica se encuentra presente en JavaScript.

Un saludo.
Responder Con Cita
  #12  
Antiguo 10-08-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Al González,

Cita:
Empezado por Al González
...Aunque es algo teórico en Delphi...básicamente consiste en que, teniendo una jerarquía de clases...puedas derivar e "insertar" una clase...sin necesidad de modificar el código fuente de las clases ya existentes...
Gracias por la información

Pregunto : ¿Y el uso de Herencia Múltiple en Delphi no sería también una opción a considerar?

Saludos,

Nelson.
Responder Con Cita
  #13  
Antiguo 10-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por nlsgarcia Ver Mensaje
¿Y el uso de Herencia Múltiple en Delphi no sería también una opción a considerar?
Creo que la herencia múltiple debe ser considerada también, aunque tratando de la mejor forma posible el problema del diamante.

Saludos.
Responder Con Cita
  #14  
Antiguo 10-08-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Al González,

Cita:
Empezado por Al González
...Creo que la herencia múltiple debe ser considerada también, aunque tratando de la mejor forma posible el problema del diamante...


Cita:
Empezado por wikipedia
...Hay debate sobre si la herencia múltiple puede ser implementada de forma simple y sin ambigüedad. Con frecuencia es criticada por su aumentada complejidad y su ambigüedad, así como los problemas de versiones y mantenimiento que puede causar (a menudo resumido como el problema del diamante)...

Tomado de: Herencia múltiple
Supongo que por estos problemas de ambigüedad, Delphi y C# utilizan interfaces como una forma alternativa de herencia múltiple.

Saludos,

Nelson.
Responder Con Cita
  #15  
Antiguo 10-08-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Creo que la herencia múltiple debe ser considerada también, aunque tratando de la mejor forma posible el problema del diamante.

Saludos.
Hacer herencia multiple es multiplicar el problema de la herencia. Es por eso que es mejor:

Composicion sobre herencia.

Luego de muchos años de hacer OO, es claro que la herencia es la forma *errada* de lograr la reutilizacion de codigo:

http://raganwald.com/2014/03/31/clas...t-do-that.html

http://javarevisited.blogspot.sg/201...ps-design.html

No solo porque arrastran todo el edificio cuando solo necesito prestado un martillo, sino porque hacen rigido el esquema del código y complican jodidamente el poder reusar el codigo.

Hay 2 formas que serian mucho mejor, pero seria complicado retro-corregir un lenguaje como Delphi/Java.

El metodo mas practico (desde el punto de vista del acostumbrado a OO) y parecido es el de GO:

http://www.onebigfluke.com/2014/04/g...-behavior.html

El segundo son los multi-metodos:

http://nice.sourceforge.net/visitor.html (Implementado en NICE, un lenguaje parecido a Java)

Y en Julia, que es mas funcional:

http://julia.readthedocs.org/en/latest/manual/methods/

----

El asunto del porque la herencia es la solucion herrada (no siempre, pero muchas veces) es que es una violacion de la idea de

http://users.ece.utexas.edu/~adnan/pike.html
Cita:
Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
Y

Cita:
Plano es mejor que anidado
---Zen de Python
Un ejemplo de se muestra en http://www.onebigfluke.com/2014/04/g...-behavior.html es el de hacer una app que sirva como un servidor web.

Como se soluciona tipicamente? Pues tienes que tener un IndyHTTP o un SinapseHTTP, heredar de eso, y implementar el metodo(s) que REALMENTE es necesario, pero ademas, probablemente reimplementar un monton de otros. Y como se arrastra TODA la jerarquia, no siempre es claro que hay que reimplementar (no saben cuantas veces se ignora reimplementar metodos como el de hash, igualdad y otros).

En cambio, tomando a GO por ejemplo, si quieres que tu codigo sea un servidor web (ilustrando con un ejemplo bastardizado de pascal):

Código Delphi [-]
procedure Clientes.ServeHTTP(w as http.ResponseWriter; var r as http.Request)
begin
       r.write("El cliente esta feliz!");
end;
Este codigo: Declara que conforma con la interface de un servidor web, define su implementacion y se encarga de pasar los param de request/response. Noten que esta totalmente desacoplado, es testeable, no hay que "montarlo" sobre puertos, Es irrelevante el porque rayos mi clase de manejos de clientes de un momento a otro puede ser un servidor web, es totalmente compatible con cualquier codigo que acepte esa interface. Un monton de cosas, y a la vez: No hay herencia, no se traen tropocientos metodos inutiles, no trae codigo inutil, no importa si la implementacion de sockets es Synapse o Indy o lo que sea, no importa que Clientes no es una libreria exclusiva de servidores web...

No hay que crear una subclase. No hay que reimplementar nada. No hay que pensar cual de los tropocientos metodos y campos son o no importante. No se puede, por error o brutalidad, llamar a un metodo o campo del padre que no tiene importancia, es inutil o hace un desastre.

Y se puede hacer herencia, algunas veces...

P.D: Una forma de lograr lo que se quiere de la herencia multiple, sin traer sus problemas y promover el desacoople es permite re-abrir funcionalidad de una clase, una forma de como se ve esto:

https://developer.apple.com/library/...xtensions.html

Pascal bastardizado:

Código Delphi [-]

reopen TControl 
    constructor (center as TPoint, size as TSize):
    begin
    end;

    function print():String
    begin
    end;
El cambio es localizado, no hay herencia (plus), se pude jalar lo necesario de otras clases(s)/funciones (incluso de varias) y no se "contamina" toda la clase de forma universal.
__________________
El malabarista.

Última edición por mamcx fecha: 10-08-2014 a las 05:16:23.
Responder Con Cita
  #16  
Antiguo 11-08-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por nlsgarcia Ver Mensaje
Supongo que por estos problemas de ambigüedad, Delphi y C# utilizan interfaces como una forma alternativa de herencia múltiple.
Sí, y es que el uso de interfaces es limpio y suficiente para muchos casos.

Pero me extraña ver tantas disertaciones sobre herencia múltiple con todos los contras que tiene, y casi ninguna mención a la redefinición de clases (o "herencia insertada"), en lenguajes populares como Delphi, C#, etc.

Por otra parte, mamcx, he notado que haces mucho hincapié en las dificultades para reutilizar código cuando éste se encuentra en métodos de clases y sólo necesitamos uno de esos métodos o parte de él, y no toda la jerarquía de clases que arrastra. Me pregunto si habrás mirado con detenimiento en GH Freebrary, donde hay más de 40 clases y la mayor parte del código fuente que éstas emplean se encuentra separado en cientos de funciones independientes. Así el programador tiene la libertad de usar una clase de esta biblioteca o solamente las funciones que necesita, según sea su objetivo. Y es que yo me tomo muy en serio lo del aprovechamiento y reutilización del código, sin caer en aquella tristemente exitosa trampa conceptual de que "encapsular" es meter todo el código fuente en los métodos.

Un saludo.
Responder Con Cita
  #17  
Antiguo 11-08-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No conozco GH Freebrary, llevo un rato desconectado de trabajo serio en Delphi (). Por lo que describes, estas empleando el concepto de "Composicion sobre herencia", que fue desarrollado precisamente entre los lenguajes OO, tal como explica el link de wikipedia. Me parece que eventualmente todo programador experimentado en OO llega, aun sin darse cuenta y de forma informal, a la idea puramente porque es una forma mas sana de trabajar.
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Encuesta de la ONU fidel Humor 4 03-06-2013 10:20:03
Embarcadero lanza nueva estrategia de mercadeo para Delphi movorack La Taberna 8 04-05-2013 02:03:18
Encuesta cacu La Taberna 4 14-12-2011 18:20:17
Nueva encuesta Reunión Delphi en el DF egostar Debates 34 21-10-2008 17:04:27
Embarcadero Technologies libera nueva versión de Interbase poliburro Noticias 5 28-09-2008 20:55:02


La franja horaria es GMT +2. Ahora son las 07:09:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi