¿Cuál es el mejor marco de back-end para un desarrollador con un fondo PHP / JS / C #?

Si disfrutas de JavaScript, entonces ve con node.js. Sin expreso Express hace demasiada magia debajo del capó que simplemente no quieres a largo plazo. No digo que sea malo, más bien tiene su propio propósito. Pero aprenda a construir backend en un módulo http simple y vaya desde allí. Existen muchos paquetes de npm que, si los usa sabiamente, pueden darle flexibilidad. Pero tenga cuidado, tendrá dificultades y las cosas irán más despacio cuando / si comienza sin framework. Intente crear sus propios módulos npm cada vez que sienta que debería estar reutilizando el código. Entonces tendrás tu pequeña navaja suiza para usar cuando la necesites y combinarla como desees. Si va a expresar, será más como copiar / pegar las preguntas de SO en formato de “¿Cómo hacer x en y marco?”. Agregue un problema de programación común como x, y un marco sobreutilizado popular como y.

Además, como mencionaste el golang, debo decir que todavía no tengo tiempo para profundizar en él, pero esa cosa está hecha para la velocidad. Definitivamente lenguaje a prueba de futuro y buena elección.

Cualquiera de las opciones en su pregunta es totalmente factible y grandes ideas. No hay ninguna razón por la que no deba investigarlos y simplemente elegir el que le parezca mejor.

He usado PHP / wordpress, C # /. NET y Node.JS en producción. He jugado bastante con Python / Django y Ruby / Rails. He realizado una cantidad decente de tutoriales en Go, pero nada relacionado con la web está realmente relacionado con la web, a menos que consideres cosas del lado del servidor como las API relacionadas con la web.

Si realmente buscas velocidad, RoR está hecho para eso. Nunca me he metido demasiado porque parece tan diferente a todo lo demás, tengo demasiado miedo de poner todos mis huevos en una canasta al aprenderlo.

Como has usado Xamarin, C # sería una gran opción. .NET core no es necesario siempre y cuando use ASP.NET y MVC 6, puede decidir si desea usar core cuando su aplicación esté básicamente terminada. Tengo un sesgo importante a favor de esto, ya que esto es lo que uso para el trabajo, y he estado aprendiendo desde el comienzo de mi carrera de desarrollo web. C # es muy elegante, y dado que ha usado xamarin, al menos está en algún lugar de la curva de aprendizaje, si no la supera. Si está considerando esto, Java y Spring Framework también podrían interesarle. Me encanta Windows, azure, C #, ASP.NET y el servidor SQL. No conozco a muchas personas que incluso no les guste. Al principio, te tomará un tiempo crear aplicaciones web, especialmente las que provienen de PHP. Después de un tiempo, estarás muy agradecido. Realmente brilla en su confiabilidad y escalabilidad a largo plazo. Mantener aplicaciones asp es realmente bueno, porque hacer cambios en él crea muy pocos errores impredecibles. En mi empresa actual, he gestionado un equipo de entre 1 (solo yo) a 8 desarrolladores. Cuando nuestra empresa comenzó a reducir su velocidad, fue solo para mí y un interno, y realmente no tuve problemas para mantener la base de código que normalmente sería demasiado grande para que una sola persona la maneje. Es el lenguaje más tipado / estático que he usado, así que casi cada vez que haces algo mal, te dirá cuando intentes compilarlo. Otra ventaja de esto es que Microsoft avanza a toda velocidad en el desarrollo de todas estas tecnologías. Parece que todos están explotando realmente.

Node / Express es probablemente su mejor apuesta para la velocidad, especialmente porque ha trabajado con el front-end. Honestamente, el backend js no es tan similar al frontend JS a menos que tenga mucha experiencia en el backend escribiendo aplicaciones enfocadas en E / S. Todavía es agradable y familiar, pero es un ecosistema completamente diferente. NodeJS también es uno de los idiomas más rápidos en tiempo de ejecución, por lo que también es una ventaja. La mayor desventaja es que cada código base de NodeJS en el que he trabajado fue un desastre absoluto, y ni siquiera eran proyectos grandes. Esto no es infrecuente, pero si lo planifica, se puede superar. Todavía creo que en cierto punto de tu escala, estás un poco jodido dependiendo de lo que haga tu aplicación. JS es tan difícil de coordinar entre equipos y diferentes tipos de desarrolladores.

Python / Django tiene la curva de aprendizaje más fácil. Parece que todo es más fácil en Python. Puede encontrarse con problemas similares en el lado de la capacidad de mantenimiento / escalabilidad cuando se trata de aplicaciones web en python. Sin embargo, Quora lo hace, y son enormes. Simplemente lea mucho sobre las metodologías del ciclo de vida del desarrollo si decide Node o Python y debería estar bien. Sin embargo, puede llegar un momento en que su compañía de un millón de dólares no pueda expandirse aún más solo por una decisión que tomó hace años. La mayoría de la gente estará de acuerdo en que la escritura estática / débil y los idiomas interpretados pueden causar grandes dolores de cabeza. Básicamente intentan arreglar las cosas en tiempo de ejecución para que no tenga que hacerlo. Esta es una espada de doble filo.

Los he probado todos. Tú también deberías, eventualmente. Simplemente elige uno y crea un sitio web en él. Cuando haya terminado, regrese a quora y haga / investigue esta pregunta nuevamente. Decide si quieres quedarte con el mismo o elegir algo nuevo. Esta es la mejor manera de aprender, y también es la razón por la que la programación tarda mucho en ser buena en general. Pero como puede ver por mi conocimiento, incluso aprender sobre las tecnologías que no me gustan y que probablemente nunca volveré a usar me han ayudado mucho en mi proceso de aprendizaje.

Saber por qué no usar ciertas tecnologías le enseñará cómo aprovechar otras. Solo diviértete y haz lo que quieras. Obviamente, el dinero es algo de lo que debemos preocuparnos, por lo que es bueno tener al menos una pila sólida en la que puedas conseguir un trabajo. No estoy seguro de dónde estás con PHP / laravel, pero definitivamente es una sólida.

Después de 2 años de desarrollo web, tengo mucha confianza en mi capacidad para crear básicamente cualquier sitio web en Python / Django, C # / asp.net, PHP / wordpress y node / express. La capacidad de mantenimiento es otra historia, pero en cuanto a la funcionalidad, siempre puedo elegir entre cualquiera de ellos. Eso es porque al menos jugué con todos ellos y los estudié solo para ver cómo eran.

Node.js / Express excelente

No hay tal cosa como “mejor marco” es solo una herramienta. Solo tiene que encontrar qué suites usted y su proyecto. Necesita saber “lo que necesita” y “cómo le ayudará a codificar más rápido”.

Bueno, no hay un mejor marco. Todos tienen sus pros y sus contras. Te sugiero que los pruebes y encuentres lo que te gusta o lo que más te convenga.