¿Qué debería preferir para el backend del desarrollo web: Python o Node.js?

En primer lugar, depende de la necesidad, pero NodeJS tiene algunas ventajas sobre Python porque Python no admite desde cero E / S asincrónicas y también la programación de NodeJS se basa en el estilo de evento / devolución de llamada (paso de continuación) que hace que su código crezca más rápido y hace que su código más difícil de depurar y mantener.

Algunas ventajas de NodeJS:

  1. Está construido para manejar E / S asíncronas desde cero. Otros entornos tienen asíncrono. Características de E / S, pero Node es el primer entorno en el que es realmente dominante. En la mayoría de los entornos, solo encontrará piezas limitadas disponibles en asíncrono. sabores, pero en Node todo (o casi todo) es solo asíncrono. En realidad, es difícil escribir sin asíncrono. código en el nodo.
  2. Es nuevo, por lo que tiene la ventaja de poder aprender de los errores de idiomas y entornos anteriores. Mejor, Node puede corregir esos errores sin las preocupaciones de compatibilidad con versiones anteriores. Por ejemplo, el instalador del paquete Node, npm, ya es bastante mejor que muchos de sus equivalentes. Con todo, Node se siente muy pulido y moderno; no ha tenido tiempo de acumular la rudeza que tienen otros idiomas / entornos.

PD: Tornado es un framework y servidor web asincrónico de Python. Es algo así como Node.js y Express.js, en el nivel de producción lista e incluso un libro, “Construyendo la experiencia del usuario en tiempo real” que lo cubre.

Me gustaría ir con el que ya te gusta. El hecho de que te guste una tecnología tiene el mayor potencial para hacerte sumergirte profundamente en ella, lo que te ayuda a comprender eventualmente los principios subyacentes de OO, dinámica y web detrás de ella. Y eso es lo que realmente importa, además de la experiencia, si está interesado en trabajar en este sector.

Aunque amo el nodo, incluso diría que Python es mucho mejor para aprender cosas de backend. Está más cerca del mundo clásico de la escritura estática OO, en comparación con JS, que es bastante único y lejos. Desde Python, un interruptor Java o C # no bloqueará su mundo si no los conoce. De JS por otro lado …

Mucha gente dice que “¡puedes compartir código entre el navegador y Node.js!”

Pero el problema es que el código del cliente y el servidor a menudo son bastante diferentes (el código del cliente maneja la interacción del usuario y el código del servidor maneja la obtención de datos), y de todos modos probablemente solo pueda compartir un poco de código, probablemente solo líneas individuales o tal vez una pequeña función si tienes suerte. Python (IMO) facilita el acceso a los recursos del sistema, como el terminal, por ejemplo. También es mucho más fácil multiproceso en Python.

Sin embargo, aparentemente Node.js es energéticamente eficiente

En el diagrama anterior, más bajo es mejor, en términos de consumo de energía.

Si quieres más velocidad, entonces Node.js también es la respuesta.

Sin embargo, esto no tiene en cuenta las operaciones síncronas (de bloqueo) frente a asíncronas (sin bloqueo) y el subproceso único frente a múltiples. ¿Qué problemas crea Node.js con un solo subproceso?

Siempre digo que no se trata de las herramientas.

Depende de tu experiencia actual. Si prefiere Python sobre JavaScript, entonces vaya con Python. Creo que ambas son buenas opciones.

Obviamente, 2016 y 2017 son los años JavaScript-Hype, pero no te dejes influenciar demasiado por eso. Elija con qué se siente más cómodo, porque ambos tienen demanda 🙂

No creo que las empresas prefieran ningún idioma. Es la arquitectura lo que importa. De ninguna manera Python es menos. Algunas de las grandes compañías usan Python, que incluye YouTube, Quora. Si te gusta escribir en python, entonces debes usar python.

More Interesting

Además de aprender frameworks de backend, bases de datos e implementación, ¿qué tipo de habilidades necesito para convertirme en desarrollador de backend?

¿Qué son los términos front-end, back-end, del lado del cliente y todos los demás términos relacionados en el desarrollo y administración web? ¿Qué quieren decir?

¿Cuál es la diferencia entre el front end y el back end de la cadena de suministro?

¿Cuáles son las cosas que los desarrolladores de back-end deberían aprender en 2017?

¿Qué métricas consideran los desarrolladores al elegir los marcos de aplicaciones web front-end o back-end?

¿Qué editores de código se usan ampliamente en la industria del desarrollo web para la programación de back-end como PHP y MySQL?

¿Qué es front-end y back-end, y qué idiomas especifican a qué final?

¿Cuál es el papel del desarrollador de back-end?

En Facebook, ¿cuáles son los programas front-end y back-end?

¿Puede un desarrollador back-end de Java (con más de 5 años de experiencia) cambiar de pista al desarrollo de pila MEAN?

¿Qué debo elegir? ¿Desarrollo front-end o desarrollo back-end?

Quiero crear un sitio web en el que los usuarios registrados puedan publicar cosas en un formato particular, y las personas relevantes puedan verlo (algo similar a las redes sociales). ¿Qué software de backend debo usar?

¿Es más fácil ser un desarrollador web back-end o front-end?

¿El desarrollo web de back-end está tan roto como el desarrollo de front-end?

¿Qué tipos de aplicaciones de back-end se pueden escribir con Go?