No puedo hablar por Meteor, pero puedo ayudar a proporcionar un poco de información sobre Sails porque lo creé.
tldr;
Sails no es una panacea para todos los problemas de la web, pero creo que Node.js sí lo es. El objetivo de Sails es proporcionar un marco práctico para desarrollar aplicaciones completas, escalables, de inicio y amigables para la empresa construidas en node.js. Comencé Balderdash con la pregunta "¿Podemos usar Node.js para todo?". Sails es la respuesta.
De nuestros nuevos documentos :
Sails es, por supuesto, un marco web. Pero da un paso atrás. Qué significa eso? A veces, cuando nos referimos a la "web", nos referimos a la "web front-end". Pensamos en conceptos como estándares web, HTML 5 o CSS 3; y marcos como Backbone, Angular o jQuery. Sails no es "ese tipo" de marco web. Sails funciona muy bien con Angular y Backbone, pero nunca usarías Sails en lugar de esas bibliotecas.
Por otro lado, a veces cuando hablamos de "frameworks web", nos referimos a la "web back-end". Esto evoca conceptos como REST, HTTP o WebSockets; y se basa en tecnologías como Java, Ruby o Node.js. Un marco de "back-end web" le ayuda a hacer cosas como crear API, interactuar con bases de datos, entregar archivos HTML y manejar cientos de miles de usuarios simultáneos. Sails es "ese tipo" de marco web.
Hace un par de años, me comprometí a usar Node.js para todo , fue amor a primera vista . Construí Sails sobre Express y Socket.io porque eran (y siguen siendo) los módulos de nodo mejor establecidos para sus respectivos casos de uso. El código de manejo de solicitudes en Sails es compatible con Express, con la ventaja adicional del soporte implícito para Socket.io.
Sails está diseñado para ser compatible con cualquier estrategia que tenga para construir su (s) front-end (s) en Angular, Backbone, iOS / ObjC, Android / Java, o incluso simplemente ofrecer una API sin procesar para ser utilizada por otro servicio web o su comunidad de desarrolladores. Si termina cambiando su enfoque (por ejemplo, cambiando de Backbone a Angular) o construyendo una nueva interfaz por completo (por ejemplo, construyendo una aplicación nativa de Windows Phone), su aplicación Sails seguirá funcionando. Como ya sabrá, algunas personas llaman a este enfoque una Arquitectura Orientada a Servicios o SOA ( Joe McCann tiene una excelente presentación sobre el tema).
En la misma línea, Sails mantiene otras convenciones familiares para construir servidores web: una estructura MVC estándar, la capacidad de crear API limpias y módulos centrales que son abiertos, configurables, extensibles e incluso intercambiables. Esto significa que Sails se puede personalizar para adaptarse a las necesidades de sus usuarios, tan bajo nivel como sea necesario.
En 2013, el marco experimentó un tremendo crecimiento en popularidad y nuestro negocio de consultoría creció. El resto de los mantenedores principales y yo ampliamos nuestro enfoque en hacer que el desarrollo de backend sea lo más rápido y sencillo posible. Los aspectos relacionados de Sails, como los ganchos (complementos), las pruebas y los documentos, han recorrido un largo camino durante el último año gracias a los esfuerzos tanto de nuestro equipo central como de la comunidad (en constante expansión) de Sails en general. Hay muchos elementos de la hoja de ruta en los que todavía estamos trabajando, pero creo que Sails es la mejor opción que existe para el desarrollo de MVC estable y mantenible en Node hoy. El resto del equipo y yo estamos comprometidos con su mantenimiento continuo y desarrollo de funciones, y dado que lo usamos para todos los proyectos de nuestros clientes, no va a ninguna parte.
Estoy totalmente comprometido con hacer de Sails el mejor marco web que existe, pero nunca a expensas de Node.js. El equipo central y yo estamos implacablemente dedicados a la mejora del ecosistema de Node, y eso significa adoptar la NPM, aprovechar las tecnologías de Node existentes y las mejores prácticas, etc. No solo porque tiene más sentido, sino porque somos desarrolladores de Node.js. La motivación de todos nuestros esfuerzos es hacer que Node sea más accesible, no reemplazarlo. Entonces, si, en algún extraño universo paralelo, me dieran una opción fáustica entre convertir Sails a algún otro idioma, o deshacerme por completo de Sails pero aún poder usar Node, elegiría el último.
Recursos adicionales:
FAQ | Sails 101 | Screencast original | Guía de contribución | Desbordamiento de pila
Grupo de Google | Hoja de ruta | IRC: #sailsjs en Freenode | Estado de construcción