Te sugiero que desacoples tu aplicación en tres partes. Un backend que ofrece una api JSON, una aplicación de interfaz web que la usa y una aplicación androit que usa la api. Este desacoplamiento le dará una gran flexibilidad para futuros desarrollos y le permitirá cambiar de tecnología mucho más fácilmente. Echa un vistazo a Wkipedia sobre microservicios: microservicios. Si usa ese patrón, puede elegir su tecnología según la tarea que la aplicación necesita para completar. Dado que no mencionó las tareas que debe realizar su aplicación, es difícil recomendar un idioma para el backend. En el caso de la aplicación de Android, Python y Java son opciones comunes. En cuanto a la interfaz web, puede elegir entre la clásica aplicación Javascript / Nodejs o puede elegir un lenguaje moderno y elegante como Clojure (Clojurescript) o Elm. Para su backend hay muchos candidatos:
- Python (echa un vistazo al marco de Django)
- Java (Java se volvió un poco más moderno en los últimos años, pero otros lenguajes ofrecen mejores herramientas. Pero la JVM es rápida y muchos desarrolladores conocen Java)
- Scala (Otro lenguaje JVM que admite el paradigma funcional y el paradigma orientado a objetos)
- Clojure (lenguaje JVM funcional. Es un dialecto Lisp y muy potente. Puede escribir mucha funcionalidad con menos código).
- Ruby (muchos webframeworks, gran comunidad, fácil de aprender. Algunos frameworks: Rails, Sinatra, Grape, Hanami (formalmente conocido como Lotus)
- Elixir (Lenguaje funcional muy joven, pero muy potente. Muy pragmático con un gran trabajo de trama web con sockets integrados. Elixir es muy escalable y tolerante a fallas)
- Erlang (El viejo hermano de Elixir. Un poco menos pragmático, pero con las mismas oportunidades)
- C # (Sintaxis similar a Java. Lenguaje rápido. Pero está vinculado a Windows. Para mí, una razón para no tomarlo (Sí, intentan llevarlo a otras plataformas, pero mientras no tenga una prueba de concepto con una aplicación del mundo real desde mi perspectiva))
- Ir (Gran sistema de concurrencia (quizás peor en comparación con Elixir y Erlang, pero sigue siendo muy bueno). Pero te obliga a escribir mucho código repetitivo. No tan rápido como esperaba. Ya no es mi elección personal).
Esta lista está lejos de ser completa, pero estos son los idiomas que tomaría en consideración. Personalmente, iría con Elixir si no hay demasiadas matemáticas involucradas. De lo contrario, elegiría Clojure. Pero esta elección depende de usted.
- ¿Cuál es el estado de Drupal a partir de 2015?
- ¿Cómo se debe mejorar el desarrollo de aplicaciones móviles y la promoción web?
- ¿Cómo se ve el panel de administración / backend para un sitio como classpass?
- ¿Hay sitios web con tutoriales para crear animaciones de interfaz de usuario en After Effects?
- Al probar un sitio web o una aplicación móvil, ¿es suficiente grabar las interacciones de la pantalla de un usuario o es esencial grabar en video los movimientos de sus dedos?