¿Qué idioma de backend debo aprender / usar para un proyecto web en 2017?

Aquí vamos: la elección de cualquier plataforma debe basarse en los siguientes criterios, que deben ajustarse a un idioma o plataforma para ser seleccionados

1- ¿Tienes suficiente talento en el mercado?

2- ¿Es fácil de aprender si se requiere contratar más nuevos solo para aumentar los recursos?

3- ¿Se interesarán los recién llegados?

4- ¿Es una plataforma estable?

5- ¿Durará los próximos 10-15 años?

Solo veo un lenguaje de programación de back-end que satisface todas estas características, que es GO, diseñado por google y utilizado en muchos productos en google.

Primera razón : para seleccionar el GO se basa en su diseño porque se escala con su hardware y sus núcleos. Si miramos hacia atrás, la mayoría de los lenguajes de programación fueron diseñados en la era del modelo de ejecución Intel Single Core, Single Thread, que no estaba al día con los últimos desarrollos en hardware. Los lenguajes idearon hacks para usar la capacidad del hardware, pero no tiene comparación con el mecanismo incorporado nativo en los lenguajes de programación GO.

La segunda razón es que GO Lang es un lenguaje compilado estáticamente que da un impulso en el rendimiento.

Tercera razón : código abierto, lo que significa que no está en deuda con los grandes corporativos.

Cuarta razón : encaja muy bien con la arquitectura de docker y microservicios, que será la arquitectura principal durante los próximos 10 años para el mundo de aplicaciones web / aplicaciones móviles en el ámbito de la nube.

Hay otros idiomas que se pueden usar, pero una vez más, la elección dependerá de su presupuesto / alcance / visión de su proyecto.

Ahora la gente puede argumentar que python, php y otros lenguajes se usan en grandes proyectos. FB usó php, pero la razón era que era mejor en ese momento dadas las circunstancias, ya no.

Buena suerte y avíseme si necesita más información si elige ir con golang.

Esa es una gran pregunta, gracias por el A2A.

Mi experiencia es principalmente emprendedora, ya sea desarrollando aplicaciones web para proyectos de los que soy propietario, así como tomando selectivamente contratos para clientes que desean llevar un prototipo viable al mercado con relativa rapidez para que puedan probar o refutar su idea en el mercado.

Con este fin, mi filosofía es en gran medida llevar rápidamente al mercado un prototipo o MVP “suficientemente bueno” e iterar rápidamente sobre él a medida que gana tracción. Definitivamente hay otros (y probablemente mejores) enfoques. Pero quería referirme a eso porque influye en mi enfoque y recomendaciones.

La mayoría de nosotros nunca lidiaremos con el gran volumen que los sitios como Facebook y Quora diseñan para casi cualquier lenguaje moderno es adecuado para la mayoría de los proyectos. (Y si termina allí, entonces las probabilidades son altas de que tendrá muchos recursos para lidiar con los problemas de escala / optimización).

Bien, volvamos a la pregunta: “¿Qué lenguaje de back end debería aprender y usar para proyectos web en 2017?”

Creo firmemente que el idioma que elija es mucho menos importante que aprender a usar ese idioma en particular de manera efectiva y correcta. Puedes hacer cosas estúpidas con la mayoría de los idiomas, así que es importante aprender cuáles son esas cosas y la forma correcta de hacerlo.

Mi objetivo es típicamente llevar rápidamente un prototipo viable al mercado. Idealmente, esta primera versión debería ser lo suficientemente segura y debería escalar lo suficientemente bien como para que en el futuro previsible no tenga que luchar para parchar agujeros o evitar que el sitio se bloquee. Mucho de esto recae en buenas prácticas de desarrollo más que en un lenguaje específico.

La mayoría de los idiomas están en constante evolución. He estado involucrado con una aplicación web creada hace unos años, originalmente en PHP4 que se está preparando para la migración a PHP7. Hubo un par de veces que pensé que sería interesante cambiar a un idioma diferente, pero la realidad es que las circunstancias nunca lo han exigido. PHP ha sido adecuado y se ha vuelto mucho más eficiente para que podamos exprimir a más usuarios en el mismo hardware.

En general, esa es la dirección que deben seguir la mayoría de los idiomas a medida que evolucionan y maduran. Serán mejores, más rápidos y solucionarán algunas de las malas decisiones que se implementaron en versiones anteriores.

Bien, suficiente divagación.

Si comenzara un nuevo proyecto mañana, estos idiomas estarían en mi lista para su consideración, dependiendo de la escala del proyecto y algunos factores como el volumen / tamaño de los datos, requisitos casi en tiempo real, etc.

  • PHP7: No hay nada emocionante o glamoroso en PHP. Ha estado alrededor de la cuadra. Está en todos lados Ha recibido muchas críticas legítimas, muchas de las cuales han llevado a mejoras. Hubo mejoras significativas de rendimiento y memoria en la última versión. Solo asegúrese de tomarse el tiempo para aprender buenas prácticas.
  • Java / Scala: Parece que todas las innovaciones tecnológicas realmente fundamentales ocurren en Java. Es enorme en la empresa y está probado en batalla. Scala comparte muchas de las mismas fortalezas, mientras que parece aportar algo de elegancia a la sintaxis de Java. He querido construir algo en Scala por un tiempo, simplemente no he tenido la oportunidad ni el tiempo. Si estuviera tratando con grandes volúmenes o datos o muy alta concurrencia, probablemente comenzaría aquí.
  • Nodo: Creo que Nodo es … interesante. Originalmente estaba entusiasmado con Node, pero creo que a veces se exagera y estoy un poco desilusionado por lo enrevesado que se está convirtiendo el desarrollo de Javascript. Esta es probablemente una opción que descalificaría bastante rápido, pero estoy abierto a ver qué sucede a medida que evoluciona.
  • Ruby / Python: para aplicaciones web parece que PHP, Ruby y Python son bastante intercambiables. No estoy seguro de que haya alguna razón particularmente convincente para elegir uno sobre el otro o migrar de uno a otro. (Python es interesante aquí, ya que también está bien establecido fuera del paradigma de la aplicación web, pero eso es menos relevante para su pregunta).

Estoy seguro de que hay varias otras buenas opciones como Erlang o Go, simplemente no son idiomas que están en mi radar en este momento. Me doy cuenta de que tiendo a inclinarme hacia idiomas más antiguos que se han vuelto algo establecidos, estables y han acumulado seguidores sólidos.

Gracias de nuevo por el A2A!

¡En mi opinión, aprender JavaScript será la mejor apuesta! Como ya tiene el Front End hecho, estoy bastante seguro de que ya conoce JavaScript. Básicamente, no tienes que aprender nada nuevo aquí.

Puede usar Node.js como su servidor y Express.js y muchos otros marcos para el backend.

Dado que está buscando construir un sitio web, querrá usar un marco web para hacer mucho trabajo pesado. Pero, ¿qué marco web? ¿Y en qué idioma?

Acabo de encontrar esto: índice de Popularidad de Lenguaje de Programación PYPL.

Es un sitio que clasifica los lenguajes de programación en función de la frecuencia de búsqueda de tutoriales en Google. Como mencionó PHP, probablemente se esté preguntando si aún es una buena idea en 2016 (casi 2017) continuar usándolo. Según su popularidad, parece una opción razonable a pesar de que tiene sus pros y sus contras, como recientemente escribió alguien de Slack (y estoy seguro de que muchos otros). Pero, también parece razonable intentar algo que está ganando popularidad como Python o Javascript (Node.js).

Personalmente, no soy un gran admirador de la inconsistencia de PHP en tantas cosas. Entonces, si tuviera que construir algo nuevo, probablemente probaría algo diferente a PHP. De hecho, acabo de probar una nueva plataforma de blogs llamada Ghost basada en Node.js, y es impresionante por lo que puedo ver hasta ahora.

Te sugiero que pruebes algunas cosas y sigas con lo que sea que te haga sentir emocionado por aprender más.

Parece que quieres algo bastante fácil, por lo que recomendaría Python y web2py para el backend. Web2py es un marco fabuloso que le brinda todo lo que necesita de inmediato. Las pilas están incluidas. No podría ser más fácil ni más rápido escribir una aplicación web back-end, ni siquiera con Django.