So sánh công nghệ Java và .Net

Bài viết với mục đích so sánh khía cạnh kỹ thuật giữa hai công nghệ J2EE và .NET để giúp bạn nên chọn hướng công nghệ nào ?

So sánh ưu điểm
Công nghệ .NET:

– Dễ phát triển, tools hỗ trợ cực tốt (Visual Studio)
– Phát triển giao diện rất dễ dàng trên Windows.
– Làm việc tốt với tất cả các công nghệ khác của Microsoft (COM, DCOM)
Công nghệ JAVA:

– Kiến trúc thiết kế rất tốt.
– Cộng đồng mạnh, do là công nghệ mở -> nhiều công nghệ hay ho xuất hiện từ cộng đồng (Vd: Hibernate, Spring…)
– Chạy tốt trên nhiều platform khác nhau (nhất là trên linux).

So sánh nhược điểm:
Công nghệ .NET:

– Chỉ chơi tốt với “hàng” của Microsoft.
– Mã nguồn đóng, tuy các thiết kế, specification là mở (nên mới có cái Mono)
– “Làm giùm” người lập trình quá nhiều -> tạo ra những lập trình viên theo đúng “chuẩn” của Microsoft (thông thường sẽ khác chỗ này, chỗ kia so với chuẩn còn lại của thế giới).
– Muốn can thiệp sâu vào kiến trúc bên dưới hơi bị khó.
– Tuy đã có Mono Project cho Linux, nhưng các application viết bằng .NET hầu như chỉ chạy tốt trên hệ điều hành của Microsoft.
– Phải trả tiền cho Microsoft để phát triển (cái này có lẽ ko phải là một nhược điểm ở Việt Nam )
Công nghệ JAVA:

– Khó phát triển hơn, nhất là việc debug.
– Tools hỗ trợ không mạnh bằng, đơn giản, miễn phí thì chẳng ai lo chăm chút tất cả cho bạn được.
– Có vẻ như tốc độ chậm hơn các chương trình .NET
– Bảo mật source code không tốt bằng .NET.

Nói chung, khi cần phát triển một phần mềm chủ yếu chạy trên hệ điều hành Windows,  sẽ sử dụng .NET, vì việc phát triển sẽ rất nhanh và dễ dàng. Ngược lại, nếu phát triển một ứng dụng lớn (cỡ Enterprise) và cần hoạt động trên nhiều platform khác nhau thì sẽ sử dụng Java. Tuy khó phát triển hơn, nhưng nhờ kiến trúc thiết kế rất tốt, sẽ làm cho khả năng hoạt động ổn định và khả năng mở rộng cao hơn.