Câu hỏi liệu C # hay Java có đi trước người khác hay không là tranh luận, nhưng thay vì tập trung vào các tính năng ngôn ngữ của người này hay người kia, tôi muốn tập trung vào những gì liên quan đến việc phát triển ngôn ngữ. Có một thực tế mà tôi không nghĩ ai sẽ tranh cãi: Java cũ hơn C #.
Các vấn đề với việc thay đổi cách ngôn ngữ hoạt động:
- Nếu bạn phá vỡ tính tương thích ngược, bạn sẽ làm phiền rất nhiều nhà phát triển
- Nếu bạn chọc giận các nhà phát triển của mình, họ chuyển sang ngôn ngữ khác hỗ trợ họ tốt hơn. Do đó, không có lý do để tiếp tục làm việc với ngôn ngữ.
- Java đã sớm đưa ra một số quyết định thiết kế với một áp lực để đưa ngôn ngữ ra thị trường. Hy vọng là quay trở lại và điền vào một số khoảng trống. Những quyết định đó vẫn gây khó chịu cho ngôn ngữ vì những người bảo trì không muốn vi phạm điểm đầu tiên.
- Java đã thổi bùng lên rất nhiều lãnh thổ mới và đã chứng minh một lần và mãi mãi rằng một ngôn ngữ được thu gom rác có thể được coi trọng - và hoạt động đủ tốt cho hầu hết mọi người.
- C # đến sau và học được rất nhiều bài học mà Java vấp phải - vì vậy họ có thể tránh được một số hạn chế kỹ thuật mà Java có vì điểm 3.
- Các tính năng ngôn ngữ mới phải giải quyết một vấn đề thực sự một cách hợp lý. Không phải mọi tính năng ngôn ngữ đều có ý nghĩa trong ngữ cảnh của ngôn ngữ mà bạn đang cố gắng thêm nó vào. Đây là lý do tại sao, mặc dù có sự tương đồng, Java và C # sẽ tiếp tục là các ngôn ngữ khác nhau.
Vậy, C # có nhiều tính năng ngôn ngữ hơn Java không? Tôi nghĩ vậy. Chúng có hữu ích không? Tôi nghĩ vậy. Điều đó có nghĩa là C # tốt hơn hay trưởng thành hơn Java? Điều đó tôi không đồng ý. Họ khác nhau, đơn giản và đơn giản. Java sẽ không bao giờ có tất cả các tính năng của C # vì C # sẽ không bao giờ có tất cả các tính năng của Java.
Một trong những tính năng của Java, khả năng viết chương trình trên Windows và triển khai nó trên Unix hoặc Mac, sẽ không bao giờ xảy ra trực tiếp bởi sự hỗ trợ của Microsoft. Lý do tại sao bạn hỏi? Không phải vì Microsoft xấu xa (dù điều đó có đúng hay không tôi không thực sự quan tâm). Đó là bởi vì họ đã học được một bài học mà Sun chưa bao giờ làm: viết một lần chạy bất cứ nơi nào hàng hóa hóa các hệ điều hành và phần cứng. Nếu bạn quan tâm đến việc kiếm tiền từ việc bán hệ điều hành của mình, bạn không muốn biến nó thành chuyện nhỏ để trao đổi mà vẫn có một ứng dụng hoạt động. Nếu bạn đã làm điều đó, bạn không thể kiếm được bất kỳ lợi nhuận nào từ hệ điều hành vì luôn có các tùy chọn rẻ hơn.