Một sự so sánh "không hề"...áp đặt suy nghĩ giữa java và .NET

c-sharp
java

(Huy Nguyen) #1

Em đang là sinh viên và rảnh rỗi lướt mạng thì có lượm được một bài viết về cuộc chiến giữa java và .Net, trong bài viết này có bảo đây là sự so sánh không mang tính áp đặt suy nghĩ =)))
Mọi người xem và đánh giá khách quan giùm em ạ vì em đang học về java và cũng thích JAVa hơn .NET ạ :v. Đây là những sự so sánh trong bài viết ấy:

  • Java cho ta một tầm nhìn về công nghệ, .NET chỉ đem lại cho ta một tầm nhìn về công … cụ.
  • Java đại diện cho mã nguồn mở, .NET đại diện cho mã nguồn… gần như không bao giờ mở.
  • Java làm viêc với nhiều framework, .NET gần như chỉ thích nghi tốt nhất với 1 framework là chính nó.
  • Cùng 1 vấn đề Java có thể lựa chọn nhiều giải pháp (từ commerce đến opensource)… WebLogic hay JBoss đều vô tư …., .NET gần như chỉ có thể chọn 1 giải pháp là commerce, thậm chí giải pháp đó còn phải có cái thêm cái đóng dấu M$ mới có thể hoạt động.
  • IDE cho Java có thể lựa chọn thoải mái từ opensource (eclipse, netbean, …) đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, …) , … IDE cho .NET chỉ có thể là VS.NET, … hoặc Borland Developer (cũng là money nốt).
  • Java run anywhere từ unix, linux, mac, windows… .NET chỉ có thể làm bạn với windows
  • Java giúp người mới học IT sử dụng tốt keyboard, .NET lại giúp họ thành thạo với mouse.
  • Ở thời đại nông nghiệp “tư liệu sản xuất” là đất đai, công cụ lao động là “cái cày, con Sửu”… thời đại thông tin, Java cho ta “đất đai màu mỡ”… .NET cho ta “con Sửu khỏe, cái cày to”.
  • Java chú trọng tính ổn định, bảo mật… .NET chú trọng sự thoải mái và tốc độ.
  • .NET ngăn cản mọi người tìm kiếm giải pháp ngoài Microsoft, Java khuyến khích mọi người tìm kiếm giải pháp không phải của SUN để kết hợp với chính nó.
  • Người ham thích Java là người thích gỗ hơn thích nước sơn, người thích .NET là người rất dễ bị đánh gục … bởi màu sơn chứ không phải … gỗ.
  • Người thích .NET là người thích tất cả mọi thứ mình cần và cả không cần đều phải nằm tại 1 nơi duy nhất, người thích Java lại thích được lựa chọn thứ mình cần từ nhiều nơi và so sánh cũng như lắp ráp chúng lại để có được những giải pháp của riêng mình.
  • .NET là có thể là 1 framework đồ sộ, và hòan chỉnh nhất nhưng chưa chắc là giải pháp tối ưu nhất và vấn đề đau đầu là bạn không có quyền lựa chọn thứ nào khác ngoài nó, với Java giải pháp tối ưu nhất là giải pháp kết hợp nhiều Framework lại với nhau và trên hết bạn hòan tòan chủ động trong việc chọn lựa thứ mình cần.
  • Java là của tất cả mọi người, .NET chỉ là của riêng Microsoft.

(Thược Nguyễn) #2

Java là ngôn ngữ, .net là framework. So sánh thế có vẻ ko hợp lý bác ạ


(anon10709737) #3

OP nên so sánh java với c# thì đúng hơn!

java là ngôn ngữ đơn lẻ còn .net nó có cả c#, vb, c++, f#. Bác chơi xấu thế :joy:

Với lại OP cũng đem ra một số ý kiến mình không tán thành:

Ai bảo bạn thế??? Bạn không biết tựa game osu nổi tiếng dùng .net core có mã nguồn mở nhé! Cả .net cũng có:

Bạn nói thế thì sao thuyết phục được! Java bản thân nó là ngôn ngữ hẳn hoi thì làm được với nhiều framework. .NET là framework thì chỉ có chính nó thôi! .NET không phải là ngôn ngữ lập trình mà bạn so sánh vậy

Bỏ ngay cái quan điểm nghĩ đến M$ là nghĩ đến thương mại hay có tính phí! Bạn thử vô github rồi vô tài khoản microsoft coi! Cực kì nhiều các dự án mã nguồn mở cũng như các phần mềm free(VD như VS Code)

Visual studio community sinh ra để làm gì? Kể cả mono nữa!

Đọc bài này đi: https://www.zdnet.com/article/how-to-run-net-applications-on-linux/

Cái này không liên quan! Giờ toàn người xài mouse chứ chỉ có ae dev chúng ta xài keyboard

Giải thích hộ mình chỗ này! Mình chưa hiểu lắm…

.NET của riêng microsoft thế mình không dùng được à?

Tóm lại thì bài viết của bạn hoàn toàn áp đặt chứ không phải là không. Mình cũng thích java hơn .net nhưng mình thấy bài viết này hoàn toàn vô lý! Công nghệ, ngôn ngữ nào cũng có điểm mạnh và yếu của nó.


(Văn Dương) #4

Cái này mình cũng từng đọc rồi. Bài này từ thời xa lắc của một ai đó mang đậm tính chất cá nhân dìm hàng :smile:
Tức là chỉ nói chung chung, nói thằng này tốt hết lời, thằng kia xấu hết nấc mà không có lý luận, bằng chứng rõ ràng.
Thế nên việc tin bao nhiêu % chắc bạn biết rồi. :slight_smile:

@anon10709737
Em nó cũng chỉ đi copy lại nhờ các anh em chỉ giáo thôi mà. Có phải của em nó đâu mà bức xúc dữ vậy :stuck_out_tongue:


(Trần Hoàn) #5

Java và .NET
Một bên là ngôn ngữ
Một bên là nền tảng

So sánh với nhau ?? :smiley: ??


(Nguyễn Đình Anh) #6

Cái này hơi thiên vị cho Java quá rồi :smile: Với lại so sáng 1 ngôn ngữ với 1 FW thì hơi quá đáng :wink:


(Phan Bá Hải) #7

Nghe cũng đúng nhỉ?

http://nhibernate.info/
http://www.coevery.com/

IDE cho Java có thể lựa chọn thoải mái từ opensource (eclipse, netbean, …) đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, …) , … IDE cho .NET chỉ có thể là VS.NET, … hoặc Borland Developer (cũng là money nốt).

Java run anywhere từ unix, linux, mac, windows… .NET chỉ có thể làm bạn với windows
Tìm hiểu .net core đi bạn ơi

Nói chung nội dung bài này quá cũ rồi. Không nên tham khảo


(anon10709737) #8

Bác này nói đúng nhưng rider hình như mất tiền thì phải :thinking:


(Phan Bá Hải) #9

VS Code cũng ngon, mà chỉ support .net core thôi. Hơi chuối


(Văn Dương) #10

http://jsoft.vn/jv/Hoi-dap/?cuoc-chien-giua-java-va-dotnet-ban-chon-ben-nao.html&aid=wdpwialhyf
Đây là bài cũ lắm rồi. Tức là viết cách đây rất lâu rồi.
Tất nhiên trang chuyên về Java thì nâng Java lên cũng không lạ lắm. Đôi khi cũng chỉ là PR cho trang.
Hiện tại thì đã có nhiều đổi khác kể cả Jav và C#. Nên đọc tham khảo cho vui thôi.


(Phan Bá Hải) #11

Thực ra giá trị tham khảo của cái này cũng không còn nữa. C# đâu còn như ngày xưa, Java cũng thế
Ngoài ra trang này hội Java mà, theo thiên hướng 1 chiều. Mà đọc tin 1 chiều là đã thấy sai quá sai rồi


(Vô Thin) #16

So sánh một ký lúa với một ký điện. Không hiểu so sánh theo cách gì?


(Trần Hoàn) #17

Trong .NET có rất nhiều ngôn ngữ, bạn có thể so sánh ngôn ngữ với ngôn ngữ. Mình sẽ giúp bạn so sánh Java với C# là ngôn ngữ được sử dụng phổ biến nhất trong .NET thay vì VB.NET và F#.
Nhưng cũng vì so sánh với C# thay vì so sánh với .NET, chúng ta sẽ đặt C# trong ngữ cảnh của một ngôn ngữ tức là có thể sử dụng những thứ không thuộc .NET:

Java cho ta một tầm nhìn về công nghệ, .NET chỉ đem lại cho ta một tầm nhìn về công … cụ.

Đây là câu của một người dùng .NET chỉ biết mỗi WinForm kéo thả, cả một framework to đùng dùng được có mỗi 1 loại công cụ.

Java đại diện cho mã nguồn mở, .NET đại diện cho mã nguồn… gần như không bao giờ mở.

Nhưng C# là ngôn ngữ mã nguồn mở trong khi Java thì không. Chỉ có những thứ được viết bằng Java có thể mở, và .NET thì không

Java làm việc với nhiều framework, .NET gần như chỉ thích nghi tốt nhất với 1 framework là chính nó.

.NET Framework có thể làm việc với nhiều framework, nhưng thường thì người ta không cần add vì nó đã đủ tuyệt vời rồi. Bạn thấy trong ứng dụng Windows của bạn thường có một đống các file .dll không? Chẳng khác gì .jar của Java đâu, và nó đa dạng hơn nhiều.

Cùng 1 vấn đề Java có thể lựa chọn nhiều giải pháp (từ commerce đến opensource)… WebLogic hay JBoss đều vô tư …., .NET gần như chỉ có thể chọn 1 giải pháp là commerce, thậm chí giải pháp đó còn phải có cái thêm cái đóng dấu M$ mới có thể hoạt động.

Vì .NET là commerce, nhưng bạn có thể làm việc với C# mà không dính líu gì tới .NET cả. Chọn đích danh 1 thằng trả phí rồi đòi nó không trả phí nghe hơi ẹ.

IDE cho Java có thể lựa chọn thoải mái từ opensource (eclipse, netbean, …) đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, …) , … IDE cho .NET chỉ có thể là VS.NET, … hoặc Borland Developer (cũng là money nốt).

Hoặc là IntelliJ như bạn đã kể trên luôn? Chưa kể thời nay mấy cái IDE chỉ dùng được cho 1 ngôn ngữ giờ chả mấy ai care, người ta thà tải text editor + compiler như sublime text còn hơn.

Java run anywhere từ unix, linux, mac, windows… .NET chỉ có thể làm bạn với windows

Nếu bạn muốn C# chạy trên đa nền tảng thì MONO Project đã có từ 2005 rồi, đến tận 2012 mới có Java trên iOS trong khi C# từ 2009 :)). Còn nếu nói .NET Framework chỉ chạy được trên windows là nhược điểm thì cũng như nói âm thanh chỉ phát ra từ loa vậy :))

Java giúp người mới học IT sử dụng tốt keyboard, .NET lại giúp họ thành thạo với mouse.

.NET giúp họ sớm làm quen với UX, UI, nhanh chóng trở thành dev, và cũng thuận tiện hơn để trở thành des, thay vì chỉ trở thành coder

Ở thời đại nông nghiệp “tư liệu sản xuất” là đất đai, công cụ lao động là “cái cày, con Sửu”… thời đại thông tin, Java cho ta “đất đai màu mỡ”… .NET cho ta “con Sửu khỏe, cái cày to”.

??? :smiley: ???

Java chú trọng tính ổn định, bảo mật… .NET chú trọng sự thoải mái và tốc độ.

Khi mà mọi ngôn ngữ đều ổn định, bảo mật, nếu một ngôn ngữ khác còn có thể làm nổi bật sự thoải mái và tốc độ thì đó là thất bại của Java

.NET ngăn cản mọi người tìm kiếm giải pháp ngoài Microsoft, Java khuyến khích mọi người tìm kiếm giải pháp không phải của SUN để kết hợp với chính nó.

.NET ngăn cản hay dev không cần?

Người ham thích Java là người thích gỗ hơn thích nước sơn, người thích .NET là người rất dễ bị đánh gục … bởi màu sơn chứ không phải … gỗ.

Cẩn thận bị quạ bắt diều hâu tha. Đúng là website quảng cáo đồ nhà mình. Giờ thì lại đến lúc để phán xét người khác một cách thượng đẳng.

Người thích .NET là người thích tất cả mọi thứ mình cần và cả không cần đều phải nằm tại 1 nơi duy nhất, người thích Java lại thích được lựa chọn thứ mình cần từ nhiều nơi và so sánh cũng như lắp ráp chúng lại để có được những giải pháp của riêng mình.

Đúng là phát biểu của người biết mỗi WinForm.

.NET là có thể là 1 framework đồ sộ, và hòan chỉnh nhất nhưng chưa chắc là giải pháp tối ưu nhất và vấn đề đau đầu là bạn không có quyền lựa chọn thứ nào khác ngoài nó, với Java giải pháp tối ưu nhất là giải pháp kết hợp nhiều Framework lại với nhau và trên hết bạn hòan tòan chủ động trong việc chọn lựa thứ mình cần.

Bạn có tất cả và bạn bất mãn vì mình không đi tìm một cái gì đó trong khi bạn có thể vứt tất cả đi và đi tìm như ai đó không có gì kia?

Java là của tất cả mọi người, .NET chỉ là của riêng Microsoft.

Java là của tất cả mọi người, C# cũng vậy


(anon10709737) #18

IntelliJ là cho mỗi java và các dòng JVM khác! C# không liên quan. C# có vs community rồi anh


(Phan Bá Hải) #19

Tạm chốt lại vấn đề

Bài này không phải OP viết mà lấy từ trang này http://jsoft.vn/jv/Hoi-dap/?cuoc-chien-giua-java-va-dotnet-ban-chon-ben-nao.html&aid=wdpwialhyf
Thanks @Duong_Act
Nên nếu công kích những luận điểm trong topic này thì nên công kích người viết bài ở link phía trên. Tội OP :laughing:

  • Tài liệu bạn đưa lên vừa quá cũ không hợp thời. Vừa phiến diện 1 chiều công kích C# là chính. Mà đọc tin một chiều là có hại rất lớn đến nhận thức khách quan
  • .NET có 2 project open source là Mono Framework và .NET Core
  • Java cũng có project open source là OpenJDK
  • Đồng ý rằng .NET Framework của MS quá overpower và ít có framework nào đọ nổi. Tuy nhiên hệ sinh thái .NET community không hẳn không có, chỉ là nó không quá nổi bật
    Bạn lên GitHub và tìm các library và framework của C#, cũng không ít đâu
  • Cả Java và .NET đều có thể chạy cross platform. Họ .NET có Mono và .NET Core
  • .NET IDE ngoài VS ra có Rider khá ngon, nhưng mất tiền
  • Bài viết này cổ đến mức quan niệm của chủ bài viết chỉ nghĩ đến Desktop App (Winform) chứ không phải Webapp. Mình nghĩ bài này tầm 2006?

Nói chung thì mình nghĩ bạn không nên tin hay coi bài viết đó là nguồn tin tham khảo. Thực sự không tốt cho bạn và newbie khác


(Hung) #20

Klq, mình thấy chủ thớt rất thành công trong việc quăng bom đó. :bomb:

Thả một trái bom Java vs. Net xong rồi núp để hít drama giữa các thành viên khác chiến tranh giữa các ngôn ngữ lập trình, còn gọi là “language war”.


(Huy Nguyen) #21

=)) đâu có mình vô tình đọc thấy vui và k hiểu tại sao người viết bài này có thể viết như vậy nên share cho mọi người bàn ấy mà :v

btw cảm ơn mọi người đã góp ý =))


(HK boy) #22

merged and moved by noname00

:unamused: :mouse2: named hungsteve


(anon10709737) #23

ok… Giờ @SakaDream đã “giải ngố” hết cho rồi :laughing:

Mình nghĩ giờ close cũng được


(Hung) #24

Vì đây thuộc về vấn đề so sánh ngôn ngữ và framework, một trong nhiều chủ đề gây tranh cãi giữa các lập trình viên với nhau, nên cuộc thảo luận sẽ không bao giờ kết thúc được cả.

Vì vậy mình sẽ cho topic tự động close trong 2 ngày. Nếu ai muốn tranh luận gì thì tranh luận trước nhé.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?