Hola,
controlar que no te hayas equivocado al escribir una variable
Pienso que es un error muy común, me ha ocurrido muchas veces al escribir rápido. En el editor que utilizo, cuando seleccionas una palabra automáticamente te marca las otras idénticas, eso me ah ayudado mucho para controlar que los nombres sean los correctos, sobre todo cuando contiene las letras
Li.
que las asignaciones en vez de := hayas puesto =
Esto no ocurre en v2. Algo como
a = 2 genera un mensaje de error. Es una de las tantas cosas malas de v1.
No se si existirá pero hay alguna manera de poner un tag #strict o algo similar que identifique como erroneas variables que no hayan sido definidas con anterioridad?
Yo siempre utilizo la directiva
#Warn (todas las advertencias) en todos mis
scripts, ayuda ah detectar ciertos errores y pienso a utilizar mejores prácticas de programación. Como a la hora de utilizar variables que no hayan sido declaradas e inicializadas con un valor antes. En
la documentación hay ejemplos.
Considero muy buena práctica de programación definir las variables que se van a utilizar antes, y especificar
local si solo van a ser utilizadas dentro de la función.
Por otra parte ver que opinais sobre la versión 2, merece la pena hacer el esfuerzo en cambiarse o bien mejor esperar a que esté "madura" lo digo en entornos productivos. O simplemente lo que funciona funciona y lo que no, no por lo que si te va mejor pasar a al 2 y dejar la 1.
v2 funciona, y muy bien, considero que lo suficiente como para ser utilizada como la v1. Actualmente se encuentra en fase
Alpha, sin embargo yo la vengo utilizando durante mas de 2 años, y jamás me encontré con problemas graves específicos de esta versión (por el hecho de ser
Alpha).
El único problema que le veo a v2, son los cambios drásticos necesarios que pueden venir con las próximas actualizaciones (si es que se sigue actualizando), lo que significaría reescribir gran parte de tu código si quieres seguir recibiendo actualizaciones y mejoras. Uno de los cambios más esperados, por ejemplo (dejando de lado el multi-hilo, que probablemente nunca llegue a la versión de
lexikos), es uno que se esta discutiendo
aquí, junto con la posibilidad de crear estructuras, algo múy útil si por ejemplo trabajamos con Direct2D/3D.
Dos buenas razones para utilizar v2: tiene un mejor rendimiento, no recuerdo ahora que tema, pero vi uno donde v1 no funcionaba correctamente, creo que dejaba de responder, y en v2 si funcionaba sin problemas. Además, nos alejamos de todas esas malas practicas de programación qué, de alguna manera, promueve v1.
Pienso que el uso del operador
% actualmente no favorece en nada a la hora de detectar errores y escribir un código limpio. Preferiría que este operador sea cambiado para realizar la
operación módulo en su lugar.
Sobre de si merece la pena o no, diría que depende del script que vayas a escribir, uno que utilice la funcionalidad principal o simple, como es la asignación de teclas y esas cosas, diría que sí, no me imagino que clase de cambios podrían romper estos scripts a futuro. Pero si se van a utilizar
DllCall, mucho lo que es
Gui,
VarSetCapacity, ahí la cosa ya cambia, y podría ser necesario reescribir la gran parte, o todo. Relacionado:
https://jacksautohotkeyblog.wordpress.com/2018/01/08/autohotkey-version-2-0-should-i-wait-for-it/.