Trong bài blog trước, mình đã giới thiệu về tính hướng đối tượng trong ngôn ngữ Go của Google. Lần này mình sẽ điểm qua những điểm thuận lợi và cả những điểm bất lợi khi sử dụng ngôn ngữ Go.

I. Thuận lợi

1. Tính đơn giản

Mặc dù Go có thể không phổ biến như JavaScript hoặc Python, nhưng nó có một điểm chung quan trọng với JavaScript và Python là nó rất dễ hiểu. Cú pháp rõ ràng dễ tiếp cận với người mới và không có nhiều hàm phức tạp mà bạn phải học so với các ngôn ngữ lập trình khác.

Điều này không chỉ dừng lại ở lợi ích duy nhất là giúp người mới dễ học mà tính đơn giản của ngôn ngữ Go còn giúp cho code được viết ra trở nên rất rõ ràng và dễ đọc. Go còn có sự tương đồng với các ngôn ngữ như C, C++, C# giúp cho những lập trình viên đã có kinh nghiệm về các ngôn ngữ trên khi chuyển qua Go mà không gặp mấy khó khăn.

2. Cung cấp sẵn thư việc chuẩn rất thông minh

Lập trình viên sử dụng ngôn ngữ Go có thể thực hiện rất nhiều mà không cần phải tìm hiểu thêm như viện khác (thư viện không phải thư viện chuẩn). Đôi khi có môt số việc yêu cầu phải được cài đặt phức tạp ở các ngôn ngữ khác thì lại có thể được thực hiện bằng một dòng mã thông qua Go interface.  

3. Tính bảo mật cao

Xét về mặt tổng quát, code đơn giản sẽ an toàn hơn code phức tạp mọi thứ rất rõ ràng giúp ta có thể kiểm soát được lỗi dễ hơn và điều đó hoàn toàn đúng với trường hợp của Go. Là một statically typed language, bạn không phải lo lắng về các lỗi phức tạp và khó xác định xuất phát từ số lượng lớn các loại biến có trong các ngôn ngữ dynamic hơn so với Go. Bên cạnh đó Go bộ thu gom rác giúp lập trình viên chỉ cần chuyên tâm vào logic mà họ cần xử lí.

4. Tài liệu rõ ràng và đễ đọc

Mặc dù Go là một ngôn ngữ đơn giản để viết và đọc, nhưng điều đó không có nghĩa là không viết documentation. Các thư viện chuẩn được viết documentation rất cẩn thận và dễ hiểu. Chính sách mặc định là phải viết documentation cho tất cả các chức năng và thư viện. Go thậm chí còn cảnh báo bạn khi bạn quên đặt documentation vào những vị trí cần viết. Đó là điều đặc biệt quý giá cho các lập trình viên trẻ tuổi, những người có xu hướng rơi vào thói quen tài liệu cẩu thả từ rất sớm.

II. Bất lợi

1. Đôi lúc nó quá đơn giản

Một trong những ưu điểm chính của Go, cũng là một trong những điểm yếu lớn nhất của nó. Go có thể là một ngôn ngữ dễ dàng để chọn, nhưng điều đó mang lại sự thiếu linh hoạt.

2. Go vẫn còn là một ngôn ngữ trẻ

Có ngôn ngữ rất nhiều tiềm năng hứa hẹn, tuy nhiên nó vẫn là một ngôn ngữ trẻ và đương nhiên sẽ gặp khó khăn khi phải cạnh trạnh với những ngôn ngữ đã được ra đời trước nó. Thư viện chuẩn của Go được thiết kế thông minh và hiệu quả, nhưng nó phải cạnh tranh với các ngôn ngữ như Java được hỗ trợ bởi một bộ mã khổng lồ và có một cộng đồng hùng hậu. Mặc dù Go cuối cùng có thể bắt kịp các ngôn ngữ khác và Go cũng có những điểm mạnh riêng của nó nhưng Go vẫn còn một chặng đường dài trong việc xây dựng thư viện hỗ trợ.

3. Go vẫn chưa thực sự tìm được chỗ đứng cho mình

Khi mà JavaScript trở thành ngôn ngữ cho lập trình viên thích sự đơn giản và Python đã tìm thấy một vị trí trong thế giới trực quan hóa và phân tích dữ liệu, Go chưa thực sự chiếm lĩnh được vị trí tốt bên ngoài Google so với các ngôn ngữ lâu đời. Thêm vào thực tế là các công ty khác sẽ ngần ngại đầu tư vào một ngôn ngữ chủ yếu thuộc sở hữu của đối thủ cạnh tranh. Mặc dù đã có 1 số công ty sử dụng ngôn ngữ Go của Google nhưng xét về tổng quan số lượng này vẫn chưa thực sự ấn tượng so với các ngôn ngữ lâu đời.

4. Không hỗ trợ thư viện GUI

Go là một lựa chọn tuyệt vời cho các ứng dụng. Mặc dù vậy, Go không có thư viện GUI, điều đó có nghĩa là bạn phải tốn nhiều thời gian và kiến ​​thức để kết nối thư viện với ứng dụng của mình thay vì sử dụng các giải pháp gốc như với Python hoặc Java.

III. Kết luận

Không có bất cứ thứ gì có thể gọi là một ngôn ngữ lập trình hoàn hảo cả! Điều tốt nhất mà một ngôn ngữ có thể làm là hi vọng nó có thể làm được một hoặc hai điều gì đó mà vượt trội hơn so với tất cả các ngôn ngữ khác còn lại. Đối với Go, một trong những điểm mạnh lớn nhất là tính rõ ràng, đơn giản. Tính dễ sử dụng của nó, kết hợp với việc áp dụng cao tại Google làm cho nó trở thành một ngôn ngữ trẻ đầy triển vọng. Nhưng nó sẽ không phù hợp với mọi dự án hay mọi lập trình viên. Vì vậy hãy xem xét các điểm mạnh và điểm yếu một cách cẩn thận trước khi sử dụng.

IV. Nguồn tham khảo

https://hackernoon.com/should-i-go-the-pros-and-cons-of-using-go-programming-language-8c1daf711e46

https://willowtreeapps.com/ideas/the-pros-and-cons-of-programming-in-go

https://www.mindinventory.com/blog/pros-and-cons-programming-in-golang/