Dalam usaha untuk menggantikan C++ yang dihormati tetapi lembap, penyelidik Google telah memperkenalkan bahasa pengaturcaraan sumber terbuka "eksperimen" baharu yang digelar Carbon.
Karbon boleh berfungsi sebagai bahasa pengganti kepada C++, yang menyediakan titik permulaan yang mudah untuk pembangun kepada bahasa yang lebih baharu yang menangani konsep pembangunan kontemporari seperti keselamatan memori dan generik.
Ini akan serupa dengan cara Microsoft membina Typescript untuk mengemas kini JavaScript dan Kotlin untuk mengukuhkan kelemahan dalam Java.
Google telah membangunkan beberapa bahasa pengaturcaraan sepanjang tahun, beberapa daripadanya telah mendapat kemasyhuran dan penonjolan yang ketara.
Sebagai contoh, Golang (atau hanya Go) telah dibangunkan untuk memudahkan penciptaan pelayan dan sistem pengedaran dan kemudiannya telah diterima oleh orang awam.
Anak panah bahasa pengaturcaraan, yang dicipta sebagai pengganti JavaScript, tidak menjadi terkenal sehingga pelancaran Flutter.
Chandler Carruth, pekerja Google, membentangkan ideanya untuk bahasa pengaturcaraan baharu yang dipanggil Carbon pada 19 Julai 2022, di konvensyen Cpp North di Toronto, menurut Conor Hoekstra, yang menghadiri dan merakam slaid.
Untuk menetapkan senario, Carruth menunjukkan bagaimana beberapa bahasa pengaturcaraan yang paling disukai pada masa kini mempunyai keturunan yang membolehkan pembangun menjadi produktif dengan pantas dan juga mendapat manfaat daripada reka bentuk bahasa kontemporari.
Mari kita mulakan dengan pengenalan umum bahasa pengaturcaraan Carbon, termasuk ciri-cirinya, tujuan penciptaan Google dan banyak lagi.
Pengenalan kepada bahasa Pengaturcaraan Karbon
Pada 19 Julai 2022, Google mendedahkan Carbon sebagai bahasa pengaturcaraan terbaharu yang telah diciptanya. Ia bertujuan untuk menggantikan C++ secara eksperimen.
Terima kasih kepada a sistem generik, yang menghapuskan keperluan untuk menyemak semula kod untuk setiap instantiasi, Karbon akan dibina di atas asas konsep pengaturcaraan moden.
Menjelang akhir tahun, reka bentuk merancang untuk menyediakan versi operasi asas (versi 0.1).
Integriti memori ialah elemen penting yang C++ tiada. Salah satu sumber utama kelemahan keselamatan ialah isu akses memori.
Pembangunan semakan sempadan dinamik, penjejakan yang lebih besar bagi keadaan tidak dimulakan, dan mod binaan nyahpepijat lalai yang menyeluruh adalah semua matlamat pasukan Carbon. Pencipta berhasrat untuk mencipta subset Karbon yang selamat dari semasa ke semasa.
Walau bagaimanapun, berikut adalah beberapa ciri penting bahasa pengaturcaraan baharu:
- Untuk menamakan jenis, gunakan ungkapan.
- Generik yang kuat dengan semakan definisi
- Jenis secara khusus menjalankan antara muka
- frasa pengenalan dan tatabahasa asas
- Penunjuk membenarkan akses dan mutasi tanpa had.
- Nilai untuk parameter input fungsi adalah baca sahaja.
- Ruang nama akar ialah pakej.
- API boleh diimport menggunakan nama pakejnya.
- Kaedah diisytiharkan melalui parameter objek eksplisit.
- Kelas adalah muktamad secara lalai; hanya ada satu harta pusaka
Ciri-ciri Karbon
Moden dan membangun
- Peningkatan antara versi Carbon adalah mudah dan berasaskan alat.
- Asas bahasa yang kukuh, terutamanya jika anda telah menggunakan C++ dan mudah dipelajari
- Asas yang lebih selamat dan pendekatan langkah demi langkah kepada subset yang selamat memori
Mengalu-alukan komuniti sumber terbuka
- Komuniti yang berusaha untuk menjadi mesra, menerima dan mengundang
- Matlamat dan keutamaannya adalah tadbir urus yang jelas dan kukuh
- Strategi semua-dalam-satu dengan pengkompil, perpustakaan, dokumentasi, alatan, pengurusan pakej dan banyak lagi
Pantas dan serasi dengan C++
- Bekerja bersama-sama dengan Kod C ++ anda sudah ada, termasuk warisan dan templat
- Dengan LLVM, prestasi setanding dengan C++ dan akses peringkat rendah kepada bit dan alamat
- Binaan yang pantas dan berskala serta serasi dengan sistem binaan C++ sedia ada anda
Mengapakah Google membina bahasa pengaturcaraan Carbon?
Perisian kritikal prestasi terus kebanyakannya ditulis dalam C++, yang mempunyai pangkalan kod dan pelaburan yang besar dan berkembang.
Walau bagaimanapun, ia menghadapi masalah untuk memajukan dan memenuhi permintaan pemaju seperti yang dinyatakan di atas, sebahagian besarnya disebabkan oleh hutang teknologi yang mengumpul selama bertahun-tahun.
Amat sukar untuk menambah baik C++ secara berperingkat kerana hutang teknikal yang telah terakru serta kesukaran dengan proses evolusinya.
Pendekatan yang ideal untuk menyelesaikan isu ini ialah bermula dengan asas bahasa yang kukuh, seperti sistem generik kontemporari, struktur kod modular dan sintaks yang konsisten dan mudah, dan bukannya mewarisi tradisi C atau C++ secara langsung.
Go, Swift, Kotlin, Rust dan banyak lagi bahasa kontemporari yang lain sudah menawarkan pengalaman pembangunan yang luar biasa. Pembangun yang mampu menggunakan salah satu daripada bahasa semasa ini sepatutnya.
Malangnya, penerimaan dan penghijrahan daripada C++ sangat terhalang oleh reka bentuk bahasa ini. Halangan ini termasuk overhed prestasi dan pengubahsuaian kepada reka bentuk idiomatik perisian.
Karbon bukanlah percubaan untuk meningkatkan C++ secara beransur-ansur; sebaliknya, ia adalah strategi bahasa pengganti. Fokusnya adalah pada kebolehoperasian C++, serta penerimaan dan penghijrahan yang meluas untuk pembangun dan pangkalan kod yang sedang menggunakan C++.
Bahasa gantian C++ mesti mempunyai:
- Prestasi yang setanding dengan C++ adalah ciri penting untuk pembangun.
- Keluk pembelajaran terurus dan tahap kebiasaan untuk pengaturcara C++
- Migrasi yang boleh berskala dan termasuk beberapa terjemahan kod C++ idiomatik sumber-ke-sumber.
- Ekspresi dan sokongan yang serupa untuk seni bina dan reka bentuk perisian semasa.
- Saling kendali dengan C++ yang lancar dan dwiarah, membenarkan mana-mana perpustakaan menggunakan Karbon tanpa perlu mengalihkan timbunan yang lain.
Dengan strategi ini, Google menambah ekosistem yang sudah wujud untuk C++ dan menggabungkan pelaburan semasa, pangkalan kod dan komuniti pembangunan.
Beberapa bahasa telah menerima pakai pendekatan ini untuk pelbagai ekosistem, dan Carbon berusaha untuk memainkan fungsi yang serupa dengan C++ dalam situasi ini:
- Jawa – Kotlin
- JavaScript – TypeScript
- C++ – Karbon
C++ VS Kod Karbon
Karbon sepatutnya mempunyai keluk pembelajaran yang rendah jika anda sudah pun menjadi pembangun C++. Ia terdiri daripada satu set tetap binaan tatabahasa yang sepatutnya kedengaran semula jadi dan mudah dibaca dan difahami.
Contoh kod C++:
Kod Karbon ini sepadan dengan:
Karbon Vs Karat
Satu lagi bahasa kontemporari yang direka secara nyata untuk memenuhi keperluan aplikasi prestasi selamat memori dipanggil Rust.
Jadi mengapa tidak hanya menggunakan Rust?
Walaupun ada yang berhujah bahawa Rust, yang bermula sebagai projek Mozilla dan kemudiannya telah berkembang menjadi mempunyai pengikut awam yang besar, adalah pengganti C++, Carruth meragui jika selari itu masih sah.
Rust sudah pasti bahasa yang hebat untuk memulakan projek baharu, tetapi kerana ia tidak mempunyai "saling kendali dua hala" bahasa seperti Java & Kotlin, ia mencabar untuk beralih kepadanya secara beransur-ansur.
Carruth memberi syarahan di CPP North dan menggalakkan orang yang sudah menggunakan Rust untuk terus berbuat demikian. Pembangun yang sudah mempunyai pangkalan kod C++ yang besar yang mencabar untuk menukar kepada Rust harus menggunakan Carbon.
Khususnya, Karbon ialah apa yang Carruth rujuk sebagai "bahasa pengganti," yang dibina di atas ekosistem sedia ada, dalam contoh ini C++.
Untuk tujuan itu, Karbon dimaksudkan untuk serasi sepenuhnya dengan kod C++ semasa, walaupun ia mempunyai banyak objektif dengan Rust, seperti membantu pengaturcara dalam mencipta "aplikasi kritikal prestasi."
Di samping itu, ia bertujuan untuk membuat peralihan dari C++ ke Karbon semudah mungkin.
Kesimpulan
Akhirnya, pencipta bahasa Carbon berusaha untuk memberi perhatian kepada proses penciptaan. Kod projek tersedia untuk permintaan dan disimpan secara terbuka pada Github, dan budayanya ditakrifkan sebagai inklusif dan terbuka kepada kedua-dua warganegara swasta dan sektor IT.
Pasukan Carbon berpendapat bahawa Carbon perlu menjadi projek autonomi yang didorong oleh komuniti dan bukan sahaja projek yang didorong oleh Google untuk membangunkan pada masa hadapan.
Caruth menambah bahawa walaupun minat daripada beberapa perniagaan IT, konsep ini masih dalam peringkat percubaan.
Sila tinggalkan balasan anda