2011-10-10 23 views
32

Tôi thấy rất nhiều tiềm năng làm việc phát triển Node.JS giống như trên JVM, với thời gian chạy được tối ưu hóa rất nhiều.Sự khác biệt giữa Apache Deft, Webbit và Vert.x

Tại thời điểm này trong thời gian, tôi thấy ba dự án nhằm mục đích mang lại một phong cách Node.js giống như phát triển để JVM:

Các dự án này có nên hợp tác không? Điểm mạnh và điểm yếu tương đối của chúng là gì? Dự án nào có động lượng nhất?

+4

Tại sao phiếu bầu "không mang tính xây dựng"? Đây là một cánh đồng xanh thực sự cho không gian JVM và đây dường như là ba dự án đang trong giai đoạn đầu. Có vẻ như ok với tôi để tìm ra sự khác biệt của họ. Không có ý định làm mồi lửa ở tất cả, và không được thực hiện bởi những người tham gia dự án như bạn có thể thấy bên dưới. Tôi sẽ loại bỏ phần 'vs' khỏi tiêu đề –

+4

+1 Yêu cầu thực tế là câu trả lời duy nhất là từ những kẻ thực sự đã tạo ra ba dự án được đề cập. –

Trả lời

28

Tuyên bố từ chối trách nhiệm: Tôi là anh chàng Webbit

Chắc chắn có rất nhiều sự trùng lặp giữa 3 dự án. Khi tôi xây dựng Webbit tôi đã không nhận thức được hai người kia - tôi đã từng, nó có thể không tồn tại, hoặc tôi có thể dành thời gian của tôi để đóng góp cho những người khác.

tôi có thể nói một chút về Webbit ...

Nó không phải là một đa mục đích evented khuôn khổ IO. Hoặc bộ công cụ giao thức mạng. Hoặc trừu tượng hệ thống tập tin. Webbit chỉ làm một phần nhỏ những gì người khác làm.

Webbit cũng không phải là một khung công tác web đầy đủ tính năng. Giống như Node.JS hoặc API Servlet, nó cung cấp các khối xây dựng cốt lõi để xây dựng các khuôn khổ cấp cao hơn, nhưng để nó thành các dự án bên ngoài (như Webbit-EasyRemote hoặc Webbit-REST).

Những gì Webbit tập trung vào là một máy chủ đơn giản, có thể nhúng, không chặn, HTTP và WebSocket.

Bởi vì nó có phương pháp 'làm một điều và làm tốt', nó cũng được thiết kế để sử dụng kết hợp với các thư viện khác. Nó cho phép các java.util.concurrent.Executors bên ngoài được truyền vào và tránh các ngữ cảnh chuỗi đơn lẻ, làm cho nó đặc biệt thích hợp để tích hợp với các thư viện đồng thời kiểu Actor như JetlangHeySync.

Vert.x và Deft mang theo các khung công tác hoàn chỉnh để phát triển kiểu nút ngoài định dạng. Webbit chỉ là một công cụ nhỏ có thể giúp HTTP/WebSocket kích hoạt ứng dụng của bạn.Có một nhu cầu cho cả hai và nó thực sự phụ thuộc vào nhu cầu của bạn (và phong cách cá nhân) như là thích hợp hơn.

+1

cảm ơn câu trả lời rõ ràng của bạn –

+1

Tiếp tục công việc tốt Joe – Schildmeijer

+1

Đoạn cuối đóng đinh nó :) –

21

Tuyên bố từ chối trách nhiệm: Tôi là người ủy nhiệm Deft Apache.

Apache Deft có nhiều điểm chung với lốc xoáy và xoắn hơn so với node.js, trong khi vert.x bị ảnh hưởng nặng nề bởi node.js. Tim Fox từ wmware đang làm một công việc tuyệt vời với vert.x và tốc độ phát triển thực sự ấn tượng.

vert.x có một số khả dụng. Một số Apache Deft examples. Apache Deft cũng có một "demo application" lớn hơn sẽ cung cấp cho bạn ý tưởng về cách bạn có thể sử dụng khung công tác cho những thứ khác ngoài http.

AFAIK webbit hiện đang hướng đến mục tiêu là "WebSocket và máy chủ HTTP".

Nếu họ nên hợp tác? Tuyệt đối :)

31

bố - Tôi là anh chàng vert.x :)

Vert.x là một nền tảng hoàn toàn chính thức để xây dựng nhiều thứ tiếng, khả năng mở rộng, các ứng dụng web cho phép đồng bộ.

Nó được lấy cảm hứng từ node.js nhưng đi xa hơn node.js và cung cấp một bus sự kiện được phân phối đến từ máy chủ ngay vào JavaScript phía máy khách, do đó tạo ra một mô hình siêu đơn giản cho cái gọi là "thời gian thực" Chúng tôi cũng gửi kèm một bưu phẩm và một điện trở mongodb Có một hướng dẫn đầy đủ tại đây http://vertx.io/tutorials.html

Nhưng có lẽ điều chính đặt ra ngoài các khung công tác không đồng bộ khác là tính chất đa chất. có sẵn trong Java, Ruby, JavaScript và Groovy (với hỗ trợ Clojure, Python và Scala để theo dõi).

Vert.x thực sự tận dụng lợi thế của đa thực -sự phân luồng trên JVM để cung cấp khả năng mở rộng và hiệu suất hơn so với node.js không thể chạm vào.

Nếu bạn không muốn toàn bộ nền tảng. Vert.x cũng có thể được sử dụng như một thư viện để cung cấp các hỗ trợ HTTP, TCP, websockets, sockjs, eventbus, etc trong ứng dụng Java hoặc Groovy của bạn.

Để biết thêm thông tin, vui lòng xem trang web http://vertx.io

Các vấn đề liên quan