Lol, yo emocionado porque las apps de Rust son muy livianas y resulta que para compilarlas necesitás una PC de la nasa. Ya se me fueron las ganas de aprender con mi tostadora :D
Edito: Según me comentan, mi tostadora debería poder sobrevivir y además la única compilación lenta es la primera, entonces arreglar bugs no sería tan tortuoso.
@muchanchoasado bueno, es relativo. Unas notas:
1. Rust en mi opinión es más complejo de aprender que muchos otros lenguajes, precisamente por su eficiencia. En general, yo no empezaría por ahí.
2. No tengo conocimiento de primera mano, pero me parece que tampoco es la opción más simple para hacer aplicaciones gráficas que vayan bien con lector de pantalla. (Pero siempre puedes hacer cosas de terminal o para el navegador.)
3. Aunque parezco crítico, es uno de mis lenguajes de programación favorito (en teoría trabajo programando en Rust).
4. Lo de que las cosas tardan mucho en compilar es... relativo. La primera compilación de tu programa puede ser muy lenta, pero en general las siguientes son muy rápidas porque (como otros lenguajes) sólo hay que recompilar los cambios (más o menos). Yo he trasteado bastante Rust en un portátil antiguo y no sufría demasiado.
@yo Ahora estoy escribiendo desde Fedra, un cliente en Rust hecho por una persona ciega súper completo en funciones, atajos de teclado yun sistema de menú clásico con el alt. Esa misma persona hizo un lector de documentos excelente.
@yo Acá te dejo los githubs por si te interesa chequear el código y ver cómo funciona la integración con lector de pantalla.
https://github.com/trypsynth/fedra
https://github.com/trypsynth/paperback/
@muchanchoasado ah, muchas gracias!
Veo que usa wxWidgets. Es una librería muy antigua para hacer ventanas y botones que funciona en Windows, Linux y macOS. Si @modulux no está al tanto igual le hace gracia (aunque intuyo que está al tanto).
Las librerías más populares y modernas para hacer botones y ventanas en Rust son las que suelen dar problemas.
Siempre he querido aprender wxWidgets, ya tengo un motivo más.
@muchanchoasado vaya, creo que Fedra no puede funcionar en Linux modernos. A ver si tengo tiempo de echarle un vistazo, que me interesa algo así.
@yo No sé si tiene release oficial para linux. ¿Tal vez se pueda modificar el código para optimizarlo mejor?
@muchanchoasado no, es que creo que precisamente el componente que usa para hacer los botones y ventanas no está preparado para los entornos gráficos modernos. Me lo apunto para mirarlo cuando tenga un rato, porque Enafore y Phanpy últimamente me están fastidiando bastante.
@yo @muchanchoasado Sí, precisamente gracias a wx, en particular a través del crate wxdragon, he conseguido hacer mi aplicación para aprendizaje espaciado, que es con lo que he estado estos últimos días: https://modulus.isonomia.net/cosimo.cgi/wiki/home
En general tira muy bien, tiene un pequeño problema de accesibilidad al pasar el foco a una lista, lee dos veces el elemento seleccionado, pero fuera de eso se comporta muy bien.
@muchanchoasado tengo bastante curiosidad por si los sospechosos habituales que programan y saben de accesibilidad te recomiendan algo. En general, mis recomendaciones siempre dependen mucho de lo que quiere hacer el "aprendiz".
(Y curiosamente, uno de los lenguajes que más recomiendo es Python, que tengo entendido que es de los pocos lenguajes que ¡es algo hostil al lector de pantalla!)
@yo ¿Sabés qué es lo curioso? NVDA está programado en Python. Hace unos años usábamos un cliente llamado TWBlue para twitter y mastodon, también en Python. Te diría que es el lenguage más usado por ciegos.
@muchanchoasado bueno, es que es de los lenguajes más populares del mundo.
Lo que tiene de especial es que mientras que muchos lenguajes utilizan los caracteres { y } para marcar el inicio y el fin de "bloques", Python sólo usa la indentación (el número de espacios al principio de cada línea).
Entiendo que ya los editores de texto para programar accesibles lo tendrán en cuenta, pero me suena que al principio era bastante problemático.
@muchanchoasado (y muchísimos programadores que pueden ver, le tienen tirria a Python precisamente por el mismo motivo. Que la verdad causa algunos inconvenientes a todo el mundo...)
@yo O sea que según el número de espacios al inicio de una línea estás representando una propiedad distinta? Sí suena confuso. Cuando ponemos al lector de pantalla a verbalizar todo, los espacios no se toman en cuenta porque sería el colmo de la redundancia jajaj. Igual nunca usé programas como VSCode o similares, así que no sé si la lectura cambia en esos contextos si las comparamos con texto plano.
@muchanchoasado básicamente, si en un programa quieres hacer algo diez veces, en la mayoría de lenguajes escribes "hacer diez veces", luego un {, luego lo que quieres hacer, y luego un }, para que el ordenador sepa dónde empieza y dónde acaba lo que quieres que se haga 10 veces.
En Python, en vez de usar { y }, lo que quieres que se ejecute 10 veces se pone más a la derecha.
Entiendo que los editores accesibles detectarán esto y lo presentarán de una manera no visual.