Từ quan điểm của doanh nghiệp, việc phát triển ngôn ngữ không phải là điều tốt, nó thực sự khá tệ.
Đó là lý do tại sao bạn nghe các ngôn ngữ cũ hơn như cobol, fortran và thậm chí C được viết với số năm sau họ - nhiều doanh nghiệp gắn bó với năm đó.
Trên hết, các nhóm lớn hơn có nghĩa là có nhiều khả năng một người nào đó trong nhóm của bạn sẽ làm những việc mà người khác không hiểu, vì vậy có giá trị quan trọng nhưng được đánh giá thấp trong việc giữ ngôn ngữ đơn giản và sạch sẽ. Điều này có nghĩa là không thêm quá nhiều cách thay thế để làm việc.
Tôi đã làm việc với Ruby và có một quả bóng với ngôn ngữ, nhưng nhìn nó từ quan điểm của một doanh nghiệp, đó là một ngôn ngữ hoàn toàn đáng sợ. Tôi không thể đếm được những cách mà một lập trình viên xấu có thể làm rối tung một đội lớn, buộc họ phải mất nhiều ngày để gỡ rối một mớ hỗn độn được tạo ra trong vài phút.
Có những công ty từ chối chuyển sang java 5.0 vì tính phức tạp của generics. (Chúng tôi vẫn đang làm việc trên 1.3x nhưng đó là vì một lý do khác).
Và thành thật mà nói, hầu hết các "Cải tiến" đều giúp bạn mua được rất ít. Một số thay đổi cú pháp, khả năng loại bỏ một vài cấp niềng răng.
Tôi không thể nghĩ ra một trường hợp duy nhất mà Java đã buộc tôi lặp lại logic nghiệp vụ (Đó là điều tôi lo lắng khi cố gắng tạo mã "DRY") - đó là một ngôn ngữ đủ để hoàn toàn khô nếu bạn là một lập trình viên giỏi. Ví dụ, bất cứ điều gì bạn có thể làm với một đóng cửa bạn có thể làm với một phân lớp mà không lặp lại logic kinh doanh - những gì bạn kết thúc với vẻ tồi tệ hơn vì lớp niềng răng/định nghĩa lớp bổ sung, nhưng thường tái sử dụng hơn (Bạn có thể mở rộng lớp bạn sử dụng để thực hiện gọi lại, nhưng bạn không thể mở rộng phương thức đóng, bạn phải viết lại phương thức đóng.)
Tôi không cảm thấy mã này trong vài thập kỷ đầu tiên trong sự nghiệp của mình (Tôi yêu các thủ thuật ngôn ngữ, vui hơn, nhưng bây giờ tôi đã ở đây lâu rồi - Có thể tuổi già của tôi lẻn vào, hoặc nó có thể là kinh nghiệm, nhưng bây giờ tôi thấy những lợi ích to lớn đơn giản, rõ ràng, mã ổn định (được cung cấp bởi một ngôn ngữ không cho phép bạn chơi thủ thuật) và thực sự không thể tìm thấy một lợi thế duy nhất cho nhiều metho thay thế ds, ngay cả khi họ lưu một hoặc hai dòng gõ.
Nếu bạn đang tìm kiếm bản nâng cấp java, hãy xem Scala. Thật đáng kinh ngạc, vẫn chạy trên JVM, tương tác với Java, v.v.
Tôi sẽ trả lời bằng một câu hỏi khác. Tại sao Microsoft, đặt rất nhiều nỗ lực vào các tính năng "ưa thích ngôn ngữ" như linq, cây biểu hiện và tất cả những thứ đó, tại sao họ chỉ bỏ qua kinh nghiệm từ thế giới Java? 5 năm trước người Java đã làm Hibernate ... – badbadboy
bây giờ họ đã ra với Linq để thực thể đó là một cái gì đó không phải là quá thú vị để được trung thực .... Họ đang rất đằng sau trong một số những thứ khác ... – badbadboy
Cộng đồng có thể làm thư viện - ví dụ NHibernate. Nó có ý nghĩa đối với MS làm công việc 'cốt lõi' như cải tiến ngôn ngữ và thời gian chạy. C# 3 là * nhiều * đẹp hơn để sử dụng hơn Java 6 - và đẹp hơn nhiều so với C# 1. –