¿Qué pila tecnológica debo elegir para crear aplicaciones empresariales?

¿Es muy difícil proporcionar una respuesta detallada y personalizada dada la descripción anterior? Usted ha mencionado características que tienen características muy diversas y diferentes. Esto es lo que sugeriría en la primera corazonada, y agregar / eliminar desde allí:

Interfaz. En lugar de construir 2 bases de código para iOS y Android, desarrollaría una aplicación híbrida / basada en HTML que luego se puede ejecutar para que se ejecute en la web, iPhone y Android. Sugeriría react-native (tenga en cuenta los problemas de licencia), iónico o Angular 4 (se supone que es móvil primero, no estoy seguro de cómo se juega).

Interacción con el lado del servidor utilizando el protocolo REST. Puede tener Java ejecutando el back-end, si espera una carga muy pesada, o, en la mayoría de los casos, Python, utilizando bibliotecas como Django o Flask. El problema con esos es que requieren bibliotecas adicionales (que vienen con su limitación) para soporte RESTful. Todavía vale la pena el esfuerzo. Si va a Java, Play Framework es la mejor apuesta que se me ocurre.

Base de datos: por lo poco que veo arriba, parece que se necesitarán tanto una base de datos NoSQL (como MongoDB) como una base de datos relacional (MySQL / MariaDB o PostgreSQL).

Finalmente, todo esto debe ejecutarse en la nube. Recomiendo no usar un servidor virtual o dedicado, sino Paas, ya sea Microsoft Azure (3 años gratis para startups) o Amazon AWS (1 año). Sé muy poco sobre Google Cloud y creo que tienen menos que ofrecer.

Esos son mis dos centavos. Si quiere profundizar, haga ping.

Buena suerte

Entonces, para el frontend, estás “atascado” con JavaScript. Dicho esto, existen muchos frameworks (Angular 2, React y Vue.js son los más populares). Así que, básicamente, elige con cuál te sientes más cómodo y hazlo.

Para las cosas del lado del servidor … Bueno, personalmente aconsejaría contra java y ruby, ya que ya son soluciones un poco “anticuadas”. Si eres bueno en Python, hazlo. Los marcos de Python más utilizados para aplicaciones web son Django y Flask. Son bastante diferentes en los que Flask se enfoca en ser muy liviano y no se envía con mucho desorden. Django, por otro lado, trae muchas características. Nuevamente, personalmente, prefiero Flask: tiene todo lo necesario para una aplicación web sin desorden innecesario en el código.

Para servir, en mi opinión, solo hay una forma viable: nginx. Es el servidor más preformado, tiene muchas características útiles y es altamente personalizable. Apache realmente no está a la altura de hoy.

Si por móvil te refieres a aplicaciones nativas, existen básicamente dos formas: codificar la aplicación web, ios y la versión de Android por separado (lo cual no es malo de ninguna manera) o usar un marco como Ionic que permite construir aplicaciones web, ios y android con misma base de código (casi)

Para el enfoque: cree una JSON Api, que se usa de manera uniforme en todos sus servicios: web, aplicaciones nativas, etc. Esto permite que un tercero use su servicio y tiene el buen efecto de que codifica su Backend una vez , y luego básicamente le agregas diferentes IU.

Espero que esto cubra la mayoría de las cosas para comenzar 🙂

Según mi experiencia, debería usar las tecnologías java o JVM junto con node, js, angular, html5.

-JVM es la plataforma más poderosa del mundo para construir el tipo de aplicación que mension.

Simplemente diseñe su backend con java, scala y usando framework como Spring Boot, Spring Rest, Spring DATA JPA, Spring TX y más.

Puede usar node.js para página de subproceso único para que pueda optimizar el rendimiento.

Para UI / UX, vaya con HTML5, JS angular y bootstrap.

Java tiene muchas herramientas de código abierto para pruebas de aplicaciones y balanceo de carga y valores.

Hadoop, Scala tiene un gran apoyo en Java.

Si desea alojar en la nube, tendrá muchas opciones.

Gracias