Như Elizabeth Barrett Browning đã nói: Làm thế nào để yêu anh? Hãy để tôi tính cách.
Vui lòng giải thích khía cạnh định tính (so với định lượng) của bài đăng này.
So sánh 2 ngôn ngữ này (và thời gian chạy liên quan của chúng) rất khó. So sánh có thể ở nhiều cấp độ và tập trung vào nhiều khía cạnh khác nhau (chẳng hạn như phát triển GUI được đề cập trong các bài viết trước đó). Ưu tiên giữa chúng thường là cá nhân và không chỉ kỹ thuật.
C# ban đầu được dựa trên Java (và CLR trên JRE) nhưng, IMHO, nói chung, vượt xa Java về các tính năng, tính biểu cảm và tiện ích của nó. Được kiểm soát bởi một công ty (so với một ủy ban), C# có thể tiến nhanh hơn so với Java có thể. Sự khác biệt giữa các phiên bản và dòng chảy qua các phiên bản với Java thường bắt kịp (chẳng hạn như việc bổ sung lambdas gần đây vào Java mà C# đã có trong một thời gian dài). Cả hai ngôn ngữ đều không phải là siêu tập hợp của tất cả các khía cạnh khác vì cả hai đều có các tính năng (và foibles) thiếu khác.
So sánh chi tiết từng bên có thể mất vài trăm trang. Nhưng mạng của tôi là đối với hầu hết các công việc lập trình liên quan đến kinh doanh hiện đại, chúng tương tự về quyền lực và tiện ích. Sự khác biệt quan trọng nhất có lẽ là tính di động. Java chạy trên hầu như tất cả các nền tảng phổ biến, C# chỉ chạy chủ yếu trên các nền tảng dựa trên Windows (bỏ qua Mono, vốn không được thành công rộng rãi). Java, vì tính di động của nó, được cho là có một cộng đồng nhà phát triển lớn hơn và do đó hỗ trợ nhiều khung thư viện và khung bên thứ ba hơn.
Nếu bạn cảm thấy cần phải lựa chọn giữa chúng, tiêu chí tốt nhất của bạn là nền tảng bạn quan tâm. Nếu tất cả công việc của bạn sẽ chỉ chạy trên các hệ thống Windows, IMHO, C#/CLR, với ngôn ngữ phong phú hơn và khả năng tương tác trực tiếp với các API gốc của Windows, là một người chiến thắng rõ ràng. Nếu bạn cần tính di động của hệ thống chéo thì Java/JRE là một người chiến thắng rõ ràng.
PS. Nếu bạn cần nhiều kỹ năng việc làm di động hơn, thì IMHO Java cũng là một người chiến thắng.
Nguồn
2015-07-05 17:23:03
+1; Không hiểu tại sao câu hỏi này có 3 phiếu bầu xuống! –
+1; câu hỏi tuyệt vời, thực sự cần thêm phiếu bầu! – Shire