Si bien la representación en el lado del servidor ciertamente tiene sus beneficios, de ninguna manera son … universales. Entonces la pregunta es: ¿su aplicación debería ser universal?
Y la respuesta es: probablemente no . Las aplicaciones universales introducen una gran cantidad de complejidad. Requieren que pase más tiempo en mantenimiento y menos en funciones. Y esto sin mencionar la limitación de requerir que su aplicación sea servida por Node.js.
Pero Facebook es universal
- En el desarrollo completo de la pila, ¿utilizamos JavaScript desde el front-end hasta el back-end (MongoDB)?
- ¿Cuáles son las mejores soluciones alojadas para el desarrollo front-end en la actualidad? Me gustaría aprender algo como Angular, pero quiero una plataforma alojada que gestione la base de datos y el código de fondo. Sé JavaScript muy bien.
- ¿Cuáles son los frontend y backend de cualquier aplicación de Android?
- ¿Cuál es la forma más eficaz y accesible de transferir datos desde el back-end al front-end?
- ¿El desarrollo de iOS es front-end o back-end?
Sí, y usted (probablemente) no es Facebook. Lo que tiene sentido para ellos no necesariamente tiene sentido para ti. ¿Tienes millones de usuarios y miles de ingenieros?
Edición 21 de marzo: Dan Abramov tuiteó que Facebook en realidad no usa la representación de servidor basada en Nodo. Y aunque Instagram utiliza la representación del lado del servidor para SEO, encuentran que no tiene un impacto medible en la experiencia del usuario.
Pero mi kit de inicio React ya es universal
Genial, para que pueda ahorrar algunas horas mientras configura las cosas. Pero también perderá unas horas descubriendo qué hace realmente todo el código adicional. Y eso es antes de que pierdas semanas en mantener una aplicación Node.js completamente superflua.
Pero las aplicaciones universales son mejores
Claro, te dejaré tener este. Las aplicaciones universales se cargan más rápido, admiten más dispositivos y proporcionan una mejor experiencia de usuario. Pero todo esto tiene un costo de oportunidad.
¿Qué otras características podría haber agregado con el tiempo que pasó en su aplicación universal? ¿Qué otros ajustes de rendimiento podrías haber hecho? ¿Cuánto antes podría haber enviado realmente?
Donde gana PHP: código base profundo
La web está llena de código PHP. Las plataformas más populares para crear sitios web (WordPress, Drupal, Joomla) están escritas en PHP. Las plataformas no solo son de código abierto, sino también la mayoría de sus complementos. Hay código PHP en todas partes, y está esperando que descargue, modifique y use según sus necesidades.
Donde gana Node: el código más nuevo significa características más modernas
Claro, hay miles de excelentes archivos PHP de código abierto, pero algunos son complementos de WordPress de 8 años con la esperanza de que alguien los descargue. ¿Quién quiere pasar horas, días o semanas jugando con el código que no se ha actualizado en años? Los complementos de Node.js no solo son más nuevos, sino que se crearon con pleno conocimiento de los últimos enfoques arquitectónicos. Fueron creados por programadores que entienden que las aplicaciones web modernas deberían enviar la mayor parte de la inteligencia al cliente.
Donde gana PHP: simplicidad (más o menos)
PHP no tiene mucho: algunas variables y funciones básicas para hacer malabares con cadenas y números. Es una capa delgada que no hace mucho, excepto mover los datos del puerto 80 a la base de datos y viceversa. Eso es lo que se supone que debe hacer. Una base de datos moderna es una herramienta mágica, y tiene sentido dejar el trabajo pesado. PHP es la cantidad correcta de complejidad para un trabajo que no se supone que sea complejo.
Donde gana Node: Complejidad de cierres y más
JavaScript puede tener muchas pequeñas idiosincrasias que enloquecen, pero en su mayor parte es un lenguaje moderno que tiene una sintaxis moderna y algunas características útiles como los cierres. Puede reconfigurarlo y extenderlo fácilmente, haciendo posibles bibliotecas potentes como jQuery. Puede pasar funciones como objetos. ¿Por qué limitarse?
Donde gana PHP: el nuevo código lo ayuda a ponerse al día
Si eres un programador que quiere hacer más que interactuar con una base de datos y formatear los resultados, ahora puedes hacer más con PHP sin ocultarte. HHVM de Facebook agrega soporte para Hack, un lenguaje completo lleno de características modernas como anotaciones de tipo, genéricos y expresiones lambda. Usar esto limita su código a ejecutarse solo en el HHVM, pero eso no es lo peor del mundo. Es muy rápido.
Donde gana Node: docenas de opciones de idiomas
Si los usuarios de PHP están contentos de tener acceso a Hack, deberían considerar mudarse al mundo de Node.js porque muchos lenguajes principales pueden compilarse de manera cruzada para ejecutarse en JavaScript. Hay opciones bien conocidas como Java, C # o Lisp y docenas de otras como Scala, OCaml y Haskell. Incluso hay regalos para los amantes nostálgicos de BASIC o Pascal. Esta lista de Jeremy Ashkenas es bastante completa.