¿Cuál es su elección de stack tecnológico para el desarrollo web full stack en 2017?

Gracias por el A2A!

Prefiero esto con el hecho de que mi lista es más o menos una guía basada en el trabajo que he realizado durante los últimos años y que las necesidades del proyecto serían lo primero.

Interfaz:

  • React (más bibliotecas de ecosistemas) sería mi valor predeterminado
  • AngularJS (1.x) sería mi elección si estuviera trabajando en algo rápido y sucio
  • D3 sería mi elección para visualizaciones complejas de datos
  • three.js sería mi elección para proyectos relacionados con WebGL
  • JavaScript (sin marco) sería mi elección para la mayoría de los proyectos de juguetes que no se centran en hacer manipulaciones DOM.

Capa de comunicación:

  • RESTful API sería mi forma preferida de comunicarme entre mi cliente y servidor o que otros desarrolladores consuman mi API
  • Los Buffers de protocolo serían mi método preferido de comunicación entre servidores

Servidor:

  • Node.js sería mi predeterminado
  • Python si estuviera trabajando en algo para Google
  • Cualquier lenguaje compilado maduro sería mi elección si estuviera más preocupado por el rendimiento por alguna razón: Java o Go si Google
  • Rust sería mi elección para proyectos de juguetes que no requieren tecnologías maduras y tal o si lo escribiera solo para encuadernaciones

Base de datos (relacional):

  • PostgreSQL sería mi predeterminado
  • MySQL sería un finalista cercano y no se desanimaría

Base de datos (clave-valor):

  • Redis sería mi defecto
  • CassandraDB sería mi elección para conjuntos de datos más grandes y persistentes, aunque me pregunto si un tipo de base de datos diferente sería más apropiado
  • RocksDB parece un proyecto interesante, pero no sé si realmente lo usaría …

Base de datos (documento / almacén de blobs):

  • Google Data Store (o DynamoDB de Amazon) sería mi predeterminado
  • Google BigTable si pudiera justificar el costo de la capacidad de consultar sobre el conjunto de datos

Hoy en día hay una gran cantidad de lenguajes de programación diferentes en los que se realizan las aplicaciones web. Y, además, en todos los idiomas populares, hay ejemplos de grandes aplicaciones, como:

  • PHP: Facebook, Vkontakte, Películas
  • Python: Instagram, Pinterest, Reddit
  • Ruby: 500 px, Groupon, Airbnb
  • Java: eBay, Amazon, Alibaba
  • C #: Guru, desbordamiento de pila, Bank of America
  • JS: LinkedIn, Walmart, PayPal

Por supuesto, cada idioma es diferente, y al elegir, deberíamos guiarnos por criterios objetivos con vistas a las tareas del proyecto. Quizás este artículo te pueda ayudar.

En realidad, una pregunta bastante tonta: dependería por completo del proyecto y las limitaciones impuestas por el entorno de tiempo de ejecución objetivo.

Para muchas cosas, construir en WordPress o Drupal es la opción obvia.

Para los proyectos en los que estoy trabajando ahora (algún software de protocolo bastante específico para la planificación y coordinación de operaciones):

  • Lado del cliente: admite una amplia gama de clientes, con diferentes interfaces (correo, noticias, web); las interfaces principales son SMTP, NNTP y API HTTP RESTful. Para funciones a las que se accede a través de un navegador, probablemente una combinación de HTML5 (con compatibilidad con versiones anteriores), JavaScript, posiblemente alguna tecnología XML. PouchDB está bajo consideración.
  • Back-End: Erlang para implementaciones de protocolos. Probablemente CouchDB para un montón de cosas.

Aquí hay un excelente video de LearnCode.academy que ofrece una visión general de las opciones de desarrollo de pila completa de hoy en día.

Hay tantas opciones para lograr el mismo objetivo. Cada componente de un software que cree que encontrará varias herramientas / marcos, sin embargo, según su lógica / escala comercial o carga, debe seleccionar cuidadosamente el marco para su trabajo.

Uno de los principales marcos utilizados en 2016 es nodejs con conceptos de diseño reactivos. Por cierto, receptivo es un subconjunto de reactivo, así que no te confundas con él.

Si desea obtener un trabajo rápidamente y mantenerlo indefinidamente, .NET es el camino a seguir. También ser bueno en Javascript nunca es una mala idea. Todas las pilas principales lo usan ampliamente, e incluso tiene su propia pila completa (MEAN). Además .NET ahora es multiplataforma y mucho más rápido en su última versión de .NET Core. Aquí hay una publicación de blog que escribí para el trabajo que lo detalla: http://blogs.askcts.com/2016/11/

Python y web2py son mi opción para el desarrollo rápido y fácil de aplicaciones web. Web2py proporciona todo lo que necesita de inmediato. ¡Las baterías están incluidas! Si hay una manera más rápida y fácil, no sé de qué se trata.

Sin embargo, ahora que he aprendido a escribir aplicaciones web con Smalltalk y Teapot, puedo pasar a ellas. ¡Es tan genial!

Depende de lo que quieras construir, pero para la mayoría de los casos, Ruby on Rails sigue siendo uno de los mejores marcos para construir una aplicación web.