Recientemente comencé a escribir una aplicación de simulación de algoritmos de búsqueda de rutas en python.
Toma entradas del usuario, genera aleatoriamente un gráfico 2D y muestra la simulación a través de la GUI.
Ahora, lo que descubrí fue que Python y las aplicaciones independientes no son muy apropiadas para compartir este tipo de aplicación, ya que necesitas hacer que la gente la ejecute en su propia computadora, etc. Sería mucho más conveniente simplemente dirigir ellos a un sitio web.
Obviamente, los elementos de visualización y control deben escribirse en el lado del cliente.
Pero el algoritmo de búsqueda de ruta real podría escribirse en el lado del cliente o del servidor.
Ahora, dado que no hay necesidad de un backend del lado del servidor (es decir, sin base de datos), sería posible hacer la aplicación web completa en HTML / JavaScript del lado del cliente.
La pregunta es, ¿hay una buena razón para no hacer esto?
A mi modo de ver, hacerlo solo del lado del cliente reduciría en gran medida la complejidad, porque no hay necesidad de manejar la interacción continua entre el cliente y el servidor. Para lo único que sirve el servidor, es para servir inicialmente el Javascript al cliente.
Por otro lado ... tendría que escribir todo en Javascript ...
Además, me atrae la idea de tener un módulo modelo reutilizable. P.ej. Si luego quiero tener una aplicación independiente, solo necesito escribir los módulos de Vista / Control.
Me pregunto cuál sería la práctica generalmente aceptada aquí.
fuente
Respuestas:
Usted describió las ventajas de hacer solo el lado del cliente de la aplicación. Aquí hay algunos inconvenientes posibles: si alguno o todos se aplican, considere cambiar a una solución basada en servidor:
En resumen, el Javascript del lado del cliente es una plataforma perfectamente viable para la computación algorítmica, y puede implementarse fácilmente tanto en un navegador como como una aplicación independiente (utilizando un motor de navegador como Awesomium), pero tiene sus advertencias. Repasarlos para tomar una decisión informada.
fuente