Dina usaha pikeun ngagentos C ++ anu terhormat tapi sluggish, panalungtik Google parantos ngenalkeun basa pamrograman open source "eksperimental" énggal anu disebat Karbon.
Karbon bisa dijadikeun basa panerus C ++, nu nyadiakeun titik awal basajan pikeun pamekar kana basa anyar nu alamat konsép ngembangkeun kontemporer kawas kaamanan memori sareng generics.
Ieu bakal sami sareng kumaha Microsoft ngawangun Typescript pikeun ngapdet JavaScript sareng Kotlin pikeun nguatkeun kalemahan di Java.
Google geus ngembangkeun sababaraha basa program sapanjang taun, sababaraha di antarana geus miboga notoriety signifikan sarta prominence.
Contona, Golang (atawa sakadar Go) dikembangkeun pikeun ngagampangkeun nyiptakeun server sareng sistem anu disebarkeun teras parantos dianut ku masarakat umum.
Si Dart basa program, nu dijieun salaku gaganti JavaScript, teu jadi well-dipikawanoh nepi ka peluncuran Flutter.
Chandler Carruth, karyawan Google, ngébréhkeun idena pikeun basa pamrograman énggal anu disebut Carbon dina 19 Juli 2022, di konvénsi Cpp North di Toronto, nurutkeun Conor Hoekstra, anu hadir tur ngarékam slides.
Pikeun nyetél skénario, Carruth nunjukkeun kumaha sababaraha basa pamrograman anu paling dipikaresep di jaman ayeuna ngagaduhan turunan anu ngamungkinkeun para pamekar gancang-gancang produktif sareng ogé kauntungan tina desain basa kontemporer.
Hayu urang mimitian ku bubuka umum tina basa program Carbon, kaasup fitur-fiturna, tujuan panemuan Google, sareng seueur deui.
Bubuka basa Karbon Programming
Dina 19 Juli 2022, Google ngungkabkeun Carbon salaku basa pamrograman pang anyarna anu diciptakeun. Ieu dimaksudkeun pikeun ngaganti C ++ ékspériméntal.
Atuh ka hiji sistem generik, anu ngaleungitkeun kabutuhan pikeun pariksa dua kali kodeu pikeun unggal instan, Karbon bakal diwangun dina dasar konsép program modern.
Nepi ka tungtun taun, desain ngarencanakeun nyadiakeun versi operasional dasar (versi 0.1).
Integritas mémori mangrupikeun unsur anu penting anu C ++ leungit. Salah sahiji sumber utama cacad kaamanan nyaéta masalah aksés mémori.
Ngembangkeun pamariksaan wates dinamis, nyukcruk langkung ageung nagara-nagara anu teu dipikanyaho, sareng modeu debug standar anu lengkep mangrupikeun tujuan tim Karbon. Panyipta badé nyiptakeun subset Karbon anu aman dina waktosna.
Nanging, ieu mangrupikeun sababaraha ciri penting tina basa pamrograman énggal:
- Pikeun ngaranan jenis, make ekspresi.
- Generik kuat sareng cek definisi
- Jenis husus ngalaksanakeun interfaces
- frasa bubuka jeung tata basa dasar
- Pointer ngamungkinkeun aksés sareng mutasi anu teu terbatas.
- Nilai pikeun parameter input fungsi ngan ukur dibaca.
- Ngaranspasi akar nyaéta pakét.
- API tiasa diimpor nganggo nami pakétna.
- Métode dinyatakeun ngaliwatan parameter obyék eksplisit.
- Kelas anu final sacara standar; ngan aya hiji pusaka
Keunggulan Karbon
Modern jeung ngembang
- Ngaronjatkeun antara versi Karbon saderhana sareng dumasar kana alat.
- Dasar basa anu kuat, khususna upami anjeun parantos nganggo C ++, sareng gampang diajar
- Yayasan anu langkung aman sareng pendekatan léngkah-léngkah pikeun subset anu aman-memori
Ngabagéakeun komunitas open source
- Komunitas anu narékahan pikeun haneut, nampi, sareng ngondang
- Tujuan sareng prioritasna nyaéta pamaréntahan anu béda sareng kuat
- Strategi sadaya-dina-hiji sareng kompiler, perpustakaan, dokuméntasi, alat, manajemén pakét, sareng seueur deui
Gancang sareng cocog sareng C ++
- Gawé bareng jeung C ++ kode anjeun geus boga, kaasup warisan jeung template
- Kalawan LLVM, kinerja comparable mun C ++ sarta aksés-tingkat low mun bit jeung alamat
- Ngawangun anu gancang sareng skalabel sareng cocog sareng sistem ngawangun C ++ anjeun
Naha Google ngawangun basa pamrograman Karbon?
software kinerja-kritis terus lolobana ditulis dina C ++, nu boga codebases gede pisan jeung ngembangna sarta investasi.
Nanging, éta gaduh masalah pikeun maju sareng nyumponan tungtutan para pangembang sapertos anu disebatkeun di luhur, sabagéan ageung disababkeun ku hutang téknologi mangtaun-taun.
Hésé pisan pikeun ningkatkeun C ++ sacara bertahap kusabab hutang téknis anu dikumpulkeun ogé kasusah dina prosés évolusi na.
Pendekatan anu idéal pikeun ngarengsekeun masalah ieu nyaéta mimitian ku dasar basa anu kuat, sapertos sistem generik kontemporer, struktur kode modular, sareng sintaksis anu konsisten sareng lugas, tinimbang ngawariskeun tradisi C atanapi C++ sacara langsung.
Go, Swift, Kotlin, Rust, sareng seueur deui basa kontemporer anu sanés parantos nawiskeun pangalaman pangembangan anu luar biasa. Pamekar anu sanggup ngagunakeun salah sahiji basa ayeuna ieu kedah.
Hanjakal, nyoko jeung migrasi ti C ++ parah hampered ku desain basa ieu. Halangan ieu kalebet overhead kinerja sareng modifikasi kana desain idiomatik parangkat lunak.
Karbon teu usaha pikeun ngaronjatkeun bertahap C ++; rada, éta strategi basa panerusna. Fokusna nyaéta dina interoperabilitas C ++, ogé ditampa sacara umum sareng migrasi pikeun pamekar sareng basis kode anu ayeuna nganggo C ++.
Basa ngagantian C ++ kedah gaduh:
- Performance comparable mun C ++ mangrupakeun ciri krusial pikeun pamekar.
- Kurva diajar anu tiasa diurus sareng tingkat familiarity pikeun programer C ++
- Migrasi anu scalable tur ngawengku sababaraha sumber-to-sumber idiomatic C ++ tarjamahan kode.
- Ekspresi anu sami sareng dukungan pikeun arsitéktur sareng desain parangkat lunak ayeuna.
- Interoperabilitas sareng C ++ anu mulus sareng dua arah, ngamungkinkeun perpustakaan mana waé pikeun ngadopsi Karbon tanpa kedah nga-port sesa tumpukan.
Kalayan strategi ieu, Google nambihan kana ékosistem anu parantos aya pikeun C ++ sareng ngalebetkeun investasi ayeuna, basis kode, sareng komunitas pamekaran.
Sababaraha basa parantos ngadopsi pendekatan ieu pikeun sagala rupa ékosistem, sareng Karbon narékahan pikeun maénkeun fungsi anu sami sareng C++ dina kaayaan ieu:
- Jawa - Kotlin
- JavaScript - TypeScript
- C++ - Karbon
C ++ VS Karbon Code
Karbon kedah gaduh kurva diajar anu rendah upami anjeun parantos pamekar C ++. Ieu diwangun ku susunan tetep tina constructions gramatikal nu halah disada alam tur jadi basajan maca tur kaharti.
Conto kode C++:
Kode Karbon ieu pakait sareng:
Karbon Vs Karat
Basa kontemporer séjén anu dirarancang sacara eksplisit pikeun nyumponan sarat aplikasi kinerja anu aman-memori disebut Rust.
Janten naha henteu nganggo Rust?
Bari sababaraha pamadegan yén Rust, nu dimimitian salaku proyék Mozilla sarta geus salajengna tumuwuh nepi ka boga handap umum sizable, mangrupakeun panerusna C ++, Carruth mamang lamun paralel masih valid.
Rust teu diragukeun mangrupikeun basa anu saé pikeun ngamimitian proyék énggal, tapi kusabab teu aya "interoperabilitas dua arah" tina basa sapertos Java & Kotlin, éta hésé pikeun ngalihkeunana sacara bertahap.
Carruth masihan ceramah di CPP North sareng nyorong jalma-jalma anu parantos nganggo Rust pikeun tetep ngalakukeun kitu. Pamekar anu parantos gaduh kodeu C ++ anu ageung anu nangtang pikeun dirobih kana Rust kedah nganggo Karbon.
Khususna, Karbon mangrupikeun anu disebat Carruth salaku "basa panerusna," anu diwangun dina luhureun ékosistem anu aya, dina conto ieu C++.
Pikeun tujuan éta, Karbon dimaksudkeun pikeun sapinuhna cocog sareng kode C ++ ayeuna, sanaos éta ngagaduhan seueur tujuan sareng Rust, sapertos ngabantosan programer dina nyiptakeun "aplikasi kritis kinerja".
Sajaba ti éta, dimaksudkeun pikeun pindah ti C ++ ka Karbon sasederhana mungkin.
kacindekan
Tungtungna, panyipta basa Carbon narékahan pikeun merhatikeun prosés nyiptakeun. Kodeu proyék sayogi pikeun dipénta sareng disimpen sacara terbuka Github, sareng budayana diartikeun inklusif sareng kabuka pikeun warga swasta sareng séktor IT.
Tim Karbon ngira yén Karbon kedah janten proyék otonom anu didorong ku masarakat sareng sanés ngan ukur proyék anu didorong ku Google pikeun ngembangkeun ka hareup.
Caruth nambihan yén sanaos minat ti sababaraha usaha IT, konsép ieu masih dina tahap ékspérimén.
Leave a Reply