[Chuyện nghề] Golang – ngôn ngữ trẻ hấp dẫn các backend developer

Golang, một trong những ngôn ngữ trẻ tuổi nhất trong các ngôn ngữ lập trình, có gì đặc biệt mà thu hút giới lập trình viên đến vậy? Cùng tìm hiểu trong bài viết dưới đây nhé.

Golang là gì? 

Golang hay Go (Go Language) là ngôn ngữ lập trình mã nguồn mở, tập trung vào các đặc tính đơn giản, độ tin cậy và hiệu quả của phần mềm. Golang được phát triển bởi 3 kỹ sư nổi tiếng hàng đầu tại Google là Ken Thompson, Robert Griesemer, và Rob Pike từ năm 2007 và chính thức phát hành phiên bản v1.0 vào tháng 3 năm 2012.  

Ở thời điểm đó, Google đang phát triển mạnh mẽ, kéo theo phần code để quản lý cơ sở hạ tầng của nền tảng này cũng phát triển nhanh cả về quy mô và độ phức tạp. Google nhận thấy codebase của họ chưa thể đáp ứng được nhu cầu này, họ cần một ngôn ngữ lập trình mới tập trung vào sự đơn giản và hiệu quả. Và ngôn ngữ lập trình Go ra đời. 

Fact!! “Go” là tên gọi ban đầu của ngôn ngữ này. Còn cái tên “Golang” xuất hiện do Google đăng ký tên miền cho trang web golang.org vì go.org đã bị đăng ký trước đó. Vì vậy, nhiều người thường sử dụng “golang” thay vì “go” khi gọi tên ngôn ngữ này.  

 

Golang – sức mạnh đến từ sự đơn giản mà hiệu quả 

Golang là thực sự là một ngôn ngữ đơn giản. Golang chỉ có 25 từ khóa, nhưng mỗi từ khóa đều có thể sử dụng linh hoạt 

Bên cạnh đó, Golang còn không có OOP (Object-oriented Programming), giúp cho lượng kiến thức bạn cần tìm hiểu giảm đi đáng kể. Một lập trình viên với những kiến thức cơ bản về lập trình một vài ngôn ngữ khác, học Golang chỉ mất vài giờ để bạn sẵn sàng viết code.  

Tuy đơn giản nhưng Golang (Go) thực sự là một ngôn ngữ mạnh: nó đáp ứng đúng sứ mệnh khi ra đời của nó là tăng hiệu suất phần mềm, đặc biệt là trong những dự án có source code lớn, phức tạp. Một số đặc tính của ngôn ngữ này gồm:  

  • Golang là một ngôn ngữ tĩnh (static typed): Mọi thứ trong Go đều cần có kiểu dữ liệu (Type), tức là nó chỉ hoạt động khi bạn đã có value cần gán vào. Kiểu dữ liệu sẽ không thể thay đổi sau khi biến được khai báo. ĐIều này giúp giảm lỗi khi chương trình thực thi.  
  • Golang khắc phục được điểm yếu của các static typed language trước đây là thời gian build/compile rất lâu. Với Golang thì việc này chỉ mấy từ vài giây đến vài phút. 
  • Golang hỗ trợ lập trình concurrent (đồng thời) dễ dàng với Goroutine.  

Go được ra mắt vào năm 2009 khi mà các vi xử lý đa nhân (multi-core processors) đã có. Đó là nguyên nhân tại sao mà Go được thiết kế và phát triển với lưu ý về việc thực thi đồng thời (concurrency), Go có goroutines thay cho threads. 

Goroutines có thời gian khởi động nhanh hơn là threads, có các channel có thể giao tiếp với nhau, và có khóa mutex (mutex locking) để đảm bảo việc đọc và ghi vào một cấu trúc dữ liệu hay một biến chung không xảy ra xung đột. 

  • Với Golang, cả hai yếu tố về thời gian phát triển (develop) và thời gian thực thi (performance). Golang vẫn giữa được hiệu năng cận C, tức chạy nhanh gần như C, mà source code vẫn khá đơn giản, không phức tạp như C/C++. 

 

Go phù hợp cho những dự án nào? 

Mỗi ngôn ngữ đều có một thị trường ngách riêng của nó. Phát triển web có JavaScript, khoa học dữ liệu có Python, hệ thống doanh nghiệp có Java, còn Golang sẽ dành cho các nền tảng đám mây.  

Bản chất, Golang là một ngôn ngữ dành cho hệ thống. Vì vậy nó đặc biệt phù hợp cho các hệ thống như Network, Proxy, Distributed Computing (xử lý phân tán) và đặc biệt là Cloud Native… 

  • Docker: là một nền tảng để cung cấp cách để dựng (build), kiểm thử (testing) và triển khai (deploy) ứng dụng (hoặc service) nhanh chóng bằng cách sử dụng container. 
  • Kubernetes: là một hệ thống mã nguồn mở để giúp việc triển khai, nhân rộng (scale) dễ dàng và tự động thông qua việc sử dụng các container Docker. 
  • Istio: là hệ thống hạ tầng giúp quản lý và kết nối các thành phần trong microservices. 
  • NATS: là một message system, một thành phần quan trọng trong các hệ thống pub/sub, event-driven. 
  • Consul: là một service (phần mềm / dịch vụ) giúp thiết lập network trong microservices một cách dễ dàng.

 

>> Xem thêm các ứng dụng khác được viết bởi Golang: Case Studies – The Go Programming Language

 

Golang Developer liệu có trở thành ngành nghề hot trong tương lai? 

Hiện tại, Golang đang ngày càng được sử dụng phổ biến trên thế giới và rất nhiều hệ thống đang dần được chuyển đổi về Go.  

Trong khảo sát Stack Overflow Developer 2022, Golang chỉ đứng thứ 13 về mức độ phổ biến nhưng lại đứng top 4 những ngôn ngữ mà các lập trình viên muốn học nhất. Đây cũng là ngôn ngữ rất được yêu thích khi nằm trong top 10 ngôn ngữ được yêu thích nhất và ngôn ngữ phổ biến thứ 4 trên Github.  

Cũng theo báo cáo thị trường IT Việt Nam năm 2022 của TopDev, Golang cũng là một trong sáu ngôn ngữ lập trình được yêu thích, bên cạnh Java, JavaScript, Python, Kotlin, Flutter, với mức lương trung bình $1289/ tháng cho một Golang developer khoảng 3 năm kinh nghiệm.

>> Check ngay thông tin tuyển dụng Golang Developer tại CMC Global: Golang Developer (Senior/Middle)

 

Nguồn tham khảo:

What’s so great about Go? – Stack Overflow Blog

The Go Programming Language

Copy link
Powered by Social Snap