![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Que debate nos dejó Al ¿he?
![]() Yo tampoco uso with. Me acostumbré a no usarlo desde el comienzo. Desconozco si hay mucho código en la VCL que esté fuertemente atado al with como para tratar de justificar su existencia por la compatibilidad hacia atrás. Agustin tiene razón al decir que no se puede pretender tener compatibilidad hacia atrás 100%, en algún momento algo sale caro y deberá toquetearse. Es inevitable. Yo tengo la creencia que puede tener su cuota de uso y comodidad, bajo ciertas condiciones. Por eso no veo tan necesario mantener la postura de que debiera de desaparecer. Ahora hay que encontrar el equilibrio entre su mal uso o mala práctica, la facilidad que aporta, y que cuente con una forma segura de poder identificar adecuadamente la construcción (objeto, record, etc) inequivocamente. Saludos, |
|
#2
|
||||
|
||||
|
Cita:
A diferencia del GOTO que tiene casos de uso especializados utiles, el WITH es pura conveniencia. En tal caso, entre "medio-cambiarlo" o quitarlo es mejor quitarlo y así no hay ambigüedad en que hacer (igual apuesto que la mayoría de los programadores ni lo usan). La otra es dejar tal cual, y que "cada cual se asegure de usarlo bien". ---- Si ahora que he investigado como hacer un lenguaje me estreso, no me imagino lo que sera manejar un lenguaje y años despues, pensar en corregir algun problema. Cuando se ha hecho (caso reciente: Python 3) los cambios han sido traumáticos. Aqui hay que quitarse el sombrero con los diseñadores de GO, que desde el principio anticiparon este lio y crearon una herramienta que formatea el código para que se vea consistentem, y de paso auto-convierte la sintaxis y llamadas a librerías para salir de los problemas y de llamadas "deprecated". Y la comunidad entera lo usa de forma rutinaria: https://golang.org/cmd/gofmt/ Sin este tipo de herramientas, este tipo de mejoras es muy difícil de implementar en la practica. Incluso, el problema que mencionaron de como Delphi rompe las expectativas en como funcionan los STRING en móviles subraya el lio: A la final, es lo que los diseñadores del lenguaje necesite AHORA, y les salga fácil: Y mirar pa' atras y arreglar correctamente? Eso es de lo mas anomalo en nuestra industria.
__________________
El malabarista. |
|
#3
|
||||
|
||||
|
En el debate de Twitter ya se está considerando usar "It". Aunque eso dé pie a todo tipo de referencias jocosas a la película del payaso (o la novela de S.K.) por parte de los detractores del With.
![]() Marcelo: "&" ya tiene otro uso en Object Pascal. Jhonny: La expresión en la cabecera del With, como cualquier otra expresión de código, no necesariamente es una variable; puede tratarse de una llamada a método que no quisieras hacer más de una vez. Por lo cual se necesita una variable. No creo que sea buena idea permitir declarar variables después del Begin (lo hecho con Except es excepcional). El With que propongo es para uso moderado. Limitándolo a un sólo elemento (objeto/registro) por cabecera, impidiendo el anidamiento de bloques With y agregando una variable implícita (como la actual Result o el parámetro Self) —propongan nombres para la misma si It o la misma With no gusta—, más una directiva de compilación que permita activar la nueva sintaxis (predeterminadamente inactiva por las siguientes n versiones), al cabo de un tiempo habremos conseguido enmendar la trampa sintáctica que supone y ocurre con el With actual. La compatibilidad hacia atrás es importante, y las directivas temporalmente opcionales hacen de estas transiciones pasajes menos traumáticos. Sin olvidar que estaremos evitando muchos bugs futuros gracias a esto. Una vez pactada su practicidad teórica, será más eficaz impulsar el cambio en los compiladores y estándares. No dejen de alimentar el debate, ¡hay que corregir al infame With! Un cordial saludo. Al González. |
|
#4
|
||||
|
||||
|
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
#5
|
||||
|
||||
|
Cita:
Emplear el punto como si fuera el método, me parece que puede dar a confusiones también. Y el uso de dos puntos también ya tiene su usos en el lenguaje. Si la propuesta pasara por emplear un único caracter identificador entre los tradicionales y de rápido tecleo están @, #, $, %, ^, * y si nos ponemos a ver a todos esos tienen su "uso y significado" Entonces me dije, ¿Y acaso no usamos la doble comilla cuando escribimos a mano para ahorrarnos escribir lo mismo una y otra vez? ¿Porqué no darle entonces el mismo uso a la pobre chica?
Es una forma de decir: Idem. Pero sigamos con las palabras ya que los símbolos pueden resultar un tanto faltos de expresión... Miremos a Idem... ¿No es una bella palabra para decir justamente "lo mismo"? ¿O acaso no usan esta expresión en sus escritos? ![]() No me parace una mala idea. si It la debiéramos de descartar porque resulta graciosa, la otra posibilidad es usar That. Tampoco es que se pierda demasiado en la "traducción". Pero ya tenemos una forma de decirlo sin jugarse demasiado. Idem es una expresión que viene del latín... ¡la conocemos "todos"!La posible directiva podría ser $IdemInWith ON/OFF o $FlagInWith ON/OFF ya que el uso de la directiva obliga "identificar" o señalar con la palabra That/It/Idem o la que sea elegida que se está por referise al objeto en cuestión. Saludos, |
|
#6
|
||||
|
||||
|
Esto se está poniendo bueno.
![]() Jhonny: Comprendo lo que dices, pero no olvidemos que precisamente With te ahorra tener que declarar una variable y asignarle el valor de la expresión. Estas cosas parecen baladíes para algunos, pero si se cae en la cuenta de que el empleo de recursos elegantes para ahorrar código mejora sensiblemente su comprensión, se concluye también que no permitir al With evolucionar sería como derribar un viejo, útil, pero riesgoso puente (o seguir con él), en lugar de construir un puente más seguro y probablemente más útil. Marcelo: Es de imaginar que no seamos los únicos que hemos pensado en el símbolo de la doble comilla. Como podrás ver, esa fue mi propuesta de hace dos años: http://rescatandoadelphi.blogspot.mx...lphi-with.html Y este uno de los debates donde defendí la idea: http://www.delphifeeds.com/go/f/113867 Sin embargo, hoy estoy más convencido de que deberíamos utilizar una palabra y no un símbolo, para no ir en contra de la filosofía del precioso Pascal. Y he de decir que me va atrayendo más la idea de que dicha palabra no sea una palabra reservada, sino un identificador no declarado como los que ya existen en el lenguaje (Self, Result). It me gusta, y ahora que lo mencionaste, me parece que Idem no está del todo mal. Germán: Espero haber dado a entender que no se trata de cambiar algo de la noche a la mañana, sin pensar en la compatibilidad hacia atrás. Reitero lo de las directivas de transición, que ya en otros casos se han utilizado con mucho éxito. Por otra parte, les pido que no pierdan de vista la ventaja de poder referirse al objeto "witheado" dentro del propio bloque With. Algo que el With tradicional no tiene. Saludos veracruzanos lluviosos. Al González. ![]() |
|
#7
|
||||
|
||||
|
Cita:
Lo que ya se me había olvidado fue tu propuesta de las comillas dobles... ¡Otra vez yo reinventando la rueda che! ![]() Yo también veo más apropiado un identificador y no un símbolo. En lo que si difiero, o al menos, hasta ahora estuve pensando y considerando, es que Idem TIENE que ser palabra reservada. Se me hace que tal palabra sólo tiene sentido dentro de la estructura del with, por lo que ya que ésta es palabra reservada, por transición y uso Idem también debe serlo. Saludos, |
|
#8
|
||||
|
||||
|
Cita:
![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Analogías entre C++ y Object Pascal | noob | C++ Builder | 3 | 16-02-2009 18:19:54 |
| como usar object pascal y gtk | Lionheart | OOP | 6 | 09-12-2005 19:31:08 |
| manual de excepciones de object pascal para free pascal??? | Garion | OOP | 3 | 27-05-2005 00:42:29 |
| ¿Object Pascal para todo? | ReigDidion | OOP | 10 | 12-02-2004 08:28:07 |
|