Cấp bậc tác giả:

TRAINING

Sự khác nhau giữa Java và Dot Net

Được viết bởi QuangIT ngày 13/08/2012 lúc 07:04 PM
Java của Sunmicrosystem, còn Dot Net(hay còn gọi là .net Framework) của Microsoft. Xét về khía cạnh Lập Trình, thì chúng hoàn toàn giống nhau
  • 0
  • 2679

Sự khác nhau giữa Java và Dot Net


Java của Sunmicrosystem, còn Dot Net(hay còn gọi là .net Framework) của Microsoft.
Xét về khía cạnh Lập Trình, thì chúng hoàn toàn giống nhau.
- Java ra đời với nhiệm vụ vừa thông dịch vừa biên dịch, code java viết xong được chính java biên dịch(nên nó được gọi la tự biên dịch (code này ko dịch ra mã máy mà ra mã byte code, độc lập hoàn toàn với các trình biên dịch). Sau đó khi cần thực thi thì JVM làm nhiệm vụ thông dịch cho từng CPU hay OS khác nhau(nên nó được gọi là tự thông dịch nữa) từ đó java độc lập hoàn toàn với OS hay các nền phần cứng, mà chỉ cần write one sẽ run every where. 
- Thế còn .Net Framework, ko lẽ đứng nhìn java tung hoành nên MS mới cho ra đời .Net Framework dựa trên nền tảng của CLR(Common Language Runtime), một dạng khác tương tự như với JVM, nghĩa là code ko dịch ra mã máy nữa mà dịch ra cái ngôn ngữ trung gian này rồi từ đó mới biên dịch cho CPU hay OS. Đã biết nó khác nhau thế nào chưa?(Đừng nói là chưa nhé, nếu vẫn nói thế thì có khi ko biết đọc chữ nhỉ). Vì C# phát triển sau nên có cải tiến và chỉnh sửa, có rất nhiều điểm khác với java, từ cách thực thi, hỗ trợ BCL(Base Class Library), cơ chế cached mã lệnh, rồi hỗ trợ JIT(Just in Time)....
- Ví dụ 1 tiêu biểu để thấy 2 thằng này khác nhau là cách thực thi 1 ứng dụng, nếu với java chạy lần 1 và lần thứ n đều cho tốc độ như nhau thì C# lại khác. Do hỗ trợ cơ chế cached mã lệnh nên từ lần thứ 2 tốc độ thực thi sẽ nhanh hơn...
-Đến đây thì đủ kết luận java và .net Framework là khác nhau, 2 dòng công nghệ khác nhau, 2 cách triển khai khác nhau dựa trên cái gốc chung OOP.
- Ví dụ 2:
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 độ 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 quan điểm của "dân .NET", theo Microsoft (MS) cái gì cũng dễ cả, có sẵn hết rồi, kéo kéo 1 tí cũng ra cái ứng dụng, thậm chí làm cái Outlook không quá 3 ngày mà (nếu biết kết hợp các component có sẵn). Không phải không có lý khi nói như vậy vì công nghệ của MS là công nghệ “đóng” nên tất cả đều theo chuẩn của MS, mà cái Windows thì đi đâu cũng thấy nên dễ dàng tiếp cận cũng đúng. Làm việc thì bám theo một IDE (Visual Studio), theo đúng một mô hình MS đưa ra nên học sao làm vậy, nhanh ơi là nhanh. .NET cũng có những công nghệ, framework khác tuy nhiên chúng ít được ưa chuộng, ví dụ NHibernate, NStruts… Đã chọn .NET thì đừng hỏi tôi là chọn VB.NET hay C#, cái nào cũng được cả và mình đang dùng C#.NET để hướng dẫn cho nhân viên Cty, bên NIIT thì dùng VB.NET để hướng dẫ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!

Tóm lại thế này nhé:
- .NET : 
+ RAD: Rapid Application Development -> Phát triển ứng dụng nhanh, tích hợp, dễ dàng.
+ Easy-of-use, Little learning curve -> dễ học và sử dụng. Thời gian làm quen cũng ngắn.
+ KB Supports: hỗ trợ kỹ thuật rất tốt, MSDN, KBs, TechNet, Microsoft Learning, ...
+ Speed of development: Phát triển nhanh, có nhiều công nghệ mới ...

- Java:
+ Free & Open-Source : Ko phải trả phí, nhiều thư viện và source code free.
+ Mobility & Cross-Platform: Sử dụng được trên nhiều thiết bị và nền tảng OS hơn.
+ ...

Một phần bài viết được trích dẫn từ: http://novi.com.vn/lap-trinh/14/Su-l...VA-va-.NET.htm

Nếu mà để phân biệt sự khác sau trong từng dòng code nữa thì phải kể cả ngày cũng không hết. Đó là theo ý kiến chủ quan của mình thôi. Còn ai cảm thấy khác nữa thì Send thêm

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML