Trong nỗ lực thay thế C ++ đáng kính nhưng chậm chạp, các nhà nghiên cứu của Google đã giới thiệu một ngôn ngữ lập trình mã nguồn mở “thử nghiệm” hoàn toàn mới có tên là Carbon.
Carbon có thể đóng vai trò như một ngôn ngữ kế thừa cho C ++, một ngôn ngữ cung cấp một điểm khởi đầu đơn giản cho các nhà phát triển đối với một ngôn ngữ mới hơn giải quyết các khái niệm phát triển đương đại như an toàn bộ nhớ và generic.
Điều này sẽ tương tự như cách Microsoft xây dựng Typecript để cập nhật JavaScript và Kotlin nhằm củng cố các điểm yếu trong Java.
Google đã phát triển một số ngôn ngữ lập trình trong suốt nhiều năm, một số ngôn ngữ trong số đó đã đạt được danh tiếng và sự nổi bật đáng kể.
Ví dụ, Golang (hoặc chỉ Go) được phát triển để tạo điều kiện thuận lợi cho việc tạo ra các máy chủ và hệ thống phân tán và sau đó đã được công chúng chấp nhận.
Phi tiêu ngôn ngữ lập trình, vốn được tạo ra để thay thế JavaScript, đã không trở nên nổi tiếng cho đến khi ra mắt Flutter.
Chandler Carruth, một nhân viên của Google, đã trình bày ý tưởng của mình về một ngôn ngữ lập trình mới có tên là Carbon vào ngày 19 tháng 2022 năm XNUMX, tại hội nghị Cpp North ở Toronto, theo Conor Hoekstra, người đã tham dự và ghi lại các slide.
Để thiết lập kịch bản, Carruth đã chứng minh một số ngôn ngữ lập trình phổ biến nhất hiện nay có hậu duệ như thế nào cho phép các nhà phát triển nhanh chóng làm việc hiệu quả và cũng được hưởng lợi từ thiết kế ngôn ngữ hiện đại.
Hãy bắt đầu với phần giới thiệu chung về ngôn ngữ lập trình Carbon, bao gồm các tính năng của nó, mục đích của việc Google phát minh ra nó và hơn thế nữa.
Giới thiệu về ngôn ngữ lập trình Carbon
Vào ngày 19 tháng 2022 năm XNUMX, Google tiết lộ Carbon là ngôn ngữ lập trình mới nhất mà nó đã tạo ra. Nó được thiết kế để thay thế C ++ một cách thực nghiệm.
Cảm ơn hệ thống generic, giúp loại bỏ sự cần thiết phải kiểm tra lại mã cho mỗi lần khởi tạo, Carbon sẽ được xây dựng trên nền tảng của các khái niệm lập trình hiện đại.
Đến cuối năm, thiết kế dự kiến cung cấp một phiên bản vận hành cơ bản (phiên bản 0.1).
Tính toàn vẹn của bộ nhớ là một yếu tố quan trọng mà C ++ còn thiếu. Một trong những nguồn chính của lỗi bảo mật là các vấn đề truy cập bộ nhớ.
Việc phát triển các kiểm tra giới hạn động, theo dõi nhiều hơn các trạng thái chưa được khởi tạo và chế độ xây dựng gỡ lỗi mặc định kỹ lưỡng là tất cả các mục tiêu của nhóm Carbon. Những người sáng tạo dự định tạo một tập hợp con Carbon an toàn theo thời gian.
Tuy nhiên, sau đây là một số đặc điểm quan trọng của ngôn ngữ lập trình mới:
- Để đặt tên cho các loại, hãy sử dụng các biểu thức.
- Thuốc generic mạnh với kiểm tra định nghĩa
- Các loại giao diện thực hiện cụ thể
- cụm từ giới thiệu và ngữ pháp cơ bản
- Con trỏ cho phép truy cập không hạn chế và đột biến.
- Giá trị cho các tham số đầu vào của hàm là chỉ đọc.
- Không gian tên gốc là gói.
- API có thể được nhập bằng cách sử dụng tên gói của chúng.
- Một phương thức được khai báo thông qua một tham số đối tượng rõ ràng.
- Các lớp học là cuối cùng theo mặc định; chỉ có một thừa kế
Đặc điểm của Carbon
Hiện đại và phát triển
- Nâng cấp giữa các phiên bản Carbon rất đơn giản và dựa trên công cụ.
- Nền tảng ngôn ngữ vững chắc, đặc biệt nếu bạn đã sử dụng C ++ và đơn giản để học
- Nền tảng an toàn hơn và cách tiếp cận từng bước đối với tập hợp con an toàn cho bộ nhớ
Chào đón cộng đồng mã nguồn mở
- Một cộng đồng cố gắng trở nên nồng nhiệt, chấp nhận và mời gọi
- Các mục tiêu và ưu tiên của nó là quản trị khác biệt và mạnh mẽ
- Chiến lược tất cả trong một với trình biên dịch, thư viện, tài liệu, công cụ, quản lý gói và hơn thế nữa
Nhanh chóng và tương thích với C ++
- Làm việc cùng với Mã C ++ bạn đã có, bao gồm cả thừa kế và mẫu
- Với LLVM, hiệu suất tương đương với C ++ và quyền truy cập cấp thấp vào các bit và địa chỉ
- Các bản dựng nhanh chóng, có thể mở rộng và tương thích với các hệ thống xây dựng C ++ hiện có của bạn
Tại sao Google lại xây dựng ngôn ngữ lập trình Carbon?
Phần mềm quan trọng về hiệu suất tiếp tục chủ yếu được viết bằng C ++, có cơ sở mã và đầu tư rất lớn và đang mở rộng.
Tuy nhiên, nó đang gặp khó khăn trong việc phát triển và đáp ứng nhu cầu của các nhà phát triển như đã đề cập ở trên, phần lớn là do nợ công nghệ tích lũy trong nhiều năm.
Rất khó để cải thiện từng bước C ++ vì nợ kỹ thuật mà nó đã tích lũy cũng như những khó khăn trong quá trình phát triển của nó.
Cách tiếp cận lý tưởng để giải quyết những vấn đề này là bắt đầu với nền tảng ngôn ngữ vững chắc, chẳng hạn như hệ thống generics đương đại, cấu trúc mã mô-đun và cú pháp nhất quán, đơn giản, thay vì kế thừa trực tiếp truyền thống của C hoặc C ++.
Go, Swift, Kotlin, Rust và nhiều ngôn ngữ đương đại khác đã mang đến trải nghiệm phát triển vượt trội. Các nhà phát triển có khả năng sử dụng một trong những ngôn ngữ hiện tại này phải.
Thật không may, việc áp dụng và di chuyển từ C ++ bị cản trở nghiêm trọng bởi thiết kế của các ngôn ngữ này. Những trở ngại này bao gồm chi phí hiệu suất và các sửa đổi đối với thiết kế thành ngữ của phần mềm.
Carbon không phải là một nỗ lực để cải thiện dần dần C ++; đúng hơn, nó là một chiến lược ngôn ngữ kế thừa. Trọng tâm của nó là khả năng tương tác C ++, cũng như sự chấp nhận và di chuyển rộng rãi cho các nhà phát triển và cơ sở mã hiện đang sử dụng C ++.
Ngôn ngữ thay thế C ++ phải có:
- Hiệu suất tương đương với C ++ là một đặc điểm quan trọng đối với các nhà phát triển.
- Đường cong học tập có thể quản lý và mức độ quen thuộc cho các lập trình viên C ++
- Di chuyển có thể mở rộng và bao gồm một số bản dịch mã C ++ thành ngữ từ nguồn sang nguồn.
- Tính biểu hiện tương tự và hỗ trợ cho kiến trúc và thiết kế của phần mềm hiện tại.
- Khả năng tương tác với C ++ liền mạch và hai chiều, cho phép bất kỳ thư viện nào sử dụng Carbon mà không cần phải chuyển phần còn lại của ngăn xếp.
Với chiến lược này, Google bổ sung vào hệ sinh thái đã tồn tại cho C ++ và kết hợp các khoản đầu tư, cơ sở mã và cộng đồng phát triển hiện tại.
Một số ngôn ngữ đã áp dụng cách tiếp cận này cho các hệ sinh thái khác nhau và Carbon tìm cách đóng một chức năng tương tự như C ++ trong những tình huống sau:
- Java - Kotlin
- JavaScript - TypeScript
- C ++ - Carbon
C ++ VS Mã carbon
Carbon nên có một đường cong học tập thấp nếu bạn đã là một nhà phát triển C ++. Nó bao gồm một tập hợp các cấu trúc ngữ pháp cố định phải nghe có vẻ tự nhiên và dễ đọc và dễ hiểu.
Một ví dụ về mã C ++:
Mã Carbon này tương ứng với:
Carbon so với rỉ sét
Một ngôn ngữ đương đại khác được thiết kế rõ ràng để đáp ứng các yêu cầu của các ứng dụng hiệu suất an toàn với bộ nhớ được gọi là Rust.
Vậy tại sao không chỉ đơn giản là sử dụng Rust?
Trong khi một số người cho rằng Rust, khởi đầu là một dự án của Mozilla và sau đó đã phát triển để có được một lượng lớn công chúng theo dõi, là người kế nhiệm cho C ++, Carruth nghi ngờ liệu bản song song có còn hiệu lực hay không.
Rust chắc chắn là một ngôn ngữ tuyệt vời để bắt đầu một dự án mới, nhưng vì nó thiếu "khả năng tương tác hai chiều" của các ngôn ngữ như Java & Kotlin, nên việc chuyển đổi sang nó dần dần là một thách thức.
Carruth đã có một bài giảng tại CPP North và khuyến khích những người đã và đang sử dụng Rust tiếp tục làm như vậy. Các nhà phát triển đã có cơ sở mã C ++ khá lớn đang thử thách chuyển đổi sang Rust nên sử dụng Carbon.
Cụ thể, Carbon là thứ mà Carruth gọi là “ngôn ngữ kế thừa”, được xây dựng trên nền tảng của một hệ sinh thái hiện có, trong ví dụ này là C ++.
Vì mục đích đó, Carbon có nghĩa là hoàn toàn tương thích với mã C ++ hiện tại, ngay cả khi nó có nhiều mục tiêu với Rust, chẳng hạn như hỗ trợ các lập trình viên tạo “các ứng dụng quan trọng về hiệu suất”.
Ngoài ra, nó nhằm mục đích làm cho việc chuyển từ C ++ sang Carbon đơn giản nhất có thể.
Kết luận
Cuối cùng, những người sáng tạo ngôn ngữ Carbon đã nỗ lực chú ý đến quá trình tạo ra. Mã của dự án có sẵn để yêu cầu và được lưu trữ công khai trên Github, và văn hóa của nó được định nghĩa là bao trùm và cởi mở cho cả công dân tư nhân và khu vực CNTT.
Nhóm Carbon nghĩ rằng Carbon cần phải là một dự án tự trị do cộng đồng thúc đẩy và không chỉ là một dự án do Google thúc đẩy để phát triển trong tương lai.
Caruth nói thêm rằng mặc dù nhận được sự quan tâm từ một số doanh nghiệp CNTT, nhưng khái niệm này vẫn đang trong giai đoạn thử nghiệm.
Bình luận