Phần mềm

TẠI SAO NGÔN NGỮ LẬP TRÌNH CỦA GOOGLE ĐÁNG ĐỂ BẠN DÀNH THỜI GIAN

Khi tôi mới biết về Go, ngôn ngữ lập trình rất riêng của Google, tôi đã bị thu hút.

Được thiết kế và phát hành vào năm 2007, Go, còn gọi là Golang, là một trong số các ngôn ngữ mới, Rust Rust, D, Nim, Scala, Clojure, tạo ra tiếng vang từ đầu đến giữa năm 2010: Vào thời điểm đó, các lập trình viên dường như rất muốn rời khỏi hành lý dài dòng của các ngôn ngữ phụ trợ cũ (Java, C ++) cũng như tính không hiệu quả tính toán và loại không an toàn của các ngôn ngữ động được sử dụng trên web (PHP, Ruby, Python). Họ muốn loại an toàn, có nghĩa là họ muốn gõ tĩnh. Và họ muốn tốc độ.

Thật dễ dàng tìm thấy những câu chuyện về các công ty khởi nghiệp, như IronMQ, từ hàng tá máy chủ được sử dụng để lưu trữ Rails đến một cặp đôi có thể được lưu trữ bằng ngôn ngữ như Go. Và như một người, vào thời điểm đó, chìm đắm trong PHP5 và tất cả các vấn đề của nó, tôi đã đếm mình trong đám đông những người quan tâm.

Khi tôi lần đầu tiên bắt gặp Go, trong buổi biểu diễn cũ của tôi với tư cách là CTO tại ActiveCampaign, tôi đã thử viết một số mã trong đó. Và tôi đã không thích nó. Nó cho tôi các vấn đề bất cứ khi nào tôi để lại một biến không sử dụng hoặc nhập một gói không sử dụng. Go đặc biệt nghiêm ngặt về cách gõ của tôi Tôi đã quen với kiểu ép buộc của PHP, nhưng tôi cũng đã quen với C và C ++, cho phép bạn trộn các số nguyên có dấu và không dấu, cũng như trộn các kích thước nguyên (16 bit, 32 bit, 64 -bit).

Đi không có thuốc generic. Trên thực tế, một trong những nhà thiết kế ngôn ngữ chính của nó (Rob Pike) đã khá bình tĩnh về những gì ngôn ngữ thiếu. Như Pike đã nói, đây là một điều tốt và tốt cho bạn. Ngôn ngữ này được thiết kế dành cho các kỹ sư trung bình của người Viking, những người đã làm việc tại Google, nếu bạn có thể gọi họ như vậy. Ở một khía cạnh nào đó, những gì bạn đọc về Go tại thời điểm đó cảm thấy như một sự thất vọng. Và cho đến ngày nay, không khó để tìm thấy những người tiếp tục chia sẻ những lời chỉ trích đó.

Vậy điều gì đã thay đổi suy nghĩ của tôi?

Đi thật đơn giản. Nó đứng ngoài các ngôn ngữ khác trong vấn đề đó. Đơn giản là một đức tính, và bất kỳ sự phức tạp nào mà người ta giới thiệu cho ngôn ngữ đều được xem xét cẩn thận.

Trong một thời gian dài, quá lâu, nếu bạn hỏi một số người thì Go thiếu bất kỳ quản lý gói thực sự nào. Đó chỉ là vào năm 2018, sau khi nhiều vòng tham gia của cộng đồng và một người quản lý gói thử nghiệm không chính thức có tên gọi là dep dep Depthththat, bất kỳ hỗ trợ chính thức nào cho giải pháp của họ (mô-đun mô-đun) đã được thêm vào ngôn ngữ.

Nhưng trong sự đơn giản đó, bạn tìm thấy rất nhiều giá trị. Bạn có thể dễ dàng viết một số lớp lót trong Ruby để tạo ra những thứ hay ho, nhưng ẩn trong những lớp lót đó là rất nhiều điều kỳ diệu: Thật khó để nhà phát triển vô duyên luôn nắm bắt được quy trình diễn ra sau hậu trường. Có thể phải mất năm dòng mã để viết cùng một thứ trong Go, nhưng bạn biết năm dòng đó đang làm gì.

Go cũng lấy đi một trong những khái niệm cổ điển trong OOP: thừa kế. Bạn không thể viết một lớp cơ sở trong Go và có một lớp kế thừa từ nó. Trên thực tế, bạn hoàn toàn không có lớp học.

Lúc đầu, nó cảm thấy như một sự ràng buộc to lớn khi có một trong những công cụ cơ bản của việc tái sử dụng và đóng gói mã được lấy từ bạn. Và đó là điều tự nhiên khi thiên hướng đầu tiên của bạn là một cảm giác bực bội.

Nhưng, những ngày này, bạn thường không sử dụng thừa kế, ngay cả khi bạn có thể. Bạn sử dụng các giao diện, bạn tập trung vào hành vi và trừu tượng hóa và điều này bạn có thể dễ dàng thực hiện trong Go. Trên thực tế, đó là tất cả những gì bạn có thể làm trong Go. Sau một thời gian, việc thiếu quyền thừa kế cảm thấy tốt vì bạn đang tránh được một lớp nợ kỹ thuật bằng cách không phải xem lại tổ ấm nguy hiểm của các mối quan hệ mà bạn đã xây dựng bằng cách sử dụng thừa kế. Có lẽ Pike đã vào một cái gì đó sau tất cả.

Hôm nay, Go đã khắc ra một vị trí xác định trong tầng sinh thái ngôn ngữ. Đó không phải là cố gắng thay thế C ++, như đã từng nghĩ (và được đề xuất). Mặc dù bạn có thể nghĩ rằng bạn cần Java cho một dự án nhất định 10 năm trước, nhưng những ngày này, bạn có thể nên tiếp cận với Go.

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button