Suy nghĩ về lý do tại sao Go đang trở thành một lựa chọn phổ biến giữa các nhà phát triển

Đầu năm nay, Stack Overflow đã đưa ra khảo sát nhà phát triển vào năm 2021. Nếu bạn chú ý đến các tiêu đề công nghệ vào thời điểm đó, bạn sẽ thấy rằng JavaScript và Python chiếm ưu thế trong một năm liên tiếp. Tuy nhiên, đó không phải là những ngôn ngữ mà tôi chú ý.

Có một ngôn ngữ khác trong danh sách đó đã thu hút sự chú ý của tôi: Golang.

“Golang? Nhưng nó chỉ được xếp ở vị trí thứ 12? ” Bạn có thể đang suy nghĩ.

Đây là sự thật. Nó không phải là ngôn ngữ lập trình phổ biến nhất trên thế giới. Có một số lượng tương đối các nhà phát triển sử dụng nó và có một số lý do chính đáng cho điều đó.

Go là tương đối mới và chưa trưởng thành. Đó là một ngôn ngữ trần trụi thiếu rất nhiều đường cú pháp mà các ngôn ngữ khác có. Nó không có bất kỳ khung phổ biến nào tự động hóa nồi hơi tẻ nhạt. Và cho đến ba năm trước, nó không có một trình quản lý gói tiêu chuẩn.

Không có gì đáng ngạc nhiên khi nhiều nhà phát triển không sử dụng nó ... nhưng.

Bạn thấy đấy, trong khi Go chỉ đứng thứ 12 về mức độ phổ biến, nó đứng thứ ba về ngôn ngữ mà các nhà phát triển muốn học (tôi đang tính TypeScript trong danh mục JavaScript).

HackerRank cũng ủng hộ điều này. Theo nghiên cứu của họ từ năm 2020, Golang là ngôn ngữ được mong muốn học nhất trong ba năm liên tiếp.

Từ Khảo sát năm 2020 của HackerRank - Ảnh chụp màn hình bởi Tác giả
Từ Khảo sát năm 2020 của HackerRank - Ảnh chụp màn hình bởi Tác giả

Không chỉ vậy, Go còn nằm trong top 10 ngôn ngữ được yêu thích nhất để sử dụng và là ngôn ngữ phổ biến thứ ba trên GitHub về mặt ngôi sao.

Từ GitHut 2.0 — Ảnh chụp màn hình của tác giả
Từ GitHut 2.0 — Ảnh chụp màn hình của tác giả

 

Go đang trở nên phổ biến nhanh hơn. Nhưng tại sao?

Như tôi đã đề cập trước đó, Go vẫn còn rất nhiều vấn đề. Trong bối cảnh hiện tại của các ngôn ngữ lập trình, có nhiều tùy chọn linh hoạt và mạnh mẽ hơn để lựa chọn. Vậy tại sao Go từ từ tiếp quản ngành công nghiệp phần mềm?

Vẻ đẹp trong sự đơn giản

Bất chấp những sai sót của Go, có rất nhiều điều để yêu thích về nó. Từ mô hình đồng thời, sự hỗ trợ phong phú của bên thứ ba, sự mạnh mẽ của công cụ dòng lệnh của nó, và nhiều hơn nữa. Nhưng tất cả những điều đó sẽ không có ích nếu không có tính năng tốt nhất của Go: dễ sử dụng.

Như tôi đã đề cập trước đây, Go là một ngôn ngữ trần trụi và đơn giản. Nhưng đó là cách theo thiết kế - sự đơn giản của nó là sức mạnh của nó. Nó chỉ có 25 từ khóa nhưng mỗi từ khóa đều linh hoạt.

Lấy for ví dụ minh họa. Đó là từ khóa dành riêng cho lặp và lặp.

Nó có thể được sử dụng như một vòng lặp for bình thường.

for i := 0; i < 10; i++ {
fmt.Println(i)
}

Nó có thể được sử dụng như một vòng lặp while.

i: = 0
cho i <10 {
fmt.Println (i)
i ++
}

Và nó có thể được sử dụng để lặp qua một mảng hoặc bản đồ.

for key, value := range myMap {
fmt.Println(key, value)
}

Đừng để sự đơn giản của Go đánh lừa bạn - nó tạo ra một cú đấm.

Ngôn ngữ tĩnh với một twist động


Go là một ngôn ngữ tĩnh, theo truyền thống đáng sợ hơn để học. Đặc biệt là đối với những người học lập trình bằng các ngôn ngữ động như Python hoặc JavaScript.

Nhưng Go đã học được từ những người anh em năng động của nó. Nó hỗ trợ (hạn chế) phân công năng động và là một ngôn ngữ quản lý bộ nhớ với một bộ thu gom rác. Kết hợp điều này với cú pháp đơn giản và nó tạo ra một ngôn ngữ dễ dàng chọn và bắt đầu xây dựng.

Đường cong học tập nông cạn của nó là một trong những động lực lớn nhất cho việc áp dụng nhanh chóng.

Theo dõi tiền


Nếu bạn muốn một lý do khác tại sao các nhà phát triển đang đổ xô đến Go, tất cả những gì bạn cần làm là làm theo tiền.

Nguồn: HackerRank — Ảnh chụp màn hình bởi tác giả

Theo nghiên cứu của HackerRank, Go có tương quan với mức tăng lương 33% so với mức trung bình. Không chỉ vậy, cứ 10 nhà quản lý tuyển dụng thì có 1 người mong muốn ứng viên có kinh nghiệm về. Các nhà phát triển có động lực tài chính để học nó.

Một điều cần chỉ ra là mối tương quan không có nghĩa là nhân quả. Chỉ vì bạn biết Go không nhất thiết có nghĩa là bạn sẽ kiếm được nhiều tiền hơn. Nhưng chúng ta hãy xem xét lý do tại sao mối tương quan này tồn tại.

Các công ty công nghệ lớn yêu thích nó.

Ban đầu được phát triển tại Google và phát hành vào năm 2009, Golang đã chậm chạp, nhưng chắc chắn, đã giành được sự tin tưởng của ngành công nghiệp phần mềm. Với sự gia tăng của kiến trúc microservice, ngày càng có nhiều công ty công nghệ lớn đã áp dụng nó.

Các công ty như Uber, Twitch và Slack đều sử dụng Go trong ngăn xếp của họ. Ngay cả các công ty nổi tiếng với việc áp dụng và truyền giáo kiến trúc nguyên khối cũng đã áp dụng nó, chẳng hạn như GitHub và Shopify.

Tất cả các công ty này phải trả mức giá hàng đầu thị trường và thu hút hàng ngàn kỹ sư phần mềm đầy tham vọng. Trước đây, các nhà phát triển muốn làm việc tại những người khổng lồ công nghệ này sẽ cần phải học các ngôn ngữ như Java, C hoặc C. Nhưng thành thật mà nói, đó không phải là những ngôn ngữ mà hầu hết các nhà phát triển muốn sử dụng hàng ngày. Bạn chỉ cần nhìn vào các cuộc khảo sát của nhà phát triển để thấy điều đó cho chính mình.

Phần lớn các nhà phát triển sợ sử dụng C, C và Java - Nguồn: StackOverflow Survey

Go cung cấp một giải pháp thay thế cho các kỹ sư muốn làm việc cho các công ty công nghệ lớn và không muốn phải chịu java.

Nhưng điều này vẫn để lại một câu hỏi chưa được trả lời: Tại sao ngày càng có nhiều công ty chuyển sang Go?

Và câu trả lời khá đơn giản.

Go là ngôn ngữ của đám mây

Nói rằng điện toán đám mây đã thay đổi ngành công nghệ là một cách nói quá. Các công ty không còn cần phải xây dựng các trang trại máy chủ và thuê đội để duy trì chúng nữa. Các nhà cung cấp đám mây đã biến máy chủ thành một loại hàng hóa. Các nhóm kỹ thuật hiện có thể tạo ra một máy ảo chỉ bằng một cú nhấp chuột.

Sự gia tăng của điện toán đám mây đã dẫn đến nhu cầu về các công nghệ có thể giúp các nhóm quản lý và mở rộng quy mô kiến ​​trúc của họ trên đám mây. Và cloud-native ra đời.

Các công nghệ như Terraform, Docker và Kubernetes giúp việc triển khai, mở rộng và quản lý các ứng dụng trên đám mây bằng microservices trở nên dễ dàng hơn bao giờ hết. Chúng là những công cụ phát triển phổ biến nhất đằng sau Git. Và tất cả chúng đều được xây dựng bằng cờ vây.Các công nghệ như Terraform, Docker và Kubernetes giúp việc triển khai, mở rộng và quản lý các ứng dụng trên đám mây bằng microservices trở nên dễ dàng hơn bao giờ hết. Chúng là những công cụ phát triển phổ biến nhất đằng sau Git. Và tất cả chúng đều được xây dựng với Go.

Không chỉ Docker và Kubernetes. Phần lớn các dự án do Cloud Native Computing Foundation tài trợ được viết bằng Go.

Go được xây dựng cho đám mây và microservices. Nó được thiết kế cho các máy chủ đa lõi. Nó dễ dàng biên soạn chéo cho một loạt các kiến trúc và hệ điều hành. Nó cũng cực kỳ nhẹ. Nhị phân được biên soạn của nó nhỏ hơn 10 lần so với các phân tử tương tự trong Java. Chúng không chỉ nhỏ hơn mà còn biên soạn nhanh hơn nhiều.

Kubernetes có hơn 5 triệu dòng mã ứng dụng. Nếu nó được viết bằng bất kỳ ngôn ngữ nào khác, có thể mất hàng chục phút đến hàng giờ để biên soạn. Với Go, chỉ mất một hoặc hai phút.

Và tôi không phải là người duy nhất nói điều này. Theo 5 nguyên tắc của Google về kiến trúc bản địa đám mây:

"Hầu như tất cả các kiến trúc đám mây đều dựa trên kiến trúc microservices[.]"

Với 6 trong số 10 tổ chức đã chuyển khối lượng công việc của họ lên đám mây và nhiều hơn nữa trên đường đi, ngày càng có nhiều công ty đang trở nên phụ thuộc vào Go - cho dù họ có sử dụng trực tiếp hay không.


Tổng kết


Không rõ liệu Go sẽ trở nên phổ biến và được sử dụng nhiều hơn JavaScript, Python hay Java. Nhưng nó không cần phải làm thế. Ngôn ngữ lập trình không phải là một thị trường giành chiến thắng.

Đi giải quyết một nhu cầu quan trọng. Một ngôn ngữ cung cấp tốc độ, an toàn, khả năng mở rộng của một ngôn ngữ tĩnh với sự dễ dàng sử dụng của một ngôn ngữ năng động. Nó cũng đã tạo ra một niche quan trọng.

Mỗi ngôn ngữ đều có thị trường ngách của nó. JavaScript có sự phát triển web. Python có khoa học dữ liệu. Ruby có những startup. Java có doanh nghiệp. Và Go có đám mây.

Mặc dù chỉ mới 10 tuổi, Golang đã ghi dấu ấn của mình. Và với sự thống trị của điện toán đám mây đang lan rộng, tương lai của Go đang trở nên tươi sáng hơn bao giờ hết.

Bài viết gốc tại đây.

Để đáp ứng nhu cầu học lập trình Golang trong tình hình dịch bệnh phức tạp, Techmaster cho ra mắt khóa học Lập trình Web - API - Microservice bằng Golang Online có tương tác: Có video, slide và mã nguồn demo dự án.

Chi tiết khóa học: https://techmaster.vn/khoa-hoc/8a0/lap-trinh-web-api-microservice-bang-golang

Liên hệ tư vấn: Mr Thịnh - 0987273764 (zalo).