Hiệu suất - Ngay cả
Cả hai nền tảng hoạt động rất tốt cho hầu hết tất cả các ứng dụng.
Không thực sự nhiều để phân biệt chúng, mặc dù kinh nghiệm chủ quan của tôi là Java có lợi thế hơn một chút cho các ứng dụng chạy dài, trong khi .Net nhanh hơn cho thời gian khởi động ứng dụng.
Công cụ có sẵn (ngay cả công cụ của bên thứ 3) - Có thể tranh cãi
Phụ thuộc vào những công cụ bạn cần và những gì bạn quen thuộc.
.Net chắc chắn có một số công cụ tuyệt vời được cung cấp bởi Microsoft. Mặt khác, có các công cụ tốt tương đương trong thế giới Java, ví dụ như trong môi trường Eclipse, Netbeans of IntelliJ.
Khả năng tương thích đa nền tảng - Java win
.Net về cơ bản gắn liền với các nền tảng của Microsoft (Windows, Xbox, v.v.). Hoàn thành triển khai không có sẵn cho bất kỳ nền tảng không phải của Microsoft .
Mono là tốt, nhưng nó thực sự không cung cấp cho bạn khả năng đa nền tảng đầy đủ vì nó không hỗ trợ tất cả các thư viện .Net (ví dụ: bạn không thể mong đợi tất cả các công cụ GUI của Windows hoạt động chính xác, vì vậy trừ khi bạn chuyển sang bộ công cụ đa nền tảng như GTK # bạn sẽ không thể chạy ứng dụng của mình trên các nền tảng khác nhau)
Java thực sự di động. Không chỉ ngôn ngữ, mà quan trọng hơn nhiều là tất cả các thư viện Java đều có thể mang theo được. Cung cấp cho bạn dính vào các thư viện Java thuần túy (ví dụ: Xoay cho GUI), mã của bạn sẽ chạy ở bất cứ đâu bạn có môi trường thời gian chạy Java.
Thư viện (đặc biệt là thư viện bên thứ 3) - Java win
Có lẽ sức mạnh tốt nhất của nền tảng Java là hệ sinh thái rộng lớn của các thư viện, đặc biệt là các thư viện nguồn mở. Vài ví dụ:
- Tất cả các thư viện và công cụ Apache
- Tất cả các thư viện trong hệ sinh thái Eclipse rộng lớn
- Tất cả các thư viện được đóng góp / duy trì bởi Google
- JBoss và tất cả các công cụ doanh nghiệp liên quan được duy trì bởi Red Hat
Chi phí (Oracle dường như cố gắng và kiếm tiền từ Java) - Java giành chiến thắng nếu bạn đi nguồn mở, nếu không.
Bạn có thể có một ngăn xếp Java mã nguồn mở 100% miễn phí và không ràng buộc bạn với bất kỳ nền tảng độc quyền cụ thể nào. Điều này là miễn phí 100%.
Ngoài ra, bạn có thể mua IntelliJ IDEA, chạy Java trên Windows và sử dụng cơ sở dữ liệu độc quyền, trong trường hợp đó, nó khá giống với chi phí thông minh như một ngăn xếp Microsoft .NET thông thường.
Quá trình phát triển (Dễ nhất / Nhanh nhất) - Có thể tranh cãi
Điều này có thể phụ thuộc nhiều hơn vào trải nghiệm của các nhà phát triển của bạn với từng nền tảng thay vì quy định cụ thể của nền tảng.
.Net chắc chắn có một số công cụ tuyệt vời có thể giúp bạn làm việc rất hiệu quả cho các ứng dụng GUI đơn giản trên Windows. Không có gì đáng ngạc nhiên vì đây là "điểm ngọt" cho sự phát triển .Net.
Mặt khác, tôi thích ngăn xếp Java để phát triển phía máy chủ. Với các công cụ như Maven và tất cả các khả năng tích hợp / triển khai liên tục, bạn có thể thiết lập quy trình phát triển rất hiệu quả cho các ứng dụng phía máy chủ mạnh mẽ.
Ngôn ngữ C # khôn ngoan có một số lợi thế về năng suất so với Java. Nhưng mặt khác, nếu bạn đang phát triển trên nền tảng Java hiện nay thì xu hướng không phải là sử dụng chính Java mà thay vào đó sử dụng một trong những ngôn ngữ JVM mới như Scala, Groovy hoặc Clojure - nếu bạn làm điều đó thì bạn sẽ làm việc hiệu quả hơn rất nhiều hơn C # hoặc Java.