Blog Go
Tám năm của Go
Hôm nay chúng ta kỷ niệm 8 năm kể từ khi Go được phát hành như một dự án mã nguồn mở. Trong sinh nhật lần thứ 4 của Go, Andrew đã kết thúc bài viết bằng câu “Chúc cho thêm bốn năm nữa!”. Giờ đây khi đã chạm tới cột mốc đó, tôi không khỏi suy ngẫm về việc dự án và hệ sinh thái đã phát triển nhiều đến mức nào kể từ lúc ấy. Trong bài viết cách đây 4 năm, chúng tôi có đưa vào một biểu đồ thể hiện mức độ phổ biến tăng lên của Go trên Google Trends với từ khóa tìm kiếm “golang”. Hôm nay, chúng tôi đưa vào một biểu đồ cập nhật. Trên thang đo tương đối về mức độ phổ biến này, thứ từng là 100 cách đây bốn năm giờ chỉ còn là 17. Mức độ phổ biến của Go đã tăng theo cấp số nhân trong 8 năm qua và vẫn đang tiếp tục phát triển.
Nguồn: trends.google.com
Các nhà phát triển yêu Go
Go đã được các nhà phát triển trên khắp thế giới đón nhận với khoảng một triệu người dùng trên toàn cầu. Trong báo cáo Octoverse 2017 vừa được công bố của GitHub, Go đã trở thành ngôn ngữ phổ biến thứ 9, vượt qua C. Go là ngôn ngữ tăng trưởng nhanh nhất trên GitHub trong năm 2017 trong top 10 với mức tăng 52% so với năm trước. Về tăng trưởng, Go đã đổi chỗ với JavaScript, ngôn ngữ rơi xuống vị trí thứ hai với 44%.
Nguồn: octoverse.github.com
Trong khảo sát nhà phát triển năm 2017 của Stack Overflow, Go là ngôn ngữ duy nhất vừa nằm trong top 5 ngôn ngữ được yêu thích nhất vừa nằm trong top 5 ngôn ngữ được muốn học nhất. Những người dùng Go thì yêu nó, còn những người chưa dùng Go thì muốn được dùng nó.
Nguồn: insights.stackoverflow.com/survey/2017
Go: Ngôn ngữ của hạ tầng đám mây
Năm 2014, nhà phân tích Donnie Berkholz đã gọi Go là ngôn ngữ đang trỗi dậy của hạ tầng đám mây. Đến năm 2017, Go đã nổi lên như ngôn ngữ của hạ tầng đám mây. Ngày nay, mọi công ty đám mây đều có các thành phần hạ tầng đám mây quan trọng được hiện thực bằng Go, bao gồm Google Cloud, AWS, Microsoft Azure, Digital Ocean, Heroku và nhiều công ty khác. Go là một phần quan trọng của những công ty đám mây như Alibaba, Cloudflare và Dropbox. Go cũng là một phần cốt lõi của hạ tầng mở như Kubernetes, Cloud Foundry, Openshift, NATS, Docker, Istio, Etcd, Consul, Juju và nhiều hệ thống khác nữa. Các công ty ngày càng chọn Go để xây dựng các giải pháp hạ tầng đám mây.
Cộng đồng tuyệt vời của Go
Thật khó tin rằng mới chỉ bốn năm trước cộng đồng Go mới bắt đầu chuyển từ chỉ gặp nhau trực tuyến sang có cộng đồng trực tiếp với hội nghị đầu tiên. Giờ đây cộng đồng Go đã có hơn 30 hội nghị khắp thế giới với hàng trăm bài thuyết trình và hàng chục nghìn người tham dự. Có hàng trăm buổi meetup Go diễn ra hằng tháng trên khắp địa cầu. Dù bạn sống ở đâu, rất có thể bạn cũng sẽ tìm thấy một meetup Go ở gần mình.
Hai tổ chức khác nhau đã được thành lập để hỗ trợ tính bao trùm trong cộng đồng Go, đó là Go Bridge và Women Who Go; riêng tổ chức thứ hai đã phát triển lên hơn 25 chapter. Cả hai đều giữ vai trò quan trọng trong việc cung cấp các khóa đào tạo miễn phí. Chỉ riêng trong năm 2017, hơn 50 suất học bổng tới các hội nghị đã được trao thông qua nỗ lực của Go Bridge và Women Who Go.
Năm nay chúng tôi có hai dấu mốc “đầu tiên” đáng kể cho dự án Go. Chúng tôi tổ chức hội nghị thượng đỉnh cộng tác viên đầu tiên, nơi mọi người từ khắp cộng đồng Go cùng tụ họp để thảo luận về nhu cầu và tương lai của dự án Go. Không lâu sau đó, chúng tôi có workshop cộng tác viên Go đầu tiên, nơi hàng trăm người đến để thực hiện đóng góp Go đầu tiên của mình.
Ảnh chụp bởi Sameer Ajmani
Tác động của Go tới mã nguồn mở
Go đã trở thành một lực lượng lớn trong thế giới mã nguồn mở, cung cấp sức mạnh cho nhiều dự án phổ biến nhất và tạo điều kiện cho đổi mới trong nhiều ngành. Bạn có thể tìm thấy thêm hàng nghìn ứng dụng và thư viện tại awesome-go. Dưới đây là chỉ một vài dự án nổi tiếng nhất:
-
Moby (trước đây là Docker) là công cụ để đóng gói và chạy ứng dụng trong các container nhẹ. Người tạo ra nó, Solomon Hykes, cho rằng thư viện chuẩn của Go, các primitive đồng thời và sự dễ dàng trong triển khai là các yếu tố then chốt, và nói rằng “Nói đơn giản, nếu Docker không được viết bằng Go, thì nó đã không thể thành công đến vậy.”
-
Kubernetes là một hệ thống để tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng container hóa. Ban đầu được Google thiết kế và sử dụng trong đám mây của Google, Kubernetes hiện là một phần thiết yếu trong mọi dịch vụ đám mây lớn.
-
Hugo hiện là bộ máy dựng website tĩnh mã nguồn mở phổ biến nhất. Với tốc độ tuyệt vời và tính linh hoạt cao, Hugo khiến việc xây dựng website lại trở nên thú vị. Theo w3techs, Hugo hiện có mức sử dụng gần gấp 3 lần Jekyll, cựu quán quân.
-
Prometheus là một giải pháp giám sát mã nguồn mở và cơ sở dữ liệu chuỗi thời gian hỗ trợ hệ thống metrics và cảnh báo, được thiết kế để trở thành nơi bạn tìm đến khi xảy ra sự cố nhằm chẩn đoán vấn đề thật nhanh.
-
Grafana là một hệ thống mã nguồn mở, giàu tính năng để dựng dashboard và đồ thị metrics cho Graphite, Elasticsearch, OpenTSDB, Prometheus và InfluxDB.
-
Lantern mang lại khả năng truy cập nhanh, đáng tin cậy và an toàn tới các website và ứng dụng bị chặn.
-
Syncthing là một ứng dụng đồng bộ tệp liên tục ngang hàng, đa nền tảng và mã nguồn mở.
-
Keybase là một ứng dụng bảo mật mới và miễn phí cho điện thoại di động và máy tính. Hãy xem nó như sự kết hợp giữa Dropbox và Slack mã nguồn mở với mã hóa đầu cuối bằng mật mã khóa công khai.
-
Fzf là một bộ lọc Unix tương tác cho dòng lệnh có thể dùng với bất kỳ danh sách nào: tệp, lịch sử lệnh, tiến trình, hostname, dấu trang, commit git, v.v. Fzf hỗ trợ Unix, macOS và có hỗ trợ beta cho Windows. Nó cũng có thể hoạt động như một plugin của vim.
Nhiều tác giả của các dự án này đã nói rằng dự án của họ sẽ không thể tồn tại nếu không có Go. Một số như Kubernetes và Docker đã tạo ra những giải pháp hoàn toàn mới. Một số khác như Hugo, Syncthing và Fzf tạo ra trải nghiệm tinh tế hơn trong những lĩnh vực vốn đã có nhiều giải pháp. Chỉ riêng mức độ phổ biến của các ứng dụng này đã là bằng chứng cho thấy Go là một ngôn ngữ lý tưởng cho tập hợp rất rộng các trường hợp sử dụng.
Xin cảm ơn
Đây là lần thứ tám chúng tôi có vinh dự được viết bài blog sinh nhật cho Go, và chúng tôi vẫn tiếp tục choáng ngợp trước sự nhiệt tình và ủng hộ của cộng đồng Go.
Kể từ khi Go lần đầu được mã nguồn mở hóa, chúng ta đã có 10 bản phát hành của ngôn ngữ, thư viện và công cụ, với hơn 1.680 người đóng góp thực hiện hơn 50.000 commit cho 34 kho chứa của dự án; số lượng người đóng góp đã hơn gấp đôi và số commit gần như gấp đôi so với chỉ hai năm trước. Năm nay chúng tôi đã thông báo rằng mình bắt đầu lên kế hoạch cho Go 2, cuộc đại tu lớn đầu tiên của ngôn ngữ và công cụ.
Nhóm Go xin cảm ơn tất cả những ai đã đóng góp cho dự án, dù bạn tham gia bằng cách đóng góp thay đổi, báo lỗi, chia sẻ chuyên môn trong các cuộc thảo luận thiết kế, viết blog hay sách, tổ chức sự kiện, tham dự hoặc diễn thuyết tại sự kiện, giúp người khác học hoặc tiến bộ hơn, mã nguồn mở các package Go mà bạn viết, đóng góp tác phẩm nghệ thuật, giới thiệu Go với một ai đó, hay đơn giản là là một phần của cộng đồng Go. Nếu không có bạn, Go đã không thể trở nên hoàn chỉnh, hữu ích và thành công như ngày hôm nay.
Xin cảm ơn, và chúc cho thêm tám năm nữa!
Bài tiếp theo: Tham gia Khảo sát Người dùng Go 2017
Bài trước: Nhóm Công tác Tiếp cận Cộng đồng
Mục lục blog