Katika jitihada za kuchukua nafasi ya C++ inayoheshimika lakini ya uvivu, watafiti wa Google wameanzisha lugha mpya ya programu huria "ya majaribio" inayoitwa Carbon.
Carbon inaweza kutumika kama lugha mbadala kwa C++, ambayo hutoa mahali rahisi pa kuanzia kwa wasanidi programu kwa lugha mpya ambayo inashughulikia dhana za kisasa za ukuzaji kama vile usalama wa kumbukumbu na jenetiki.
Hii itakuwa sawa na jinsi Microsoft ilivyounda Typescript kusasisha JavaScript na Kotlin ili kuimarisha udhaifu katika Java.
Google imeunda idadi ya lugha za programu kwa miaka mingi, ambazo baadhi zimepata sifa mbaya na umaarufu.
Kwa mfano, Golang (au Go) iliundwa ili kuwezesha uundaji wa seva na mifumo iliyosambazwa na imekubaliwa na umma kwa ujumla.
Dart lugha ya programu, ambayo iliundwa kama mbadala wa JavaScript, haikujulikana hadi kuzinduliwa kwa Flutter.
Chandler Carruth, mfanyakazi wa Google, aliwasilisha wazo lake la lugha mpya ya programu inayoitwa Carbon mnamo Julai 19, 2022, kwenye mkutano wa Cpp North huko Toronto, kulingana na Conor Hoekstra, waliohudhuria na kurekodi slaidi.
Ili kuweka hali hiyo, Carruth alionyesha jinsi lugha kadhaa za programu zinazopendwa zaidi siku hizi zilivyokuwa na vizazi vinavyowezesha wasanidi programu kuleta matokeo kwa haraka na pia kufaidika kutokana na muundo wa lugha ya kisasa.
Hebu tuanze na utangulizi wa jumla wa lugha ya programu ya Carbon, ikiwa ni pamoja na vipengele vyake, madhumuni ya uvumbuzi wa Google, na zaidi.
Utangulizi wa Lugha ya Kutayarisha Kaboni
Mnamo Julai 19, 2022, Google ilifichua Carbon kama lugha mpya zaidi ya programu ambayo ilikuwa imeunda. Ilikusudiwa kuchukua nafasi ya C++ kwa majaribio.
Shukrani kwa mfumo wa generic, ambayo huondoa hitaji la kuangalia msimbo mara mbili kwa kila mara moja, Carbon itajengwa kwa msingi wa dhana za kisasa za programu.
Mwishoni mwa mwaka, mpango wa kubuni hutoa toleo la msingi la uendeshaji (toleo la 0.1).
Uadilifu wa kumbukumbu ni kipengele muhimu ambacho C++ inakosa. Moja ya vyanzo vya msingi vya dosari za usalama ni maswala ya ufikiaji wa kumbukumbu.
Ukuzaji wa ukaguzi wa mipaka inayobadilika, ufuatiliaji mkubwa wa hali ambazo hazijaanzishwa, na hali ya kina ya utatuzi chaguo-msingi yote ni malengo ya timu ya Carbon. Watayarishi wanakusudia kuunda kitengo salama cha Kaboni baada ya muda.
Hata hivyo, zifuatazo ni baadhi ya sifa muhimu za lugha mpya ya programu:
- Ili kutaja aina, tumia misemo.
- Jenetiki kali zilizo na ukaguzi wa ufafanuzi
- Aina hubeba miingiliano haswa
- misemo ya utangulizi na sarufi msingi
- Viashiria huruhusu ufikiaji usio na kikomo na mabadiliko.
- Thamani za vigezo vya uingizaji wa chaguo za kukokotoa ni za kusoma tu.
- Nafasi ya jina la msingi ni kifurushi.
- API zinaweza kuingizwa kwa kutumia majina ya vifurushi vyao.
- Njia inatangazwa kupitia kigezo cha kitu wazi.
- Madarasa ni ya mwisho kwa chaguo-msingi; kuna urithi mmoja tu
Vipengele vya Carbon
Kisasa na zinazoendelea
- Maboresho kati ya matoleo ya Carbon ni rahisi na yanategemea zana.
- Misingi thabiti ya lugha, haswa ikiwa umetumia C++, na ni rahisi kujifunza
- Misingi salama na mbinu ya hatua kwa hatua ya kitengo kidogo cha salama cha kumbukumbu
Kukaribisha jumuiya ya chanzo huria
- Jumuiya ambayo inajitahidi kuwa mchangamfu, kukubalika na kukaribisha
- Malengo na vipaumbele vyake ni utawala tofauti na wenye nguvu
- Mkakati wa yote kwa moja na mkusanyaji, maktaba, hati, zana, usimamizi wa kifurushi na zaidi
Haraka na sambamba na C++
- Fanya kazi pamoja na Nambari ya C ++ tayari unayo, ikijumuisha urithi na violezo
- Kwa LLVM, utendakazi unaolinganishwa na C++ na ufikiaji wa kiwango cha chini kwa biti na anwani
- Miundo ambayo ni ya haraka na inayoweza kupanuka na inaoana na mifumo yako iliyopo ya ujenzi ya C++
Kwa nini Google iliunda lugha ya programu ya Carbon?
Programu muhimu ya utendakazi inaendelea kuandikwa zaidi katika C++, ambayo ina misingi mikuu na uwekezaji inayopanuka.
Hata hivyo, inatatizika kuendeleza na kukidhi matakwa ya wasanidi kama ilivyotajwa hapo juu, kwa kiasi kikubwa kutokana na kukusanya deni la kiteknolojia la miaka mingi.
Ni vigumu sana kuboresha C++ kwa kuongezeka kwa sababu ya deni la kiufundi ambalo imekusanya pamoja na ugumu wa mchakato wake wa mageuzi.
Mbinu bora ya kutatua masuala haya ni kuanza na msingi thabiti wa lugha, kama vile mfumo wa kisasa wa jenari, muundo wa kanuni za moduli, na sintaksia thabiti, iliyonyooka, badala ya kurithi moja kwa moja mapokeo ya C au C++.
Go, Swift, Kotlin, Rust, na lugha nyingine nyingi za kisasa tayari zinatoa uzoefu bora wa maendeleo. Wasanidi programu ambao wanaweza kutumia mojawapo ya lugha hizi za sasa wanapaswa kufanya hivyo.
Kwa bahati mbaya, kuasili na kuhama kutoka C++ kunatatizwa pakubwa na miundo ya lugha hizi. Vikwazo hivi ni pamoja na utendaji wa juu na marekebisho ya muundo wa nahau ya programu.
Carbon sio jaribio la kuboresha hatua kwa hatua C ++; badala yake, ni mkakati wa lugha mrithi. Mtazamo wake ni mwingiliano wa C++, pamoja na kukubalika na uhamaji mkubwa kwa wasanidi programu na misingi ya msimbo inayotumia C++ kwa sasa.
Lugha mbadala ya C++ lazima iwe na:
- Utendaji unaolinganishwa na C++ ni sifa muhimu kwa wasanidi programu.
- Mkondo wa kujifunza unaoweza kudhibitiwa na kiwango cha kufahamiana kwa watayarishaji programu wa C++
- Uhamiaji ambao unaweza kuongezeka na unajumuisha tafsiri fulani ya msimbo wa C++ kutoka chanzo hadi chanzo.
- Ufafanuzi sawa na usaidizi wa usanifu na muundo wa programu ya sasa.
- Ushirikiano na C++ usio na mshono na unaoelekeza pande mbili, unaoruhusu maktaba yoyote kutumia Carbon bila kulazimika kubeba rafu iliyosalia.
Kwa mkakati huu, Google huongeza kwa mfumo ikolojia ambao tayari upo kwa C++ na kujumuisha uwekezaji wa sasa, misingi ya kanuni na jumuiya za maendeleo.
Lugha chache zimetumia mbinu hii kwa mifumo mbalimbali ya ikolojia, na Carbon inatafuta kufanya kazi sawa na C++ katika hali hizi:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Kaboni
C++ VS Msimbo wa Carbon
Carbon inapaswa kuwa na mkondo wa chini wa kujifunza ikiwa tayari wewe ni msanidi wa C++. Inaundwa na seti isiyobadilika ya miundo ya kisarufi ambayo inapaswa kusikika asili na kuwa rahisi kusoma na kuelewa.
Mfano wa nambari ya C++:
Msimbo huu wa Carbon unalingana na:
Kaboni Vs Kutu
Lugha nyingine ya kisasa iliyoundwa wazi ili kukidhi mahitaji ya utendakazi salama wa kumbukumbu inaitwa Rust.
Kwa hivyo kwa nini usitumie kutu tu?
Ingawa wengine wanahoji kuwa Rust, ambayo ilianza kama mradi wa Mozilla na imekua na wafuasi wengi wa umma, ni mrithi wa C++, Carruth ana shaka ikiwa ulinganifu bado ni halali.
Rust bila shaka ni lugha nzuri sana ya kuanza nayo mradi mpya, lakini kwa vile haina "ushirikiano wa pande mbili" wa lugha kama vile Java na Kotlin, ni vigumu kuibadilisha hatua kwa hatua.
Carruth alitoa mhadhara katika CPP Kaskazini na kuwahimiza watu ambao tayari walikuwa wakitumia Rust kuendelea kufanya hivyo. Wasanidi programu ambao tayari wana misingi mikuu ya C++ ambayo ni ngumu kugeuza kuwa Rust wanapaswa kutumia Carbon.
Hasa, Carbon ndiyo ambayo Carruth alirejelea kama "lugha mrithi," ambayo imejengwa juu ya mfumo wa ikolojia uliopo, katika mfano huu C++.
Kwa kusudi hilo, Carbon inakusudiwa kuendana kabisa na msimbo wa sasa wa C++, hata ikiwa ina malengo mengi na Rust, kama vile kusaidia waandaaji wa programu kuunda "programu muhimu za utendaji."
Kwa kuongeza, inakusudiwa kufanya kuhama kutoka C++ hadi Carbon iwe rahisi iwezekanavyo.
Hitimisho
Hatimaye, waundaji wa lugha ya Carbon walijitahidi kuzingatia mchakato wa uundaji. Msimbo wa mradi unapatikana kwa ombi na kuhifadhiwa waziwazi Github, na utamaduni wake unafafanuliwa kuwa jumuishi na wazi kwa raia binafsi na sekta ya TEHAMA.
Timu ya Carbon ilifikiri kuwa Carbon ilihitaji kuwa mradi unaojitegemea unaoendeshwa na jumuiya na si mradi unaochochewa na Google tu ili kuendeleza katika siku zijazo.
Caruth aliongeza kuwa licha ya kupendezwa na biashara kadhaa za IT, dhana hii bado iko katika hatua ya majaribio.
Acha Reply