Ngày nay chúng ta có vô vàn sự lựa chọn để đưa ra một sản phẩm lập trình hoàn hảo. Việc đó có thể bắt nguồn từ việc lựa chọn ngôn ngữ lập trình. Có nhiều ngôn ngữ lập trình nổi bật hơn và hot hơn với các công việc mới lạ như lập trình game với Python hoặc lập trình AI với LISP, … nhưng ngôn ngữ lập trình C# vẫn có vị trí quan trọng trong cộng đồng lập trình. Bài viết dưới đây mình sẽ chia sẻ nhiều hơn về sự khác biệt của C# với Java, PHP, C, C++.
Tổng quan về C#
C# là một ngôn ngữ lập trình phổ biến đối với bạn đọc cũng như các nhà lập trình ngày nay. Tại sao lại nói C# phổ biến, các bạn hãy cùng lướt qua những lý do ngay sau đây nhé:
- C# tồn tại những điều thú vị và vô cùng hữu ích với người dùng: ví dụ như static method, delegate, partial class, lambda expression,…. Nếu so với Java về điểm này thì C# ở vị trí số 1. Khi các bạn lập trình với ngôn ngữ Java các bạn sẽ không thấy có partial class, delegate cho đến tận Java 8 các bạn mới thấy có lambda expression.
- C# còn là ngôn ngữ strong-typed. Bởi lẽ tất cả các tham số và kết quả của một hàm đều nằm trong một object. Hơn nữa các lỗi mà các bạn gặp trong lúc lập trình như đánh nhầm tên trường, đánh nhầm tên hàm, hay nhầm kiểu class các bạn đều được thông báo ngay trong lúc soạn code. Điều này sẽ giúp các nhà lập trình nhanh chóng sửa đổi ngay lúc đó, giảm tối đa thời gian cho việc soát lại code sau này. Có thể nói về điểm này C# hơn hẳn so với PHP và python.
- C# có những framework .NET đi kèm hỗ trợ nhiều thứ như: tạo ứng dụng bằng WinForm, WPF; hay tạo website với WebForm, MVC.NET…. Ở điểm này thì C# hơn hẳn so với ngôn ngữ lập trình C, C++
- Với C# các bạn thoải mái có sự lựa chọn với IDE Visual Studio và một loạt các plug-in mạnh mẽ. VS phát hành phiên bản mới khá thường xuyên. Reshaper hỗ trợ refactor, làm tăng tốc độ code… Nói điểm điểm này C# ăn đứt Notepad ++ và cả Sublime Text. Bởi lẽ Notepad ++ và Sublime Text còn không có chức năng Jump to Definition.
Đọc đến đây chắc hẳn các bạn cảm thấy C# thật tuyệt vời quá đi. Nhưng cũng không ít bạn theo đổi các ngôn ngữ lập trình khác nghĩ “vớ vẩn làm gì có chuyện đó”. Để chắc hơn về những điều mình nói trên là đúng về C# các bạn hãy cùng khám phá tiếp nhé!
Chúng ta đang xét ngôn ngữ lập trình như một thứ tôn giáo
Sự tranh cãi giữa các ngôn ngữ lập trình thường xuyên xảy ra với các nhà lập trình. Đặc biệt trong cái xã hội thay đổi một cách chóng mặt như ngày nay thì điều này càng trở nên gay gắt hơn. Cuộc tranh cãi xoay quanh những vấn đề như: ngôn ngữ nào là mạnh nhất, công nghệ nào là công nghệ tốt nhất. Chính sự tranh cãi này đã đưa ngôn ngữ lập trình lên tầm Tôn Giáo. Các nhà lập trình viên chia ngôn ngữ thành các đạo khác nhau như: đạo Java, đạo PHP, và đạo C#. Các đạo này lúc nào cũng xảy ra những cuộc chiến tranh dữ dội. Những nhà lập trình theo đạo PHP thì công kích những nhà lập trình theo đạo C#. Để thấy rõ hơn điều mình nói là đúng các bạn có thể tham khảo thêm trên google bằng các cụm từ khóa: why C# sucks, why PHP suck.
Khi các bạn làm quen bất kỳ một công việc nào các bạn cũng sẽ tìm ra nhiều điều hay ở đó. Điều này cũng đúng với ngôn ngữ lập trình. Đối với một developer khi họ làm việc nhiều với một ngôn ngữ họ sẽ quen dần với ngôn ngữ, từ đó họ tìm ra được nhiều điều hay ho tiềm ẩn vốn có trong ngôn ngữ đó. Nhiều người khi quá quen với ngôn ngữ họ sẽ có ý nghĩ ngôn ngữ của mình là nhất, ngôn ngữ mà mình đang biết có thể xử lý mọi vấn đề (giống như ISIS nghĩ đạo Hồi của họ là nhất, mọi lời ăn tiếng nói nhất nhất họ đề cao đạo của họ). Khi ngôn ngữ lập trình mà mình biết bị chê bai, bị gạch đá họ cảm thấy như chính tôn giáo của mình đang bị xúc phạm vậy. Theo lẽ tự nhiên họ sẽ phản ứng và kêu gọi bạn bè cùng chung quan điểm nhảy vào để đả kích lại nhóm đạo còn lại.
Về bản chất vấn đề thì ngôn ngữ chỉ là công cụ
Ngôn ngữ hàng ngày chúng ta nói (ngôn ngữ tự nhiên) và kể cả ngôn ngữ lập trình (ngôn ngữ nhân tạo) chỉ là những công cụ mà thôi. Chúng ta có thể sử dụng ngôn ngữ để cuộc trò chuyện của chúng ta diễn ra nhanh hơn, về bản chất thì chúng không thể định hình được bản thân chúng ta. Để có cái nhìn rộng hơn các bạn hãy tìm hiểu nhiều hơn về ngôn ngữ mà các bạn đang sử dụng. Các bạn sẽ ngạc nhiên khi thấy giữa chúng đều có những nét chung nhất định (ví dụ về MVC.NET, Struts2, framework là một điển hình cho sự tương đồng nhau của ngôn ngữ nói trên. Cả ba cái được đề cập ở trên đều dựa trên một khái niệm MVC). Nói một cách công bằng nhất thì mỗi ngôn ngữ sẽ có những cái hay khác nhau.
- Nói đến C, C++ cho lĩnh vực làm web các bạn sẽ cảm thấy chúng thật rắc rối và khó làm. Tuy nhiên nếu dùng C, C++ cho việc lập trình game hay các bạn cần đến performance thì chúng thật tuyệt vời.
- JavaScript là ngôn ngữ lập trình không gần gũi người dùng cho lắm. Nhưng trong thời gian gần đây những framework đi kèm trong ngôn ngữ lập trình này lại cho các bạn những hy vọng về tương lai phát triển của JavaScript.
- PHP vốn được xây dựng dùng để lập trình các trang web nhỏ. Nhưng điểm mạnh của ngôn ngữ này chính là kho framework khổng lồ cùng với cộng đồng lập trình viên đông đảo. Hơn nữa nếu bạn muốn làm một trang web nhanh, nhiều tính năng cũng như ít gặp lỗi bạn nên chọn ngôn ngữ PHP. Ví dụ điển hình đó là blog viết trên wordpress cũng sử dụng ngôn ngữ lập trình PHP.
- C# và .NET nếu muốn hoạt động tốt các bạn cần cài cho chúng nhiều thứ nặng nề và tốn kém. Nhưng C# và .NET lại được nhiều công ty sử dụng bởi tính năng bảo mật cao của chúng.
Ngưng bàn tán về các ngôn ngữ lập trình
Suy cho cùng ngôn ngữ cũng chỉ hỗ trợ các bạn phần nào trong cuộc sống cũng như công việc của các bạn. Điều quan trọng ở đây là khả năng tư duy logic và khả năng giải quyết vấn đề cùng với tầm nhìn hệ thống của bạn. Bởi lẽ khách hàng không quan tâm đến phần back-end bạn làm như thế nào mà họ chỉ quan tâm đến sản phẩm mà các bạn cung cấp có phù hợp cho họ không.
Một câu hỏi cho các bạn liệu rằng các bạn có ngưng dùng Facebook (Facebook được viết bằng ngôn ngữ PHP). Hay các bạn có bỏ stackoverflow khi biết chúng được xây dựng dựa trên MVC.NET vừa chậm vừa đắt hay không? Tất nhiên là không. Vậy tại sao chúng ta lại đánh giá về những ngôn ngữ lập trình trong khi chúng ta đang sử dụng sản phẩm từ chính những ngôn ngữ này. Tóm lại chúng ta hãy đánh giá một lập trình viên dựa trên sản phẩm mà họ làm ra chứ đừng quá quan trong ngôn ngữ mà họ sử dụng.
Thay việc chê bai những ngôn ngữ mà các bạn không thích các bạn hãy dành thời gian đó để tìm hiểu và chia sẻ kiến thức cho nhiều người được biết đến. Một cách khách quan mà nói việc các bạn nắm bắt được nhiều ngôn ngữ lập trình các bạn sẽ có cơ hội thăng tiến hơn trong công việc.
Kết luận
Mỗi ngôn ngữ đều có những ưu điểm riêng biệt khác nhau không chỉ riêng ngôn ngữ lập trình C#. Việc của các bạn là hãy tìm hiểu và tìm cho mình một ngôn ngữ lập trình yêu thích, phù hợp cho bản thân mình để có động lực làm việc và phát triển kĩ năng nghề nghiệp trong tương lai.