Java hay .NET? Một bài toán nan giải của nhiều Newbie
http://jsoft.vn/JV/Cong-nghe/?aid=52
Ngày 27/03/2011
(JSOFT) - Có rất nhiều bạn đang rất phân vân khi không biết chọn hướng nào, có bạn đã định
hướng trước là chọn Java nhưng nghe nói .NET hay quá cũng phân vân, có bạn chọn .NET rồi
nhưng lại thấy tiếc, có bạn muốn chọn cả hai thì sợ mình kham không nổi. Bản thân tôi cũng đã
từng gặp phải hoàn cảnh như vậy, nhưng khi đọc qua một số bài viết trên một diễn đàn IT thì tôi
mới ngộ ra được nhiều điều. Tôi nghĩ bài viết này cũng rất có ích cho nhiều bạn trẻ khi mới tập
tành học lập trình … Cám ơn các tác giả có nickname YHT và davidex về bài phân tích khá chi tiết này.
Bài viết này không nhằm vào mục đích so sánh khía cạnh kỹ thuật giữa hai công nghệ J2EE và .NET
mà sẽ đi vào phân tích xem bạn nên chọn hướng nào và tại sao.
Khi so sánh giữa sinh viên đại học và sinh viên ở các trung tâm đào tạo (điển hình là ở Đại học Bách
khoa và học viện CNTT NIIT Vietnam) chúng ta thường hay nhắc sinh viên đại học được học nhiều kiến
thức nền tảng trong khi sinh viên NIIT lại học chuyên về những công nghệ mới. Sinh viên NIIT khi ra
trường có khả năng đáp ứng yêu cầu công việc nhanh nhưng lại chậm thích ứng với những công nghệ
mới trong khi sinh viên đại học thì đa phần là ngược lại (dùng từ đa phần vì trong môi trường nào cũng
có kẻ mạnh kẻ yếu cả). Sở dĩ có chuyện này vì các bạn ở NIIT quen cách học 1+1=2 nên khi ra trường
có người bảo 1+1=0 nhớ 1 thì các bạn ú ớ không làm việc được và phải mất một khoảng thời gian khá
lâu để có thể thích nghi. Các bạn quen với lối mòn là dạy gì học đấy, không dạy không học, quen với
cách học là thầy dạy phải theo sách, phải gạch gạch tô tô trong sách mới được, khi giảng một phần nào
ngoài sách lúc đó không chịu ngồi nghe để hiểu mà loay hoay tìm coi nó nằm ở phần nào trong sách để
gạch. Khi giảng viên cung cấp tài liệu đọc thêm có nghĩa là những tài liệu đó đã được sàng lọc cẩn thận
thế mà tỉ lệ các bạn đọc nó là rất ít (đọc thôi chứ chưa quan tâm đến chuyện hiểu nó).
Thế theo Java (J2EE) thì sao? Nếu bạn yêu thích đam mê tìm tòi, bạn có khả năng tìm hiểu tốt một kỹ
thuật mới, bạn không ngại gian khổ ở bước đầu tiên thì bạn hãy chọn hướng Java. Nói gian khổ có quá
không? Cái chính là công nghệ Java có một lô các công nghệ khác đi theo nó mà bạn phải tìm hiểu như
là JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI… rồi lại đi đâu cũng nghe framework này framework kia
như Struts 1, Struts 2, Spring, WebWork, JSF, Hibernate, TopLink, …tiếp đến là chọn tool nào phát triển
đây: Eclipse, Netbeans, JBuilder, IDEA, Sun Java Studio, Oracle JDeveloper… rồi chọn web server nào
để triển khai đây Websphere, WebLogic, JBoss, Tomcat…. Bạn bảo .NET design giao diện nhanh
nhưng bạn có biết thế giới Java còn có WindowBuilder, có Visual Editor, có Swing Designer, có
Matisse? Bạn bảo tool .NET làm web nhanh thế bạn đã dùng MyEclipse chưa? Bạn bảo .NET nhiều thư
viện thế bạn dùng Commons chưa? Bạn cho rằng ứng dụng Java chạy chậm thế bạn có biết Java 6 đã
cải tiến nhiều về tốc độ không?bạn có biết rằng thế giới Java đâu chỉ có AWT, Swing mà còn có SWT
không? Thế giới Java có một rừng công nghệ con trong đó, nên để tìm hiểu cho vững Java thôi bạn có
thể tốn cả cuộc-đời-lập-trình của mình rồi đấy!
Nếu bạn đang phân vân không biết chọn hướng nào và bạn thật sự giỏi thì tôi khuyên bạn hãy chọn cả
hai hướng. Nghiên cứu nhiều hướng không bao giờ thừa cả. Tuy nhiên cùng một lúc bạn không thể học
hai hay nhiều hướng vì dễ dẫn đến “tẩu hoả” bạn hãy chọn cho mình một hướng đi và hãy tìm hiểu nó
cho thật thật kỹ vào, khi đã vững một công nghệ rồi thì bạn có thể bay sang những công nghệ khác để
tìm hiểu. Nếu bạn cứ mải mê chạy theo công nghệ mới thì chắc bạn sẽ phải chạy suốt đời mà chẳng
làm được gì cho ra hồn cả. Công nghệ thay đổi hàng ngày, hàng giờ nên bạn đang học 1 thế giới đã ra
đời 100 cái mới rồi. Bạn chỉ cần nắm những cái cốt lõi nhất sau đó tha hồ mà bay nhảy, dù có cho ra
JaJava hay dotdotNet bạn cũng không sợ vì bạn đã xây cái móng vững chắc rồi! Ví dụ tôi chưa từng
được học VB6 nhưng khi có một chương trình nào đó bắt buộc làm bằng VB6 tôi chỉ cần tìm vài tài liệu
về nó sau đó làm vài demo nho nhỏ là có thể bắt tay vào làm chương trình được rồi. Đương nhiên trình
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
độ về VB6 của tôi không bằng những người đã nghiên cứu nó từ lâu nhưng những gì tôi học được ở
công nghệ khác sẽ giúp tôi tiếp cận và làm việc được trên VB6 dễ dàng.
(Theo YHT – Forums.2it.in)
Làm một cái so sánh nho nhỏ giữa Java và .NET:
Ưu điểm:
.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)
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:
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
Hibernate, Spring…)
- Chạy tốt trên nhiều platform khác nhau (nhất là trên linux).
Nhược điểm:
.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
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.
Web “nội” điêu đứng vì thiếu đầu tư bảo mật -
25/04/2011
Bkis: 100% ngân hàng điện tử hổng bảo mật -
25/04/2011
Những lỗ hổng của mạng ngân hàng -
25/04/2011
Cuộc chiến giữa JAVA và DotNET, bạn chọn bên nào? -
27/03/2011
Các bài viết đã đưa
Master Data Management and Cloud Computing -
18/03/2011
Lean service architectures with Java EE 6 -
18/03/2011
Java EE 7 specification gets unanimous approval -
18/03/2011
Oracle releases Java mobile development framework -
http://www.foxitsoftware.com For evaluation only.