Nie mogę wypowiadać się w imieniu Meteor, ale mogę pomóc w przedstawieniu informacji o Sailsach, ponieważ je stworzyłem.
tldr;
Sails nie jest panaceum na wszystkie problemy w sieci - ale uważam, że Node.js tak. Celem Sails jest zapewnienie praktycznej struktury do tworzenia kompletnych, skalowalnych, przyjaznych dla początkujących i przyjaznych dla przedsiębiorstw aplikacji opartych na node.js. Zacząłem Balderdash od pytania „Czy możemy używać Node.js do wszystkiego?”. Odpowiedzią są żagle.
Z naszych nowych dokumentów :
Sails to oczywiście framework sieciowy. Ale cofnij się o krok. Co to znaczy? Czasami, gdy mówimy o „sieci”, mamy na myśli „sieć zewnętrzną”. Myślimy o pojęciach takich jak standardy sieciowe lub HTML 5 lub CSS 3; i frameworki, takie jak Backbone, Angular lub jQuery. Żagle nie są „tego rodzaju” frameworkiem sieciowym. Sails działa świetnie z Angular i Backbone, ale nigdy nie używałbyś Sails zamiast tych bibliotek.
Z drugiej strony, czasami, gdy mówimy o „platformach internetowych”, mamy na myśli „sieć zaplecza”. To wywołuje koncepcje takie jak REST, HTTP lub WebSockets; i jest oparty na technologiach takich jak Java, Ruby lub Node.js. Struktura „zaplecza internetowego” ułatwia tworzenie takich funkcji, jak tworzenie interfejsów API, interakcję z bazami danych, obsługę plików HTML i obsługę setek tysięcy jednoczesnych użytkowników. Sails to „tego rodzaju” framework sieciowy.
Kilka lat temu zobowiązałem się używać Node.js do wszystkiego - to była miłość od pierwszego wejrzenia . Zbudowałem Sails na Express i Socket.io ponieważ były (i nadal są) najbardziej ugruntowanymi modułami Node w swoich przypadkach użycia. Kod obsługi żądań w Sails jest zgodny z Express, z dodatkową zaletą niejawnej obsługi Socket.io.
Sails jest zaprojektowany tak, aby był kompatybilny z dowolną strategią budowania front-endu (-ów) w Angular, Backbone, iOS / ObjC, Android / Java, a nawet oferując surowy interfejs API do wykorzystania przez inną usługę internetową lub społeczność programistów. Jeśli w końcu zmienisz swoje podejście (np. Przejdziesz z Backbone na Angular) lub całkowicie zbudujesz nowy front-end (np. Zbudujesz natywną aplikację na Windows Phone), Twoja aplikacja Sails będzie nadal działać. Jak być może już wiesz, niektórzy nazywają to podejście architekturą zorientowaną na usługi lub SOA ( Joe McCann ma świetną prezentację na ten temat).
Z tego samego powodu Sails zachowuje inne znane konwencje tworzenia serwerów internetowych - standardową strukturę MVC, możliwość tworzenia czystych interfejsów API i podstawowych modułów, które są otwarte, konfigurowalne, rozszerzalne, a nawet wymienialne. Oznacza to, że żagle można dostosować do potrzeb użytkowników na tak niskim poziomie, jak jest to konieczne.
W 2013 r. Popularność platformy znacznie wzrosła, a nasza działalność konsultingowa wzrosła. Reszta głównych opiekunów i ja rozszerzyliśmy naszą koncentrację na jak najszybszym i najprostszym tworzeniu zaplecza. Powiązane aspekty Sails, takie jak haczyki (wtyczki), testowanie i dokumentacja, przeszły długą drogę w ciągu ostatniego roku dzięki wysiłkom zarówno naszego podstawowego zespołu, jak i (stale rozwijającej się) społeczności Sails. Jest wiele elementów z map drogowych, nad którymi nadal pracujemy, ale uważam, że Sails jest obecnie najlepszą opcją do stabilnego, łatwego w utrzymaniu rozwoju MVC w Node. Reszta zespołu i ja jesteśmy zaangażowani w jego ciągłe utrzymanie i rozwój funkcji, a ponieważ używamy go we wszystkich naszych projektach klientów, nigdzie się nie wybiera.
Jestem całkowicie przekonany, że Sails będzie najlepszym frameworkiem internetowym, ale nigdy kosztem Node.js. Główny zespół i ja jesteśmy nieustannie oddani ulepszaniu ekosystemu Node, a to oznacza przyjęcie NPM, wykorzystanie istniejących technologii Node i najlepszych praktyk itp. Nie tylko dlatego, że ma to większy sens, ale dlatego, że jesteśmy programistami Node.js. Motywacją do wszystkich naszych wysiłków jest uczynienie Node bardziej dostępnym, a nie zastępowanie go. Tak więc, jeśli w jakimś dziwnym, równoległym wszechświecie, miałbym faustowski wybór między konwersją Sails na inny język lub całkowitym porzuceniem Sails, ale wciąż mogąc używać Node, wybrałbym to drugie.
Dodatkowe zasoby:
FAQ | Żagle 101 | Oryginalny screencast | Przewodnik po wkładach | Przepełnienie stosu
Grupa Google | Mapa drogowa | IRC: #sailsjs na Freenode | Stan kompilacji