Golang Là Gì Và Tại Sao Bạn Nên Học Go? Nó Dùng Tốt Trong Trường Hợp Nào

Golang là gì?

Go hay còn gọi là Golang là ngôn ngữ lập trình mã nguồn mở, được thiết kế tại Google bởi Robert Griesemer, Rob Pike, and Ken Thompson.

Đang xem: Golang là gì

Go có cú pháp giống với C và tất nhiên nó là ngôn ngữ lập trình biên dich (compiled programming language)

*
*
*

Các vi xử lý (Processors) chỉ hiểu các lệnh ở dạng nhị phân (binaries), mà lập trình viên chúng ta thì sử dụng các ngôn ngữ mà con người có thể đọc được nhưng vi xử lý của máy tính thì lại không, vì vậy các chương trình sau khi được code xong bởi bàn tay khéo léo của các lập trình viên thì nó sẽ được chuyển sang mã máy ở dạng nhị phân (binaries) bằng cách này hay cách khác, để vi xử lý có thể hiểu được.

Ở các ngôn ngữ biên dịch (Compiled) như C, C++, Go, Pascal thì code sẽ được chuyển (Compiling) sang mã máy ở dạng các bit nhị phân (binaries) 10110011 gì đấy và sẵn sàng để chạy ngay và luôn.

Với các ngôn thông dịch (Interpreted) như Python, PHP, Ruby, Javascript thì code khi thực thi sẽ được chuyển sang byte code, với mã byte code thì trình thông dich (virtual machines) mới hiểu được, sau đó trình thông dịch này sẽ tiếp tục chuyển sang dạng nhị phân (binaries) để mà vi xử lý máy tính có thể hiểu được.

Go là ngôn ngữ biên dịch (Compiled) nên code sẽ được chuyển sang dạng (binaries) để thực thi chứ không cần thông qua trình thông dịch nữa, nên nó sẽ tăng được hiểu suất làm việc. Go là ngôn ngữ lập trình cấp cao nhưng nó có hiệu suất (performance) tốt cũng gần bằng các ngôn ngữ lập trình cấp thấp hơn như C, C++.

Code Go rất dễ dàng bảo trì và mở rộng

Go là ngôn ngữ lập trình phải nói là tinh gọn trong từng cú pháp, ít có những cú pháp dài dòng hay điên khùng như các ngôn ngữ lập trình khác.

Những người thiết kế ngôn ngữ Go tại Google luôn phải suy nghĩ 1 điều trong đầu, bởi Google là một công ty lớn và có hàng ngàn developer làm việc trên cùng một mã nguồn, vì thế code được thiết kế ra phải thật sự đơn giản, dễ đọc, dễ hiểu và hạn chế các thay đổi bên ngoài hàm (side effect) để các developer làm việc chung với nhau một cách nhanh và hiệu quả nhất.

Go đã lượt bỏ rất nhiều tính năng của các ngôn ngữ lập trình hướng đối tượng (OOP) hiện đại.

Mọi thứ được phân chia bằng các gói (packages), Go không có class mà thay vào đó Go có struct như ngôn ngữ C/C++.

Go không hỗ trợ việc kế thừa sẽ giúp code dễ dàng thay đổi. Đối với các ngôn ngữ như Java hay Python thì khi class CON kế thứ class CHA thì khi thay đổi class CHA thì sẽ có một số ảnh hưởng (side effects) tới các class CON được kế thừa từ CHA. Để code Go dễ hiểu hơn thì nó đã loại bỏ đi tính kế thừa.

Xem thêm: Multinational Corporation / Mnc Là Gì ? Mnc Và Những Thông Tin Cần Biết Về Mnc

Go không có hàm khởi tạo (constructors).

Go không có chú thích (annotations) như Java, nếu các bạn không hiểu thì có thể tìm kiếm trên Google để biết thêm các khái niệm này nhé.

Go không có generics, generics là loại kiểu chung chung đại diện cho một kiểu dữ liệu nào đó chưa biết trước, người ta hay đặt là kiểu T.

Go không có exception nhưng có error, đồng nghĩa với việc không có cú pháp try/catch.

Đứng phía sau Go là Google

Ngôn ngữ lập trình Go được thiết kế và hỗ trợ bởi Google. Google là một trong những công ty có cơ sở hạ tầng về clound server lớn nhất trên thế giới và nó đòi hỏi khả năng mở rộng (scalability) và tính hiệu quả cao vì thế Golang được thiết kế để giải quyết các vấn đề đó.

Go cũng được sử dụng tại các công ty lớn như BBC, IBM, Intel.

Tóm lại:

Mặc dù Go hơi khác biệt so với các ngôn ngữ lập trình hướng đối tượng nhưng nó vẫn chất lừ. Nó mang đến hiệu suất (performance) tốt như C/C++ và có trải nghiệm tốt khi viết code nhờ cú pháp tinh gọn như Python.

Để cải thiện hiệu suất của ứng dụng đừng ép phần cứng (hardware) phải làm việc cực lực mà hãy chia sẻ một phần gánh nặng đó cho các đoạn code, khi đó người dùng sẽ có trải nghiệm tốt hơn nhưng chi phí bỏ ra lại rẻ hơn.

Xem thêm: ” Redeem Là Gì – Nghĩa Của Từ Redeem, Từ Redeem Là Gì

Các ngôn ngữ khác có khái niệm song song(paralleism) còn go có khái niệm đồng thời (concurrency) vậy paralleism có khác gì so với concurrency không, mình sẽ tìm hiểu và chia sẻ vơi các bạn ở bài viết tiếp theo nha.

Related Posts