Skip to main content

C# là ngôn ngữ tuyệt vời nhất. Java, PHP, C, C++, RUBY chỉ toàn là thứ rẻ tiền


Sau một khoảng thời gian dài lập trình, mình đã có thể tự mà phát biểu rằng: C# là ngôn ngữ lập trình tuyệt vời và đáng học nhất. Lý do ư, vô số kể:
  • Bản thân ngôn ngữ C# có vô số điều thú vị: static method, partial class, delegate, LINQ, lambda expression, … Cái ngôn ngữ cùi bắp như Java làm gì có partial class, delegate, đến Java 8 mới bắt chước được cái lambda expression còn gì.
  • C# là ngôn ngữ strong-typed: Các tham số, kết quả trả về của hàm đều là một object. Mọi lỗi do đánh nhầm tên trường, tên hàm, nhầm kiểu class đều được báo trong lúc viết code, không phải chờ đến lúc chạy mới báo như mấy cái ngôn ngữ PHP, python cùi chuối khác.
  • C# đi kèm với framework .NET, hỗ trợ nhiều thứ: Tạo ứng dụng Window với WinForm, WPF; Tạo website bằng WebForm, MVC.NET… Mấy cái ngôn ngữ cấp thấp như C, C++ tuổi gì làm được mấy cái đó.
  • C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ. VS ra bản mới đều đặn như FIFA. Reshaper hỗ trợ refactor, tăng tốc độ code … Mấy đứa khác code PHP, Python dùng cái gì để code? Dĩ nhiên là mấy thứ rởm rởm như Notepad++ hoặc Sublime Text rồi, đến cái chức năng “Jump to Definition” còn không có.
Đọc xong đoạn này, có lẽ sẽ có khoảng vài chục người ném cà chua, trứng thối và gạch đá đủ cho mình xây biệt thự. Từ từ, ít ra hãy bỏ thời gian kéo xuống dưới, đọc hết bài viết rồi ném gạch mình nhé. Dù sao khung comment nó nằm tận dưới cuối trang mà.

Chúng ta đang xem ngôn ngữ lập trình như một thứ tôn giáo

Ngày xưa, mình cũng hay nhảy vào ném gạch khi nghe có đứa mở mồm chê C# và .NET. Giữa lập trình viên với nhau luôn có những cuộc tranh cãi liên tu bất tận về ngôn ngữ và công nghệ: Ngôn ngữ nào mạnh nhất, công nghệ nào tốt nhất. Ngôn ngữ, thứ vốn chỉ là công cụ, nay được nâng lên tầm TÔN GIÁO. Lập trình viên chia thành đạo Java, đạo PHP, đạo C#, đạo này công kích chửi bới đạo kia. Mức độ cuồng tín đôi khi chắc cũng không thua fan bóng đá, fan cuồng K-pop hay ISIS. Những cuộc cãi vã chê bai đầy rẫy trên mạng, các bạn có thể thử google: Why C# sucks, Why Java sucks, Why PHP sucks, … để xem thử.
Khi làm việc nhiều với một ngôn ngữ, một developer sẽ quen dần với ngôn ngữ đó, tìm ra được nhiều điều hay ho ẩn trong ngôn ngữ. Nhiều người sẽ nghĩ rằng ngôn ngữ của mình là nhất, có thể giải quyết được mọi vấn đề (Giống như ISIS nghĩ rằng đạo Hồi là nhất, mọi lời nói của đấng tối cao đều đúng đắn). Khi ngôn ngữ mình thích bị chê bai, bị xúc phạm, họ cảm thấy như chính tôn giáo của mình bị xúc phạm. Họ xù lông lên, kêu gọi bạn bè, đồng đội cùng đạo, nhảy vào ném đá cho chết “cái thằng bố láo, dám chê Java, PHP, C++, … của bố“.

Về bản chất, ngôn ngữ chỉ là công cụ

Ngôn ngữ chỉ là thứ chúng ta sử dụng, nó không định hình nên con người chúng ta. Để mở rộng tầm nhìn, bạn hãy thử tìm hiểu nhiều ngôn ngữ xem. Bạn sẽ ngạc nhiên khi thấy giữa chúng đều có một vài khái niệm, khuôn mẫu chung. (Mình từng dùng MVC.NET, Struts2, Django, 3 framework của 3 ngôn ngữ khác nhau nhưng đều dựa trên khái niệm MVC cả). Nói một các công bằng, ngôn ngữ nào cũng có cái hay của nó:
  • C, C++ làm web khá cực và mất thời gian, nhưng để lập trình nhúng, lập trình game hay cần performance thì khó ai bằng nó.
  • Javascript là cái ngôn ngữ kì dị điên khùng và cực tệ. Tuy nhiên do có vô số framework đi kèm nên hiện tại và tương lai nó vẫn sẽ hot, do đó mình khuyên nhiều bạn nên học.
  • PHP được thiết kế dở tệ (Vốn nó được tạo ra chỉ để viết mấy trang web nho nhỏ), nhưng có vô số framework, cộng đồng lập trình viên đông và hung hãn. Nó là lựa chọn số 1 nếu muốn tạo 1 trang web nhanh, nhiều tính năng, ít lỗi (Điển hình như blog này viết trên wordpess, cũng viết bằng PHP).
  • C#.NET, muốn dùng phải cài 1 đống thứ nặng nề và tốn tiền. Nhưng nó lại được rất nhiều công ty sử dụng vì tính năng, bảo mật, v…v
  • Dừng tranh cãi lại, bớt gạch đá đi

    Xét cho cùng, thứ quan trọng không phải là ngôn ngữ, mà là khả năng tư duy logic, kĩ năng giải quyết vấn đềtầm nhìn hệ thống. Khách hàng sẽ đánh giá chúng ta qua sản phẩm – thứ họ thấy, và éo ai quan tâm đến code bạn viết đâu. Bạn có ngừng dùng facebook vì nó viết bằng PHP – thứ ngôn ngữ cùi bắp không? KHÔNG. Bạn có bỏ stackoverflow khi biết nó được xây dựng dựa trên MVC.NET, ngôn ngữ vừa chậm vừa mắc tiền không? DĨ NHIÊN LÀ KHÔNG. Vậy thì hãy đánh giá một lập trình viên qua thứ họ làm ra, chứ đừng thông qua ngôn ngữ họ sử dụng.
    Thay vì chê bai, tranh cãi khi có người chê ngôn ngữ mình thích, hãy bỏ thời gian ra tìm hiểu và chia sẻ kiến thức (Bằng cách viết blog như mình này).  Giữ một cái nhìn khách quan về ngôn ngữ lập trình, bạn sẽ dễ dàng thăng tiến, tìm việc hơn (Đang làm Java nhảy qua Python cũng không sao). Ngày xưa mình cũng ghét PHP lắm, sau khi tự học nó lại thấy nó có kha khá thứ thú vị đấy chứ.
    Kết luận: Nói gì thì nói, bản chất PHP vẫn là một ngôn ngữ sida cùi bắp, và Javascript vẫn là cái thứ dị hợm, dở dở ương ương, thất bại của tạo hóa. Nếu bạn vẫn còn cay cú vì PHP bị nói xấu, vui lòng kéo lên đầu và đọc lại bài viết nhé.
  • Xem thêm việc làm tại : https://freec.asia/

Comments

Popular posts from this blog

Tại sao Java và JavaScript lại có tên gọi tương tự nhau?

Sự tương đồng về tên gọi này là có chủ ý. Java, được tạo ra vào năm 1990 bởi James A. Gosling, một nhà khoa học máy tính tại Sun Microsystems, đã rất nổi tiếng vào thời điểm Netscape đặt tên cho ngôn ngữ lập trình của mình là JavaScript vào cuối năm 1995. Việc dựa vào danh tiếng của Java là một động thái kinh doanh thông minh. Như một người dùng Quora từng đưa ra giả thuyết, Netscape muốn mọi người nghĩ rằng Javascript có liên quan đến Java và họ đã thành công. Java được tạo ra vào năm 1990 bởi James A. Gosling Lời giải thích đó hơi khiên cưỡng và không hoàn toàn chính xác. Thực tế là JavaScript, được thiết kế bởi Brendan Eich của Netscape, ban đầu gọi là LiveScript, nhưng một thỏa thuận marketing (hay có thể gọi vui là một “mánh khóe”) giữa Netscape và Sun đã khiến Netscape đổi tên thành JavaScript, vì mục đích hợp tác thương hiệu. Vào thời điểm đó, Sun đã đồng ý cho Netscape đóng gói trình duyệt hàng đầu với Java runtime. Việc thay đổi tên là một phần của thỏa thuận.

Magento là gì và lập trình viên Magento làm gì?

Magento là gì? Magento là một mã nguồn mở để xây dựng các website thương mại điện tử dùng ngôn ngữ PHP dựa trên nền tảng Zend Framework.  Hiện có 2 phiên bảng Magento:  Magento Open Source  (tên trước đây là Community Edition  hay CE ) là phiên bản miễn phí và  Magento Commerce  (tên trước đây là Enterprise Edition   hay EE ) phải trả phí. Bạn sẽ được Magento hỗ trợ khi dùng Magento Commerce nhưng giá khá đắt. Magento được đánh giá là một trong những phần mềm thương mại  điện tử phức tạp nhất hiện nay. Sự phát triển của Magento Magento  được phát triển bởi công ty Varien Inc có trụ sở ở California, Mỹ với sự hỗ trợ của cộng đồng. Phiên bản Magento đầu tiên được đưa ra vào ngày 31/03 năm 2008. Sau đó eBay đã mua lại công ty này vào năm 2011 và tiếp tục phát triển phần mềm này. Năm 2018 Magento đã được Adobe mua lại với giá 1,68 tỉ USD. Ngày 17/11/2015, phiên bảng Magento 2.0 được công bố. Phiên bảng mới nhất của Magento là 2.3. Theo một khảo sát vào đầu năm 2016 của  Aheadworks , có đến

Ngành lập trình game làm những công việc gì?

Công việc lập trình game bao gồm nhiều công đoạn như thiết kế kịch bản trò chơi, lên ý tưởng, vẽ đồ họa. viết code, chạy thử và kiểm tra lỗi,….mỗi khâu đều đòi hỏi những ý tưởng đột phá, gửi gắm cả tình yêu và niềm đam mê. Tùy theo thế mạnh của bản thân mà bạn có thể lựa chọn theo đuổi những lĩnh vực phù hợp, cụ thể: Game designer : Đây là khâu cực kỳ quan trọng được xem là “linh hồn” của một sản phẩm game. Bộ phận này sẽ đảm nhận công việc lên kịch bản game, ý tưởng, các level, tính thử thách trong game. Có thể nói, game designer chính là “cầu nối” giữa progamer với artist. Game Artist : Bộ phận này chịu trách nhiệm trong việc thiết kế hình ảnh trong game như nhân vật, nhà cửa, vật thể….làm cho các nhân vật hiện lên có hồn và sống động nhất. Để đảm nhận vị trí này bạn cần có sự tinh tế, óc thẩm mỹ cao Gam Developer : Bộ phận này chịu trách nhiệm viết code cho sản phẩm game. Mục đích là để game có thể chạy trên nhiều nền tảng khác nhau. Game Tester : Vị trí này đảm nhận cô