Arquitectura

Como muchos proyectos de software, el simulador M++ tiene una arquitectura modular:

Tecnologías

Para el desarrollo del simulador se utilizaron las siguientes tecnologías:

  • C para el backend.
  • Web con React para el frontend.

C es un lenguaje de propósito general de medio/bajo nivel que se puede utilizar en todos los sistemas operativos por su independecia de hardware. Es por esto por lo que el backend se desarrolló en este lenguaje.

El frontend se desarrolló en React, una librería de JavaScript para la web.

Multiplataforma

Uno de los aspectos más importantes es la compatibilidad con todos los sistemas operativos.

La interfaz visual fue lo más problematico para programarlo en C. Aunque hay varias librerías que hacen esto posible, fue una tarea difícil y tediosa que no producía el resultado deseado.

El objetivo era conseguir un diseño fácil de utilizar y sobretodo amigable y bonito.

Cuando un usuario utiliza tu programa cómo una herramienta para realizar algo, lo más que puede hacer el desarrollador es facilitarselo a través de una interfaz accesible.

También se trató de hacer la interfaz gráfica en Java, pero no lograba el objetivo.

Entonces es cuando se comienza el desarrollo de la interfaz gráfica en la web, a través de React.

Pero, si el núcleo está desarrollado en C, ¿cómo puedo utilizarlo en la web?. Tradicionalmente no se podía “importar” ficheros binarios (compilados de C) en la web. Desde 2015, esto es posible gracias a WebAssembly, un formato de código binario portable que se ejecuta en el lado del cliente (portable).

¿Para qué desarrollar un programa en cada plataforma, si se puede crear una web accesible desde todos los sistemas operativos?