TƯ VẤN : nên chọn java hay c#

c-sharp
java

(Phan Bá Hải) #21

Java cũng làm game được đấy :laughing:
Nói thế thôi chứ Unity quá mạnh rồi, LWJGL có là gì? :laughing:


(Đỗ Nhiên) #22

học java thời gian đầu sẽ có tự duy chặt chẽ giành mạch hơn về hướng đối tượng.nhưng java dài quá .nên học java một time để chắc hướng đối tượng sau đó học qua c# là ngon .C# hiện giờ có nền tảng xamarin đang rất hot bạn à


(Rhen Su) #23

Mình học c# không phải vì mình chê java. đơn giản là mình đang học unity nên học c# ấy mà :))


(Rhen Su) #24

em học unity nên học c# luôn.


(Phan Bá Hải) #25

Phân tích 2 Programming Language (PL) này nhé

Giống nhau

  • Cả 2 thằng này đều có syntax gần giống nhau, triển khai OOP cũng giống nhau
  • Đều làm được Desktop app, Webapp và Mobile App

Khác nhau

  • Làm app cross platform
    Java là trùm về làm app cross platform, bạn chỉ cần code một lần, build ra file jar là chạy tốt trên Windows, Linux, macOS, hay bất cứ OS nào cài JRE là chạy được app Java. Tuy nhiên bù cho việc chạy cross platform là hiệu năng app cực tệ, hao RAM, CPU
    C# ngày xưa (.NET Framework) chỉ cho Windows, sau này MS đẻ thêm .NET Core nhỏ hơn chạy đa nền tảng, tuy nhiên API không bằng .NET Framework (Đến bản .NET Core 2.0 bổ sung khá nhiều API mới rồi, thấy cũng OK hơn trước nhiều) . Ngoài ra còn Mono Framework , có thể coi là .NET Framework Cross Platform edition

  • Webapp
    Java cũng là trùm Webapp nhờ khả năng chạy cross platform đặc thù của mình, nhờ vậy các web framework của Java cũng rất phong phú như JavaEE, Spring Framework (No.1 Java Web Framework) , Struts, Play Framework
    C# thì MS độc quyền ASP.NET, bù lại bạn chỉ cần chuyên sâu vào nó là OK, cộng thêm Entity FrameworkLinq. ASP.NET Core code tương tự ASP.NET cũ nhưng chạy được đa nền tảng, app cũng nhẹ hơn so với Java Webapp

  • Thư viện, build tool
    Java có rất nhiều thư viện, Apache là tổ chức đứng đằng sau các thư viện thần thánh như Commons IO để tương tác với File, Commons Logging cho việc log, Commons Uploadfile cho việc upload, POI để tạo, tương tác file MS Office,… JacksonGSON là 2 thư viện thao tác file Json tuyệt vời, Hibernate là ORM Framework “vô địch Java hội” , bên Android không muốn dùng Hibernate như “dao mổ heo để cắt cổ con gà” thì dùng ormlite,… Java có một nền tảng lưu trữ package khổng lồ tên Maven Repository , hơn 90% thư viện Java trên thế giới tập trung ở đó. Build Tool Java khá đa dạng với Maven, Gradle, Ant giúp bạn tạo, thêm lib, build app chỉ bằng gõ lệnh cmd
    C#Nuget, hầu hết thư viện đều tập trung ở đó, mình thấy C# cũng không có nhiều lib nổi tiếng lắm, cùng lắm mình xài mỗi Json.net, mấy cái Database Driver là cùng. Build tool thì MSBuild cũng khá tốt. .NET Core có dotnet cli khá dễ xài. Mình toàn làm .NET Core bằng text editor + cmd

  • Mobile App
    Java là nền tảng chính của Android App nên không quá ngạc nhiên khi nhắc đến Java Android. Có điều Google đã chuyển sang Kotlin một PL chạy trên JVM (máy ảo Java)
    C# cũng không kém gì với Unity để làm game đa nền tảng, có cho PC, Web và Mobile, tuy nhiên chỉ là game. C# có Xamarin nhưng không nổi bật lắm

Vậy nếu học Java hay C# có thể học cái còn lại được không? được, dễ là đằng khác 2 thằng này syntax gần giống nhau nên bạn khỏi lo, bạn có thể vào https://github.com/SakaDream . Mình làm khá nhiều project Java, C#, một ít Python và C. Mình là dân Java đấy :laughing:


(nguoi_vui_tinh_thich_vi_tinh_luon_het_minh_vi_gia_dinh) #26

Học cả 2 cùng lúc cũng ok, tại 2 thằng này cú pháp cũng khá giống nhau, tầm 2 tháng nhuyễn ngôn ngữ, rồi tính bước tiếp theo :slight_smile:


(Rhen Su) #27

Bác này là cao thủ java. Mình rất thích cmt của bác. Rất đầy đủ và chi tiết. Minh chỉ nhập môn lập trình nên còn nhiều thứ phải học hỏi. Có mây cmt như thế này thì quá tốt cho người mới như mình. Mình đang tự học C# do mình đang chủ yếu học code game trên unity. Cũng muốn thử java nhưng cứ xong C# đã rồi qua Java sau cũng được. Tương lai dư định mình nên biêt C# và Java.


(Rhen Su) #28

Hiện tại, phần lớn máy tính hay laptop đều chạy window. Nói đúng ra, window sẽ làm trùm trong nhiều năm nữa. Mặc dù Window phát triển vượt bậc như xưa nữa nhưng đẻ hạ bệ window thì đó là 1 bài toàn khó. Cho nên nếu không hứng thú nhiều nền tảng chẳng hạn như tập trung phần mềm destop hoặc PC games thì C# lại là lựa chọn tốt cho cả tương lai. Nói về game hiện tại C++ và C# đang dẫn đầu về phần này.


(Hung) #29

C# là sự lựa chọn tối ưu cho bạn.


(Phan Bá Hải) #30

No, man :smile:
Bác @Voodoo mới là cao thủ Java :smile:


(Rhen Su) #31

mình thấy bác ây ít khi cmt chi tiết giống bạn. Nên mình không biết :v:


(Hung) #32

Bộ thư viện Java từ cộng đồng mạng.


(Live Your Life) #33

mình cũng muốn tìm người học java chung. cho mình học với bạn ơi ^^


(Le Thien Hoang) #34

Học thì tự học chứ học chung ỷ lại đến bao giờ mới được hả bạn!


(*grab popcorn*) #35

Close do tuổi thọ topic đã lâu. Cần yên nghĩ


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