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.
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
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
Làm thế nào là Scala và Clojure 'đăng bài java'? – Javier