¿Por qué es tan odiado Node.JS, qué debo aprender entonces?

NodeJS no es odiado. Su mente de desarrollador de otros lenguajes cree que NodeJS es malo y no funciona bien. El modelo de concurrencia de NodeJS es uno de los modelos más débiles en la programación del lado del servidor. Mi opinión sobre esto es que depende de dónde esté utilizando NodeJS. Si está utilizando NodeJS en la operación CRUD, va a ser un gran lío. Sin embargo, si está creando un editor de texto en tiempo real en línea con menos de 1000 usuarios. NodeJS será el mejor framework.

Yo personalmente creé una API de registro de NodeJS. Usé un fuerte marco de bucle. Este marco proporciona un montón de buenas herramientas para la supervisión del servidor.

Anteriormente utilizábamos los servicios de base de comunicación de Windows. Estos servicios tomaron tanta memoria en el servidor de producción. Sin embargo, esta aplicación NodeJS solo toma pocos MB de memoria.

Mi empresa actual utiliza Node.js, provengo de una Licenciatura en Ingeniería de Software / Ciencias de la Computación.

Node.js está construido desde cero para vencer a la competencia en solicitudes asíncronas.
La mejor manera de pensar en el compilador es como un ‘ciclo’ de C ++, eliminando la complejidad y eso es lo que es.
Envía una solicitud, va al bucle while donde se procesa, el sistema comienza a realizar la solicitud y el bucle while puede tomar muchas otras solicitudes mientras el sistema operativo está calculando la función de devolución de llamada. Cuando se completa la solicitud, el compilador devuelve la respuesta o un error si la respuesta no se pudo calcular.

Ahora … para dar un paso atrás y observar, el sistema tiene sentido para un proyecto que requiere una cantidad desproporcionada de entradas, en comparación con el procesador del sistema. Piense en acuerdos cliente / servidor con una gran cantidad de clientes. Si el sistema no se obstruye con cada solicitud, puede realizar múltiples tareas al realizar varias solicitudes asíncronas a la vez.

Dicho esto, ¿por qué es tan odiado?

  1. Es un lenguaje desordenado con múltiples formas de golpear el clavo. Desde una perspectiva de backend, históricamente, los desarrolladores de backend han ‘hackeado juntos’ a través de un desbordamiento de pila. Hay varias formas de realizar una acción que reduce la claridad de los idiomas.
  2. Para las tareas que requieren programación de procedimientos (la modificación de la E / S de texto para nombrar uno) es completamente absurdo ya que las devoluciones de llamada regresan en un orden desconocido y luego se deben reorganizar. La alternativa es colocar toda la función de procedimiento dentro de un único soporte de devolución de llamada que es complicado y restringe el desacoplamiento natural de las etapas en una tarea de procedimiento.
  3. Demasiados soportes y funciones dentro de las funciones que disminuyen la claridad. Las piezas de información se deben desacoplar para que se puedan leer de forma natural; esto, junto con los corchetes un tanto excesivos, se convierte en una tarea difícil de procesar sin al menos un año de experiencia en node.js.
  4. Al ser de una arquitectura diferente a los niveles más bajos de abstracción, se hace difícil abstraer el rendimiento de la función por debajo del nivel de Javascript, los científicos informáticos no suelen estar locos por esta idea, ya que pueden ir a un nivel inferior para obtener resultados óptimos en situaciones específicas, y Pueden utilizar sus conocimientos.

¿Qué deberías usar en su lugar?

Bueno, eso depende de la tarea. Para programación asíncrona, javascript es ideal, una alternativa es Python Twister.

Una vez más, una alternativa para Javascript podría ser cualquier lenguaje de alto nivel que funcione según los requisitos de su sistema.

Yo diría que los idiomas de igual complejidad que son contendientes viables para aprender son Python, Ruby y PHP. Python y PHP se relacionan más con C, depende, si desea hacer más desarrollo backend y un extenso procesador de datos / captura de datos personales, Python sería más óptimo. Si te gusta hacer desarrollo web y quieres un lenguaje integrado desde el frontend al backend, entonces javascript sería tu opción ideal.

Leí en alguna parte que hay dos tipos de tecnologías: las que las personas odian y las que las personas no usan. Cualquier cosa popular tiene enemigos.

Si está desarrollando aplicaciones de pequeños pasatiempos sin ningún requisito de rendimiento en particular, node.js es la mejor opción actual. Le permite mantener un idioma en todo el idioma, lo que debería hacer que escribir código sea más rápido, ya que no tendrá que cambiar de contexto. Si su aplicación se vuelve seria, hay formas de escalar en el nodo que funcionarán en la mayoría de los proyectos de tamaño pequeño a mediano.

Si está construyendo un proyecto específico con un requisito específico, le sugiero que deje que los requisitos guíen su elección de tecnología. Si está construyendo un proyecto con un equipo, le sugiero que deje que las habilidades del equipo guíen su elección tecnológica, siempre que cumpla con los requisitos.

Al final del día, la mayoría de los marcos web son similares: tienen rutas, interacción con la base de datos, vistas frontales html / css / javascript. Como tiene que usar javascript en la vista, también puede usarlo en el servidor con nodo. Hace las cosas un poco más fáciles.

Creo que tanto Quora User como Glenn Anderson hacen muy buenos puntos, que es básicamente que Node.js está muy de moda, lo que pone a la gente en contra, queriendo defender su propia elección de idioma, generalmente PHP, como dice Carlos. También tienes el hecho de que Node.js es JavaScript, que la gente como yo piensa que es un lenguaje muy malo, para proyectos grandes de todos modos.

Creo que deberías aprender lo que quieras, personalmente me gusta Java, pero sé que la gente se pone prácticamente apoplética en su odio por ello. También me gusta mucho C # / .NET, pero, por supuesto, Microsoft es malo.

Node.js no es mi taza de té, pero puede ser tuya.

Debido a que muchos desarrolladores web usan PHP, y Node.js irrumpe en la escena y muchos afirman que es mejor que PHP (que es en muchos casos de uso, pero no en todos), por lo que la gente de PHP se pone insegura y defensiva y cierra la (A veces legítimo) el culto de la gente de Node.js.

Así que realmente hay dos lados para esto. La gente está adoptando y haciendo círculos sobre Node porque está de moda, y las personas de PHP que no quieren cambiar de idioma se burlan de esto. (Sí, hay más que gente de PHP, pero de lo que puedo decir es de donde viene la gran mayoría del odio)

No creo que tenga mucho que ver con el lenguaje en sí. Es más simplemente una reacción contra los hipsters del lenguaje.

Exactamente lo mismo sucedió cuando Ruby explotó. Tiene muy poco que ver con los idiomas en sí, y tiene mucho que ver con lo populares que son y con qué rapidez se vuelven populares.

Así que adelante y aprende Nodo. No es el fin de todo (pero nada es), pero es bastante bueno.

Confianza: 0.7

A algunas personas no les gusta Node.js porque es JavaScript. Hay algunos programadores que ven las raíces de JavaScript como un lenguaje de script diseñado para agregar un poco de interactividad a un sitio web como lo que es hoy en día. Otros miran cosas como la tipificación dinámica, la herencia prototípica y la rareza general y simplemente no pueden entender cómo se puede tolerar. Algunas personas están hartas de las exageraciones y se preguntan por qué no se les presta tanta atención a soluciones similares en otros idiomas, por ejemplo Tornado in Python.

Node.js fue prácticamente un éxito instantáneo cuando se presentó. A pesar de sus peculiaridades, JavaScript es un lenguaje muy popular, con una horda de desarrolladores que ya están familiarizados con él. Tiene una comunidad de desarrolladores muy activa.

Entonces, Node.js es odiado por algunos desarrolladores porque es JavaScript y es visto como una opción inferior a otras soluciones.

Pero su popularidad se está disparando a medida que muchos sitios comienzan a descargar otras tecnologías, como Ruby on Rails e incluso Java para nuevas pilas basadas en Node.js. No es realmente odiado, solo por unos pocos.

Esto recuerda una cita de Bjarne Stroustrup:

Solo hay dos tipos de idiomas: los que se quejan y los que nadie usa.

Es posible que haya oído hablar de un lenguaje llamado PHP, se burla de él con mucha frecuencia, pero ha sido bastante popular.

Node.js también es muy popular hoy en día.

Por lo tanto, si sabes javascript, node.js también es bueno tener en tu arsenal.

Debido a que el modelo de bucle / asíncrono de eventos para la concurrencia es bastante estúpido: The Three Big Lies About JavaScript.

El bucle de eventos ha sido descrito como “la concurrencia de un hombre pobre”.

Los idiomas como Go y Erlang / Elixir pueden superar fácilmente a Node en la mayoría de los escenarios de concurrencia. El modelo de bucle / asíncrono de eventos no es sostenible a largo plazo. Nos debe interesar el uso de lenguajes simultáneos reales si nuestro objetivo es el máximo rendimiento . ¿Por qué comprometerse con JavaScript?

Hola. No hay nada malo con la plataforma NodeJS, no hay nada malo con Javascript, de hecho, la aplicación de una sola página puede ser bastante efectiva a veces, recientemente completé una pequeña aplicación en Javascript. Trabajo con aplicaciones web, he usado Java / Javascript / PHP. Estudié C ++ en varsity. Debido a la falta de oportunidades de trabajo trabajadas en web dev.

Creo que se trata más de CS que del lenguaje real. Si entiendes CS y practicas CS, deberías sentirte cómodo usando diferentes idiomas. Creo que no hay nada malo con NodeJS. P.ej. No sabía Java / Javascript / o incluso PHP antes de trabajar. No había hecho una aplicación móvil / Android en toda mi vida. Pero lo superé y cumplí y superé las expectativas.

Si conoces suficiente CS no debería ser realmente un problema.

Aprende node.js. Contrario a la creencia popular. Node.js es en realidad mejor y más flexible que php. Por ejemplo, es mucho mejor habilitando actualizaciones en vivo, donde, como en la mayoría de los programas php, tiene que actualizar la página. También involucra JavaScript en la mayoría de las partes del nodo (por lo que se llama node.js). Y JavaScript es mucho más flexible que PHP. Node.js es solo nuevo

NodeJS no es odiado en absoluto, tal vez en algún foro de PHP. Pero en general, Node se ve simplemente como una plataforma de desarrollo web prometedora y de rápido crecimiento. Aquellos que lo odian probablemente no entienden demasiado al respecto, lo cual es probablemente el típico desarrollador de PHP.

¿De dónde sacaste el odio?

No he visto nada más que positivos en mucho tiempo.

No voy a alabar a Node ni a decirte que lo aprendas. Simplemente creo que no tiene sentido odiar realmente a Node.