FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
El problema es que esta propuesta, la escuchara el dueño de Delphi? Y de hacerlo, creara los medios para migrar el codigo?
Lo dudo. No es que sea muy dificil ver que se puede arreglar en un lenguaje, es que es mas facil agregar que quitar, y ni siquiera en los open source se ve mucho que se animen a quitar.
__________________
El malabarista. |
#2
|
||||
|
||||
Me ha parecido entender que se pretende modificar para que sea más seguro y no haya equívocos o ambiguedades en el código, ¿no es eso?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 17-09-2016 a las 20:17:46. |
#3
|
||||
|
||||
¡Correcto! Eso pretende esta propuesta.
|
#4
|
||||
|
||||
Me apunto, aunque no se me ocurre cómo darle visibilidad
|
#5
|
||||
|
||||
Eso depende de ti, de cómo emplees tu tiempo y energía. El mundo mejora conforme decimos vale y actuamos; empeora cuando sólo nos detenemos a mirar las dificultades.
|
#6
|
||||
|
||||
Cita:
Ahora bien, ve a los foros del dueño, haz la propuesta, habla con la gente dentro, si recibes el mas *minimo* de escucha te sigo encantado. Y lo digo, porque eso es lo que he hecho antes. No hay como ser optimista cuando la *realidad* ha sido consistente. Ademas, es un hecho que en la generalidad de los casos, no se recibe muy bien cambios en los lenguajes que impliquen romper codigo, mucho mas cuando aqui la comunidad delphi es MUY *reaciente* a cambiar. Pero sabes que me encanta que me prueben equivocado, mas cuando eso resulta en que le vaya bien a Delphi. P.D: Y apuesto que la misma respuesta la recibirias de FreePascal.
__________________
El malabarista. Última edición por mamcx fecha: 17-09-2016 a las 21:33:12. |
#7
|
||||
|
||||
A mi no me gusta el with en ninguna de sus formas, sabores y/o colores. En ningun lenguaje. Asi que de proponer algo, solamente se me ocurre matarlo; y si no lo matan, no usarlo. Asi de facil
Por mas que se implemente algo como lo de python, sigue teniendo el problema de que agrega un bloque mas al codigo, con un nivel de sangria adicional, el cual no hace para nada mas legible el codigo. Si el problema es que no gusta escribir "nombres largos de variables" se puede utilizar una fea tecnica que es crear una temporal con el nombre "corto"
Aun asi, yo sigo pensando que las variables abreviadas siguen siendo malas (de ahi lo de feo) porque "ds" no me dice mucho. Es como cuando aprendemos a programar que no se porque motivo a las variables siempre las llamabamos: x, y, z, temp, aux, flag, etc.. Otra forma de atacar el problema es usar metodos encadenados, o interfaces fluidas; basicamente todos los metodos que soporta la interfaz devuelven el objeto al que se le envio el mensaje; osea, todo devuelve Self y le puedo seguir encadenando llamadas a metodos. De esta forma se puede usar una coleccion asi:
|
#8
|
||||
|
||||
El problema con Delphi es que la sintaxis es muy "verbosed" y no se presta para hacer código conciso; ademas el tener que declarar las vbles en su bloque. Ambos son puntos a favor del lenguaje, pero hay cosas con las que el codigo deja de ser idiomatico.
Lo mismo con las interfazes fluidas y muchas otras cosas. Para visualizar un lenguaje en el espiritu de pascal pero mas "conciso" este es el mejor ejemplo que conozco: http://nim-lang.org/
__________________
El malabarista. |
#9
|
||||
|
||||
Cita:
Pero en muchos otros casos si han "obligado" a ciertos cambios que se han mantenido consistentes desde el dia #1. Por ejemplo, los string en Delphi desde toda la vida fueron 1-based, soportan COW: simplemente al asignar un nuevo valor a un string, la RTL se encarga de todo. En realidad lo que terminamos teniendo es un string que internamente es "inmutable", pero se tiene cierta "sintaxis sugar" que permite tratarlos como mutables, sin tener que andar usando StringBuilders. Otros lenguajes matarian por poder hacer algo asi. Todo eso esta muy bien en Delphi, pero solo es "estable" en el compilador para Windows Para los compiladores moviles, los string son 0-based, y aun no, pero en el futuro, podrian volverse "realmente" inmutables: Cita:
No solamente pasa con Pos; lo mismo sucede con: Copy, Delete, Trim.. basicamente hay que reescribir el codigo que maneja strings. En un principio, los compiladores para moviles soportaban el tipo UTF8String. Luego, no se en que version, lo sacaron. Ahora en la ultima, 10.1 Berlin, esta de nuevo. Entonces, no quiero criticar porque las cosas cambian; para mejorar, hay que cambiar. Si se pierde cierta compatibilidad hacia atras, "lo lamento": no se puede pretender que el codigo que esta escrito en Delphi en el año 2000, funcione sin tocarle absolutamente nada en 2016; no se hasta que punto se puede decir que es una "feature" que el codigo tan legado funcione: es tiempo de refactorizar y mejorar el codigo legado para que use las caracteristicas mas nuevas. Sino, no tiene mucho sentido actualizar el compilador "porque si" Lo que si es para criticar, es que Embarcadero se jacte de decir: "no queremos perder la compatibilidad hacia atras", y se ponga a jugar con los string (entre otras cosas) como lo ha estado haciendo |
#10
|
||||
|
||||
Al recuerdo que hace un tiempo nos habías comentado sobre esa forma de usar el with, ¿Puede ser? ¿O recuerdo mal?
Suelo tener mis diferencias con Mario, pero creo que en esta coincido sobre como debería ser declarado el uso del with. Se me hace que si el problema del with pasa por su problema de ambigüedad y nomeclatura, la forma más familiar al estilo de Object Pascal debería tener la construcción "With As Do" Ahora bien, también siento que de llevar esa forma de usarlo, al final no elimina nada... más bien está escondiendo un problema dentro de otro. Como bien lo señala Agustín, ahora el problema se traduce en nombres de variables cortos. La verdad es que entre tener esto:
O el tener esto:
Siendo Clave:
No hemos ganado mucho que digamos. Y la técnica sucia del nombre corto del ejemplo de Agustín, no deja de ser otra forma de llegar a lo mismo. Aún así, considero que el with podría recibir algún tipo de mejora... y que merece cierta compasión y no pasarlo por la guillotina (no todavía...) El problema de ambigüedad y debilidad del with se da cuando no se puede distinguir el objeto de referencia del resto de los posibles objetos con los que podría "interactuar". Porque hay casos en los que no hay problemas de distinción, como el ejemplo de muestra que hay en Delphi Basics:
Si la mejora pasa por tener alguna "marca" que elimine esa ambigüedad ¿Porqué no pensar en algún carácter especial, como el & para indicar que lo que sigue pertenece al objeto con el que se está haciendo uso en la construcción With? Así podríamos entonces esperar cosas como:
Aunque esto no me suena muy Object Pascal friendly... Quiero pensar que podría hacerse de alguna otra forma. Yo por el momento no soy capaz de pensar otra alternativa de llevarlo a cabo. Saludos, |
#11
|
|||
|
|||
El with tiene fallos importantes .... a la hora de depurar un programa los objetos referenciados con with no muestran su valor en el popup etc.
A mi me da que no esta del todo bien implementado en el lenguaje o en el ide. Un fallo de esos con la cantidad de veces que se depura un programa es muy importante. Por lo menos en delphi xe2 y xe4 falla. Yo por NORMA no lo utilizo. |
#12
|
||||
|
||||
Cita:
__________________
El malabarista. |
#13
|
||||
|
||||
Ahora mismo voy a ver si en el foro de Lazarus/Free Pascal han dicho algo de esto, y si no encuentro nada lo comento a ver qué dicen.
|
#14
|
||||
|
||||
Cita:
Yo voy más de acuerdo con la comparativa con el goto. No hay necesidad. Lo que es necesario es hacer que la gente programe bien, que tenga buenas técnicas y en tal caso, el with, al igual que el goto, serán evitados en su mayoría de veces. Incluso el goto es usado, aunque muchos lo nieguen o lo desconozcan, cada vez que usan un break o un continue. Más me gustaría, por ejemplo, ampiar el uso del case a strings, cosa que, a diferencia del with, no rompería ningún código. LineComment Saludos |
#15
|
||||
|
||||
Cuando me inicié en pascal y use With simplemente no me gustó así que a la fecha no lo uso. Es como el Goto, sigue existiendo en Delphi pero no por eso se usa y es más, no vale la pena mejorarlo.
Exacto, aquí lo conveniente es llevar las propuestas a la casa del dueño, por que no hacerlo y gritar al vacío es lo mismo...
__________________
Conoce mi blog http://www.edgartec.com |
|
|
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 |
|