Là một người có cả ứng dụng Sproutcore và ứng dụng Ember gần một buổi giới thiệu sản xuất, tôi sẽ xem xét các câu hỏi của bạn (được sắp xếp lại để rõ ràng). Tất cả những điều dưới đây là những gì tôi đã quan sát mà không có kiến thức bên trong. Một chút của nó là suy đoán, vì vậy tôi đã kích hoạt chế độ wiki trên câu trả lời này, để những người thông báo hơn có thể sửa các chi tiết.
Lịch sử chia tách là gì?
Dưới đây là những gì tôi đã chắp ghép:
SproutCore được tạo ra bởi công ty Sproutit Charles Jolley như cơ sở sản phẩm phòng thư tín của họ trong năm 2007. Jolley sau gia nhập Apple và Sproutcore được sử dụng để xây dựng các ứng dụng web gốc cho Mobile Me. Nhiệm vụ là tái tạo lại trải nghiệm của các ứng dụng Mac như Mail và iCal, và nỗ lực đó vẫn tiếp tục trên Sproutcore hôm nay với iCloud.
Xe đẩy rời Apple và thành lập một công ty có tên Strobe ở San Francisco với tầm nhìn một phần để tận dụng Sproutcore. Nhóm nghiên cứu tại Strobe đã quyết định rằng Sproutcore không phù hợp với nhiều trường hợp sử dụng Web 2.0, và quá nhiều đề xuất cho tất cả các nhà phát triển, vì vậy họ bắt đầu nỗ lực hướng tới Sproutcore 2. Mục tiêu của Sproutcore 2 là mô đun và một phương pháp tiếp cận nhận thức HTML dễ tiếp cận hơn đối với các nhà phát triển web ở mọi nơi. Lực kéo đầu của Backbone là một phần của phân tích này.
Sau khi đấu tranh để di chuyển mã nguồn Sproutcore về hướng nhìn này, nhóm Strobe đã quyết định bắt đầu làm mới với Sproutcore 2 (tên mã là Amber bên trong). Charles đã viết cốt lõi Run Loop và mã quan sát-giá trị quan trọng. Yehuda Katz và Tom Dale là những nhà phát triển Strobe hàng đầu trong dự án. Tầm nhìn vào thời điểm đó là Strobe và cộng đồng cuối cùng sẽ chuyển qua hầu hết các tính năng và chức năng từ Sproutcore 1.x đến Sproutcore 2.
Những nỗ lực kinh doanh nhấp nháy không mang lại kết quả mong đợi, và công ty cân nhắc các tùy chọn của nó, cuối cùng quyết định mua lại tài năng Strobe của Facebook. Trước khi điều này xảy ra, một số nhân viên của Strobe, bao gồm cả Katz và Dale, đã tách ra để thành lập một công ty mới có tên là Tilde.
Dấu ngã đã quyết định tiếp tục phát triển Sproutcore 2, nhưng đổi tên (thành Amber.js và sau đó là Ember.js) và mục tiêu của dự án. Họ đã bỏ mục tiêu dài hạn về khả năng tương thích ngược với Sproutcore. Họ đã bỏ hỗ trợ cho bất kỳ loại thư viện tiện ích xem nào và tập trung vào trường hợp sử dụng HTML/CSS với việc tích hợp chặt chẽ ràng buộc dữ liệu với ngôn ngữ khuôn mẫu Handlebars.
Kể từ khi giải thể Strobe, quản lý của Sproutcore 1.x đã được chuyển từ Jolley đến Tyler Keating và cộng đồng đã tập trung lại vào việc làm sạch Sproutcore 1.x, ở một nơi không thoải mái trong một thời gian khi ý tưởng của Sproutcore 2 đã lờ mờ.
Sự khác biệt hiệu quả giữa hai nỗ lực là gì?
Điểm tương đồng trong các dự án là chúng có các mô hình đối tượng rất giống nhau. Họ cũng có hệ thống sở hữu, quan sát và ràng buộc tương tự.
Sproutcore bao gồm thư viện các tiện ích chế độ xem như thanh công cụ, chế độ xem danh sách, chế độ xem lưới, nút và hệ thống theming, và tập trung vào xác định lớp xem qua Javascript và vị trí tuyệt đối do thư viện quản lý. Nó rất mạnh mẽ để tạo các ứng dụng kiểu máy tính để bàn trên web.
Ember có dấu chân nhỏ hơn. Nó có tính năng tích hợp chặt chẽ với Handlebars. Nó là một thay thế cho xương sống cho nhiều dự án. Nó nhằm mục đích cung cấp một kiến trúc ứng dụng tiêu chuẩn cho các ứng dụng phía máy khách và loại bỏ mã soạn sẵn.
Những khác biệt này có thể sẽ dẫn đến việc phân chia khung, mặc dù đã có một số cân nhắc áp dụng cùng một lõi. Trong trường hợp đó, Sproutcore sẽ sử dụng thư viện "kim loại" của Ember và có lẽ là các thư viện lõi khác).
Tương lai của Sproutcore là gì?
Chuỗi này có vài phút từ buổi họp mặt của người đóng góp gần đây.
https://groups.google.com/group/sproutcore/browse_thread/thread/aacf00a6047a866e#
Lộ trình ngắn hạn là tập trung vào củng cố các tài liệu tiếp thị, trình diễn, và codebase. Nhóm gần đây đã phát hành Sproutcore Showcase. Có sự đồng thuận chung về việc thay thế abbot, các công cụ xây dựng của Ruby cho Sproutcore, với một giải pháp dựa trên Javascript (node.js), hiện đang được phát triển tích cực. Ngoài ra còn có một mong muốn cho ít hơn "hợp nhất" mã từ các công ty như Apple và phát hành thường xuyên hơn. Sproutcore 1.8 gần đây đã được phát hành.
Ember có phát triển để thay thế hoàn toàn cho sproutcore không?
Không có khả năng. Nhóm cốt lõi Ember đã rõ ràng rằng họ không có ý định phát triển cá nhân những tính năng còn thiếu. Có thể các thành viên cộng đồng có thể phát triển những dự án đó thành các dự án riêng biệt - flame.js là nỗ lực đầy tham vọng nhất cho đến nay. Lựa chọn thiết kế của Ember giúp dễ dàng tích hợp với các dự án như jQuery UI, do đó, việc thay thế đầy đủ có thể hoặc không cần thiết.
Tôi có những câu hỏi đó. Mọi người đang nói, nếu bạn đang xây dựng một ứng dụng giống như máy tính để bàn, hãy sử dụng Sproutcore 1.x để ứng dụng web đi với Ember (trước đây là Sproutcore 2). Tôi nghĩ rằng một bộ phận như vậy không có ý nghĩa, không phải cả hai đều dành cho RIA phía khách hàng? Sự khác biệt thực sự duy nhất đối với tôi là trong khi Ember dễ làm việc hơn, nó vẫn đang phát triển và bỏ lỡ rất nhiều tính năng. –