2011-01-18 28 views
8

Tôi cần chọn một ngôn ngữ/nền tảng cho sự phát triển mới của một loạt các dịch vụ trong một SOA. Tôi đang tìm kiếm Scala và Clojure nhưng không nghĩ rằng cộng đồng và các sản phẩm đủ trưởng thành cho một sản phẩm doanh nghiệp thế giới thực.Ngôn ngữ/nền tảng tốt nhất cho SOA trên Linux trong thế giới hậu Java là gì?

Cập nhật/Làm rõ:

  1. Dĩ nhiên chúng ta có thể sử dụng nhiều ngôn ngữ/nền tảng cho SOA nhưng một số ngôn ngữ/nền tảng được dễ dàng hơn và phù hợp hơn cho một SOA. IMO là tốt nhất đối với SOA nên cho phép lập trình giao diện (để dễ định nghĩa hợp đồng), nên có các tùy chọn để lưu trữ các dịch vụ (như Felix cho Java hoặc WCF trong .NET) và mở rộng quy mô (xem các vấn đề Twitter với RoR).
  2. Java luôn là sản phẩm được yêu thích trong thị trường doanh nghiệp. Tuy nhiên, nhiều nhà phát triển đang xem xét các ngôn ngữ động cũng như nói về sự trì trệ của Java sau phiên bản 6. Kết quả là nhiều ngôn ngữ Java bài mới đã đến: Scala, Clojure và Groovy để đặt tên cho một vài ngôn ngữ vẫn chạy trên JVM nhưng không phải là Java.

Tôi hy vọng những câu hỏi này sẽ làm rõ câu hỏi.

+0

Tôi không thể tìm cách đặt câu hỏi này thành câu hỏi cộng đồng vì tôi cho rằng nó thuộc về đó. – Khash

+5

Bạn sẽ phải xác định "tốt nhất" trước khi bạn có thể nhận được câu trả lời. – duffymo

+0

Làm thế nào là Scala và Clojure 'đăng bài java'? – Javier

Trả lời

17

Phụ thuộc vào ý bạn là "đủ trưởng thành cho sản phẩm doanh nghiệp thực" và mức độ dung sai tương đối của bạn để sống trên lưỡi cắt. Ví dụ, tôi hiện đang xây dựng một "sản phẩm doanh nghiệp trong thế giới thực" ở Clojure (tôi đã hài lòng với Scala, chỉ Clojure đáp ứng nhu cầu của tôi tốt hơn một chút so với đồng thời và lập trình meta). phối cảnh).

Tôi rất hài lòng với quyết định của mình.

Một số quan điểm nhanh chóng nếu bạn đang xem xét này "hậu Java" đường dẫn:

  • Các cộng đồng là tuyệt vời và hỗ trợ, nhưng bạn vẫn sẽ phải giải quyết vấn đề chính mình, nếu chỉ vì không ai khác có chạy vào cùng một vấn đề. Không ai trong số này có khả năng là không thể vượt qua, nhưng nó hiện một chút rủi ro thêm cho lịch trình giao hàng.

  • Cả Scala và Clojure có thể rất hiệu quả (về giá trị được phân phối cho khách hàng mỗi giờ mã hóa), nhưng bạn cũng có thể viết mã không tốt và không thể duy trì trong bất kỳ ngôn ngữ nào. Java khá nhiều buộc bạn phải viết những thứ theo một cách tiêu chuẩn hóa, hơi tiết nhưng cú pháp đơn giản và dễ hiểu. Với Scala và Clojure bạn sẽ có được một kho vũ khí hoàn toàn mới với những cách điên rồ để đạt được mục tiêu của mình hoặc tự bắn mình vào chân. Nhóm của bạn có thể tận dụng tối đa lợi thế của Scala/Clojure không?

  • Khó hơn (mặc dù không có nghĩa là không thể) để đưa những người có kỹ năng lên tàu với các kỹ năng Clojure/Scala hiện có. Trên flipside, những người có những kỹ năng này (hoặc muốn mua chúng) có thể là một trong những nhà phát triển tài năng/có động lực hơn để tìm kiếm vẫn có thể hiệu quả.

  • Hãy chuẩn bị để đưa ra quyết định khó khăn về việc có nên nhắm mục tiêu các tính năng ngôn ngữ/thư viện "chỉ quanh góc" hay không. Ví dụ, bạn có chờ đợi sự hỗ trợ nguyên thủy nâng cao trong Clojure 1.3 không? Hoặc thực hiện với các chức năng nguyên thủy đóng hộp hoàn toàn đầy đủ nhưng chậm hơn trong Clojure 1.2?

  • Lợi ích to lớn khi sử dụng JVM là bạn vẫn có thể tận dụng tối đa hệ sinh thái Java mà không bị ràng buộc với Java như một ngôn ngữ. Đừng đánh giá thấp mức độ hữu ích của việc này: ví dụ: tôi sử dụng một số thư viện Java trưởng thành được kiểm tra rất tốt (ví dụ: Netty) khá rõ ràng trong ứng dụng Clojure của tôi. Điều này làm giảm đáng kể nguy cơ của bạn và số lượng phát triển mới mà bạn cần phải làm.

+0

+1 - Câu trả lời rất khách quan, cân bằng và hữu ích. – Landei

1

Hiện tại (vừa hoàn thành một dự án dịch vụ/tích hợp) Jersey trên đầu trang của Spring nằm ngay trên danh sách yêu thích của tôi cho các dịch vụ web.

Tôi không thể đưa ra bất kỳ đề xuất nào cho khung SOA, lần cuối cùng tôi tham gia vào loại điều chúng tôi sử dụng Oracle BPEL Process Manager và tôi có cảm giác lẫn lộn về nó. Chúng tôi cũng không sử dụng REST và tôi không chắc phần mềm Oracle hoạt động tốt như thế nào.

1

Đối với tôi, python có vẻ là cách dễ nhất để thực hiện một số SOA và có khả năng tương tác với các máy tính Windows. Tôi không có tên khung nhưng có rất nhiều trong số đó trong SOAP, REST, RPC ...

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