Là nhà phát triển, tôi thường quan tâm đến tính năng ngôn ngữ mới có thể giúp cuộc sống của bạn dễ dàng hơn. Ví dụ, java 5 mang generics và chú thích đến ngôn ngữ, các tính năng chắc chắn có thể tăng năng suất của bạn.Cơ chế phiên bản thực thi nền tảng có phải là tính năng cực kỳ cần thiết của java không?
Tuy nhiên, khi tôi nhìn lại gần một thập kỷ làm việc trên nền tảng java, tôi thấy rằng các vấn đề liên quan đến phiên bản là thủ phạm lớn nhất của nỗ lực không hiệu quả và không cần thiết. Giờ và giờ tìm phiên bản chính xác của jar, cố gắng hòa giải một số xung đột phiên bản, nâng cấp thư viện phụ thuộc, v.v. Khi tôi bắt đầu làm việc với java, mọi thứ không khó, bạn có một vài thư viện của bên thứ 3 và đó là . Hôm nay, ứng dụng web điển hình của bạn có thể dễ dàng sử dụng: Spring Framework, Hibernate, Struts, bạn đặt tên cho nó. Tất cả những điều này mang theo một số thư viện của bên thứ ba phụ thuộc. Hôm nay, lưu trữ tai của tôi thường sẽ bao gồm khoảng 40 thư viện của bên thứ ba trở lên. Một cái địa ngục thật!
Với chú thích, tôi không phải quản lý tệp cấu hình cho Hibernate chẳng hạn. Một tính năng tuyệt vời, nhưng tôi đã không thấy nhiều vấn đề phát sinh từ thực tế tôi giữ các mô tả của mình trong một tệp riêng biệt. Với generics, tôi không được phép viết các phát biểu diễn xuất, nhưng trong toàn bộ nhà phát triển chương trình của mình, tôi không thể nhớ một lỗi có thể đã bị ngăn chặn bằng cách sử dụng vùng chứa an toàn loại. Giải pháp không phiên bản cho vấn đề phiên bản có giá trị hơn nhiều không?
Tất cả những vấn đề này đã dẫn đến số lượng các công cụ như Maven, ivy, One Jar, Jar Jar Links (không đùa!), Thậm chí một cách thích hợp đặt tên Jar Hell vv Thậm chí nếu bạn sử dụng một số các công cụ này, bạn đang ở xa được miễn dịch với các vấn đề. Tôi sử dụng Maven 2 và nó đã là một trợ giúp tuyệt vời. Tuy nhiên, nó là một thế giới cho chính nó. Lập trình viên mới có thể mất một lúc để tìm hiểu nó. Di chuyển các dự án di sản của bạn sang cấu trúc Maven cũng là một nỗi đau.
Dường như trong .Net họ đã học được bài học với địa chỉ dll và quản lý các hội đồng .Net đơn giản hơn rất nhiều.
Có vẻ như có kế hoạch giải quyết vấn đề này cho nền tảng java và các lựa chọn thay thế như OSGI. Tôi nghĩ rằng một số cơ chế phiên bản cơ bản và nền tảng được thi hành là rất cần thiết
Điều này đọc giống như một bình luận hơn là một câu hỏi. – cletus
Tôi đoán đó là một chút của cả hai (một bình luận và rant). Về cơ bản tôi muốn xem liệu những người khác có chung nỗi đau như tôi không. Trong nhiều năm nay, đây là nhu cầu cấp thiết nhất cho nhóm của tôi và tôi cảm thấy thất vọng vì thiếu giải pháp hiệu quả cho vấn đề này. – Dan
Rant hay không, nó vẫn là một câu hỏi hợp pháp. Ít nhất là tiêu đề ngay cả khi câu hỏi không được lặp lại trong phần nội dung của bài đăng. – tvanfosson