Hola Irwin gracias por tus aportes. Siempre me gusta ver otros proyectos, para aprender diferentes estilos y técnicas de programación.
Hablando de cloudlang La idea en principio parece buena, pero realmente no lo veo como algo viable. Usar Internet añade una latencia alta a cada función. Tal vez convertir un JSON de tantas líneas demora mucho menos que JsonFox, porque a la final estás procesando el JSON en un lenguaje más rápido, pero también implica que sí conviertes un JSON muy pequeño demorará más por la latencia que añade el request web (y el execscript).
Por un lado te comento que he revisado el código, y creo que sería más rápido usar macro sustitución que usar execscript. Podrías probarlo y ver resultados. Es decir Dividir el código línea por línea y ejecutarlo con &. Sinceramente estoy un 80% seguro que sería más rápido, ya que execscript lo que hace es guardar el código a un archivo temporal, compilar y ejecutar. Solo el hecho de que execscript tenga que escribir en disco, añade una latencia indeseada, e innecesaria, y poco predecible (la velocidad de escritura depende obviamente más del estado y tipo de disco, que del procesador) que creo no pasaría con macro sustitución. Puede que me equivoque, pero no se pierde nada con probar.
Por otro lado, depender de una librería que necesite siempre de Internet puede ser bueno en pruebas, pero no estoy seguro si en producción lo sea. Yo te recomiendo, o te exhorto porque no mejor, en lugar de depender de Internet y un servidor, crear todas esas funciones basadas en kodnet (recuerden que kodnet permite usar cualquier librería/clase .NET y .NET Core directamente en VFP sin registrar, sin permisos de administrador). Así se crearían un montón de funciones sobre 1 única librería.
Y es que creo que en cierto sentido, kodnet está infravalorada. Incluso veo que algunas personas crean librerías usando C# que necesitan de registro y de PERMISOS de administrador, cosas que se pueden abolir usando kodnet. No sé si aquí alguno la ha usado a detalle (sobre todo la última versión) pero si lo hacen más a profundidad, notarán que crear objetos, obtener/asignar propiedades en ellos, o incluso llamar métodos, es mucho más rápido con kodnet, que con objetos o funciones escritas directamente en VFP.
Para probar mi punto, y a lo mejor motivar, ya sea a ti mismo Irwin o a cualquier otra persona a crear librerías usando kodnet les comento el benchmark que hice.
La prueba la hice en un servidor Intel Xeon E5-2630. Cómo es un VPS, los resultados, pueden variar un poco de un equipo real, pero igual sirve para comparar tiempos entre cada librería (además que ejecute varias veces las pruebas).
JSONFox usando el Lexer nativo VFPA 32 bits.
Unos 1511 segundos, es decir más de 25 minutos. La memoria subió hasta más de 160MB aproxidamente.
JSONFox usando el Lexer nativo VFPA 64 bits.
Unos 299 segundos, es decir 5 minutos. Sorprendentemente para mi, en 64 bits, el parser es 5 veces más rápido. ¿Ha hecho CHEN un buen trabajo con VFPA64 o es simplemente porque es 64 bits?
JSONFox Lexer C# VFPA 32 bits
NO FINALIZÓ. Bueno espere más de 15 minutos, y seguía sin acabar, además que la memoria subió de manera desproporcionada. Decidí probarlo en mi laptop que tiene un mejor procesador, y en 15 minutos ya iba por unos 600MB de memoria y aún no acababa. Desistí de esperar que terminara. Teniendo en cuenta lo que dice el repo, pensé que iba a tardar muy poco, pero en realidad parecía que no iba a terminar nunca. ¿A lo mejor es un problema con el archivo que probé?
JSONFox Lexer C# VFPA 64 bits
NO COMPATIBLE CON 64 BITS (al parecer, porque con el regasm de Framework64 no se registra la clase)
Cloudlang VFPA 32 bits y VFPA 64 bit
No finalizó. Sale Syntax Error
Kodnet VFPA 32 bits y VFPA 64 bits
(el código de ejemplo de kodnet no necesita tener nada más instalado a parte de kodnet y el .NET Framework que ya viene por defecto en Windows. kodnet técnicamente se puede usar sin instalar, pero por facilidad de mantenimiento, y para dar un debido soporte a VFPA64 bits, ahora está disponible en forma de instalador. kodnet se puede y se recomienda instalar sin permisos de administrador)
Alrededor 0.3 segundos la primera vez, entre 0.05 - 0.15 segundos en posteriores ejecuciones.
Tanto en 32 bits como en 64 bits, los tiempos de ejecución son iguales
* NOTA: Este ejemplo usa la librería
JSON.NET que ya está incluida en kodnet, pero naturalmente también es posible crear código que depende de otras librerías diferentes.
Cómo se puede ver, el rendimiento de kodnet es bastante notable. La forma de obtener los valores del objeto analizado, sería por ejemplo: m.result.item["txs"].item[0].item["ver"] y que como ya comenté antes, leer los valores de un objeto generado con kodnet, es mucho más rápido que si fueran objetos VFP nativos.
Decidí probar también con un archivo mucho más pequeño, para ver cómo iba la cosa, un archivo de unos 139KB y unas 5000 lineas.
JSONFox lexer nativo VFPA64 = promedio 12 segundos
JSONFox lexer nativo VFPA32 = también unos 12 segundos. ¿Por qué con el archivo grande demora muchísimo más? NO lo sé, pero con el archivo grande sí probé como unas 3 veces y en todas demoró unas 5 veces más en comparación a VFPA64.
JSONFox lexer C# VFPA32 = Creo que Definitivamente hay algo mal con el lexer, c# espere unos minutos, no terminaba, y la memoria seguía subiendo desproporcionadamente.
CloudLang VFPA32 y VFPA64 = esta vez si finalizó. Promedio 11-12 segundos. Pensé que iba a ser menor el tiempo, lo ejecuté varias veces para comprobar. No sé exactamente que uses en el server, no dudo que el parser sea rápido, solo que creo que los tiempos de respuesta en VFP dependerán muchísimo de la latencia de la red, y de la sobrecarga del servidor, y en este caso el tiempo no presenta mejoras con respecto a JSONFox. De hecho si el JSON fuera aún más pequeño, creo que claramente JSONFox sería superior.
Kodnet VFPA32 y VFPA64 = Primera vez 0.15, posteriores, 0.04 segundos promedio
(Imagen de referencia de la segunda prueba de cloudlib)

En los archivos más grandes, JSON parse en kodnet puede ser hasta unas 19000 veces más rápido que JsonFox en 32 bits, y unas 3700 veces más rápido que JsonFox en 64 bits.
En los archivos más pequeños, kodnet puede ser hasta unas 1000 veces más rápido que JsonFox y Cloudlib.
Cloudlib depende más de la latencia de la red, disco, y otros factores externos que realmente del código.
Programar un parser enfocado en rendimiento es una idea genial, pero creo que el enfoque de hacerlo depender de internet no es viable. En cambio si lo haces con kodnet, tendrás un rendimiento superior sin dudarlo. Sería muy bueno verte crear funciones que trabajen con Kodnet.