ໃນຄວາມພະຍາຍາມເພື່ອທົດແທນ C++ ທີ່ມີຄວາມເຄົາລົບແຕ່ຊ້າ, ນັກຄົ້ນຄວ້າ Google ໄດ້ນໍາສະເຫນີ "ການທົດລອງ" ພາສາການຂຽນໂປລແກລມແຫຼ່ງເປີດໃຫມ່ທີ່ມີຊື່ວ່າ Carbon.
ຄາບອນສາມາດເປັນພາສາສືບທອດຂອງ C ++, ເຊິ່ງສະຫນອງຈຸດເລີ່ມຕົ້ນທີ່ງ່າຍດາຍສໍາລັບນັກພັດທະນາກັບພາສາໃຫມ່ທີ່ເວົ້າເຖິງແນວຄວາມຄິດການພັດທະນາທີ່ທັນສະໄຫມເຊັ່ນ: ຄວາມປອດໄພຂອງຫນ່ວຍຄວາມຈໍາແລະ generics.
ນີ້ຈະຄ້າຍຄືກັບວິທີທີ່ Microsoft ສ້າງ Typescript ເພື່ອປັບປຸງ JavaScript ແລະ Kotlin ເພື່ອສ້າງຄວາມເຂັ້ມແຂງຈຸດອ່ອນໃນ Java.
Google ໄດ້ພັດທະນາພາສາການຂຽນໂປລແກລມຈໍານວນຫນຶ່ງຕະຫຼອດປີ, ບາງພາສາໄດ້ຮັບຊື່ສຽງແລະຄວາມໂດດເດັ່ນ.
ສໍາລັບຕົວຢ່າງ, Golang (ຫຼືພຽງແຕ່ Go) ໄດ້ຖືກພັດທະນາເພື່ອຄວາມສະດວກໃນການສ້າງເຄື່ອງແມ່ຂ່າຍແລະລະບົບການແຈກຢາຍແລະຕໍ່ມາໄດ້ຮັບການຍອມຮັບໂດຍປະຊາຊົນທົ່ວໄປ.
Dart ໄດ້ ພາສາໂປລແກລມ, ເຊິ່ງຖືກສ້າງຂື້ນເປັນການທົດແທນ JavaScript, ບໍ່ໄດ້ເປັນທີ່ຮູ້ຈັກຈົນກ່ວາການເປີດຕົວຂອງ Flutter.
Chandler Carruth, ພະນັກງານຂອງ Google, ໄດ້ສະເຫນີແນວຄວາມຄິດຂອງລາວສໍາລັບພາສາການຂຽນໂປຼແກຼມໃຫມ່ທີ່ເອີ້ນວ່າ Carbon ໃນວັນທີ 19 ກໍລະກົດ 2022, ທີ່ກອງປະຊຸມ Cpp North ໃນ Toronto, ອີງຕາມ Conor Hoekstra, ຜູ້ທີ່ເຂົ້າຮ່ວມແລະບັນທຶກ slides ໄດ້.
ເພື່ອກໍານົດສະຖານະການ, Carruth ສະແດງໃຫ້ເຫັນວິທີການຈໍານວນຫນຶ່ງຂອງພາສາການຂຽນໂປລແກລມທີ່ມັກທີ່ສຸດໃນຍຸກປະຈຸບັນມີລູກຫລານທີ່ເຮັດໃຫ້ນັກພັດທະນາສາມາດຜະລິດໄດ້ຢ່າງໄວວາແລະຍັງໄດ້ຮັບຜົນປະໂຫຍດຈາກການອອກແບບພາສາທີ່ທັນສະໄຫມ.
ໃຫ້ເລີ່ມຕົ້ນດ້ວຍການແນະນໍາທົ່ວໄປຂອງພາສາການຂຽນໂປລແກລມຄາບອນ, ລວມທັງຄຸນສົມບັດຂອງມັນ, ຈຸດປະສົງຂອງການປະດິດສ້າງຂອງ Google ແລະອື່ນໆອີກ.
ແນະນຳກ່ຽວກັບພາສາການຂຽນໂປຣແກຣມຄາບອນ
ໃນວັນທີ 19 ເດືອນກໍລະກົດ, 2022, Google ໄດ້ເປີດເຜີຍ Carbon ເປັນພາສາການຂຽນໂປລແກລມໃຫມ່ທີ່ສຸດທີ່ມັນໄດ້ສ້າງ. ມັນມີຈຸດປະສົງເພື່ອທົດແທນ C ++ ໃນການທົດລອງ.
ຂອບໃຈ a ລະບົບທົ່ວໄປ, ເຊິ່ງລົບລ້າງຄວາມຕ້ອງການທີ່ຈະກວດສອບລະຫັດສອງຄັ້ງສໍາລັບແຕ່ລະ instantiation, Carbon ຈະຖືກສ້າງຂື້ນບົນພື້ນຖານຂອງແນວຄວາມຄິດການຂຽນໂປຼແກຼມທີ່ທັນສະໄຫມ.
ໃນຕອນທ້າຍຂອງປີ, ການອອກແບບວາງແຜນທີ່ຈະສະຫນອງການສະບັບປະຕິບັດການພື້ນຖານ (ສະບັບ 0.1).
ຄວາມສົມບູນຂອງຫນ່ວຍຄວາມຈໍາແມ່ນອົງປະກອບທີ່ສໍາຄັນທີ່ C ++ ຫາຍໄປ. ຫນຶ່ງໃນແຫຼ່ງຕົ້ນຕໍຂອງຂໍ້ບົກພ່ອງດ້ານຄວາມປອດໄພແມ່ນບັນຫາການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ.
ການພັດທະນາການກວດສອບເຂດແດນແບບເຄື່ອນໄຫວ, ການຕິດຕາມສະຖານະທີ່ຍັງບໍ່ທັນໄດ້ພັດທະນາຫຼາຍຂຶ້ນ, ແລະຮູບແບບການສ້າງການດີບັ໊ກໃນຕອນຕົ້ນຢ່າງລະອຽດແມ່ນເປົ້າໝາຍທັງໝົດຂອງທີມ Carbon. ຜູ້ສ້າງຕັ້ງໃຈສ້າງຊຸດຍ່ອຍຄາບອນທີ່ປອດໄພໃນໄລຍະເວລາ.
ຢ່າງໃດກໍຕາມ, ຕໍ່ໄປນີ້ແມ່ນບາງລັກສະນະທີ່ສໍາຄັນຂອງພາສາການຂຽນໂປລແກລມໃຫມ່:
- ເພື່ອຕັ້ງຊື່ປະເພດ, ໃຊ້ການສະແດງອອກ.
- generics ທີ່ເຂັ້ມແຂງທີ່ມີການກວດສອບຄໍານິຍາມ
- ປະເພດໂດຍສະເພາະປະຕິບັດການໂຕ້ຕອບ
- ປະໂຫຍກແນະນຳ ແລະໄວຍະກອນພື້ນຖານ
- ຕົວຊີ້ອະນຸຍາດໃຫ້ເຂົ້າເຖິງແບບບໍ່ຈຳກັດ ແລະການປ່ຽນແປງ.
- ຄ່າສໍາລັບພາລາມິເຕີການປ້ອນຂໍ້ມູນຟັງຊັນແມ່ນອ່ານເທົ່ານັ້ນ.
- ຮາກ namespace ແມ່ນຊຸດ.
- APIs ສາມາດຖືກນໍາເຂົ້າໂດຍໃຊ້ຊື່ແພັກເກັດຂອງພວກເຂົາ.
- ວິທີການຖືກປະກາດຜ່ານຕົວກໍານົດວັດຖຸທີ່ຊັດເຈນ.
- ຫ້ອງຮຽນແມ່ນສຸດທ້າຍໂດຍຄ່າເລີ່ມຕົ້ນ; ມີພຽງແຕ່ຫນຶ່ງມໍລະດົກ
ຄຸນສົມບັດຂອງຄາບອນ
ທັນສະໄຫມແລະການພັດທະນາ
- ການຍົກລະດັບລະຫວ່າງລຸ້ນ Carbon ແມ່ນງ່າຍດາຍແລະອີງໃສ່ເຄື່ອງມື.
- ພື້ນຖານພາສາທີ່ເຂັ້ມແຂງ, ໂດຍສະເພາະຖ້າທ່ານໄດ້ໃຊ້ C++, ແລະງ່າຍດາຍທີ່ຈະຮຽນຮູ້
- ພື້ນຖານທີ່ປອດໄພກວ່າ ແລະວິທີການແບບເທື່ອລະຂັ້ນຕອນຕໍ່ກັບຊຸດຍ່ອຍທີ່ປອດໄພກັບຄວາມຈຳ
ຍິນດີຕ້ອນຮັບຊຸມຊົນຂອງແຫຼ່ງເປີດ
- ຊຸມຊົນທີ່ພະຍາຍາມສ້າງຄວາມອົບອຸ່ນ, ຍອມຮັບ, ແລະການເຊື້ອເຊີນ
- ເປົ້າໝາຍ ແລະ ບຸລິມະສິດຂອງມັນແມ່ນຄວາມແຕກຕ່າງກັນ ແລະ ມີການປົກຄອງທີ່ເຂັ້ມແຂງ
- ຍຸດທະສາດອັນດຽວກັບຜູ້ລວບລວມຂໍ້ມູນ, ຫ້ອງສະຫມຸດ, ເອກະສານ, ເຄື່ອງມື, ການຄຸ້ມຄອງຊຸດ, ແລະອື່ນໆ
ໄວແລະເຂົ້າກັນໄດ້ກັບ C ++
- ເຮັດວຽກຮ່ວມກັບ ລະຫັດ C ++ ທ່ານມີແລ້ວ, ລວມທັງມໍລະດົກແລະແມ່ແບບ
- ດ້ວຍ LLVM, ປະສິດທິພາບທຽບກັບ C ++ ແລະການເຂົ້າເຖິງ bits ແລະທີ່ຢູ່ລະດັບຕ່ໍາ
- ການກໍ່ສ້າງທີ່ໄວ ແລະສາມາດຂະຫຍາຍໄດ້ ແລະເຂົ້າກັນໄດ້ກັບລະບົບການສ້າງ C++ ທີ່ມີຢູ່ແລ້ວຂອງເຈົ້າ
ເປັນຫຍັງ Google ຈຶ່ງສ້າງພາສາການຂຽນໂປຼແກຼມ Carbon?
ຊອບແວປະສິດທິພາບທີ່ສໍາຄັນຍັງສືບຕໍ່ຖືກຂຽນໄວ້ໃນ C ++, ເຊິ່ງມີລະຫັດແລະການລົງທຶນຂະຫນາດໃຫຍ່ແລະການຂະຫຍາຍຕົວ.
ຢ່າງໃດກໍ່ຕາມ, ມັນມີບັນຫາໃນການກ້າວຫນ້າແລະຕອບສະຫນອງຄວາມຕ້ອງການຂອງນັກພັດທະນາທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, ສ່ວນໃຫຍ່ແມ່ນຍ້ອນຫນີ້ສິນເຕັກໂນໂລຢີທີ່ມີມູນຄ່າຫລາຍປີ.
ມັນເປັນການຍາກຫຼາຍທີ່ຈະເພີ່ມຂຶ້ນໃນການປັບປຸງ C ++ ເນື່ອງຈາກຫນີ້ສິນດ້ານວິຊາການທີ່ມັນເພີ່ມຂຶ້ນເຊັ່ນດຽວກັນກັບຄວາມຫຍຸ້ງຍາກໃນຂະບວນການວິວັດທະນາຂອງມັນ.
ວິທີການທີ່ເຫມາະສົມສໍາລັບການແກ້ໄຂບັນຫາເຫຼົ່ານີ້ແມ່ນເລີ່ມຕົ້ນດ້ວຍພື້ນຖານພາສາທີ່ເຂັ້ມແຂງ, ເຊັ່ນ: ລະບົບທົ່ວໄປທີ່ທັນສະໄຫມ, ໂຄງສ້າງລະຫັດ modular, ແລະສອດຄ່ອງ, syntax ກົງໄປກົງມາ, ແທນທີ່ຈະເປັນມໍລະດົກໂດຍກົງຂອງ C ຫຼື C ++.
Go, Swift, Kotlin, Rust, ແລະອີກຫຼາຍພາສາໃນຍຸກສະໄໝໃໝ່ໄດ້ສະເໜີປະສົບການການພັດທະນາທີ່ໂດດເດັ່ນ. ນັກພັດທະນາທີ່ມີຄວາມສາມາດໃຊ້ຫນຶ່ງໃນພາສາປະຈຸບັນນີ້ຄວນຈະ.
ແຕ່ຫນ້າເສຍດາຍ, ການຮັບຮອງເອົາແລະການເຄື່ອນຍ້າຍຈາກ C ++ ແມ່ນຂັດຂວາງຢ່າງຫນັກແຫນ້ນໂດຍການອອກແບບຂອງພາສາເຫຼົ່ານີ້. ອຸປະສັກເຫຼົ່ານີ້ລວມເຖິງການປະຕິບັດດ້ານເທິງແລະການດັດແກ້ກັບການອອກແບບ idiomatic ຂອງຊອບແວ.
ຄາບອນບໍ່ແມ່ນຄວາມພະຍາຍາມທີ່ຈະຄ່ອຍໆປັບປຸງ C ++; ແທນທີ່ຈະ, ມັນເປັນຍຸດທະສາດພາສາທີ່ສືບທອດ. ຈຸດສຸມຂອງມັນແມ່ນຢູ່ໃນການເຮັດວຽກຮ່ວມກັນຂອງ C ++, ເຊັ່ນດຽວກັນກັບການຍອມຮັບແລະການເຄື່ອນຍ້າຍຢ່າງກວ້າງຂວາງສໍາລັບນັກພັດທະນາແລະ codebases ທີ່ໃຊ້ C ++.
ພາສາທົດແທນ C++ ຕ້ອງມີ:
- ປະສິດທິພາບທຽບກັບ C ++ ແມ່ນລັກສະນະທີ່ສໍາຄັນສໍາລັບນັກພັດທະນາ.
- ເສັ້ນໂຄ້ງການຮຽນຮູ້ທີ່ສາມາດຈັດການໄດ້ ແລະລະດັບຄວາມຄຸ້ນເຄີຍສຳລັບນັກຂຽນໂປຣແກຣມ C++
- ການຍ້າຍຖິ່ນຖານທີ່ສາມາດຂະຫຍາຍໄດ້ ແລະປະກອບມີບາງການແປລະຫັດ C++ idiomatic ຈາກແຫຼ່ງຫາແຫຼ່ງ.
- ການສະແດງອອກທີ່ຄ້າຍຄືກັນແລະສະຫນັບສະຫນູນສະຖາປັດຕະຍະກໍາແລະການອອກແບບຂອງຊອບແວໃນປະຈຸບັນ.
- ການເຮັດວຽກຮ່ວມກັນກັບ C ++ ທີ່ບໍ່ລຽບງ່າຍແລະເປັນສອງທິດທາງ, ອະນຸຍາດໃຫ້ຫ້ອງສະຫມຸດໃດໆທີ່ຈະຮັບຮອງເອົາ Carbon ໂດຍບໍ່ມີການພອດສ່ວນທີ່ເຫຼືອຂອງ stack.
ດ້ວຍກົນລະຍຸດນີ້, Google ເພີ່ມລະບົບນິເວດທີ່ມີຢູ່ແລ້ວສໍາລັບ C ++ ແລະລວມເອົາການລົງທຶນໃນປະຈຸບັນ, ຖານຂໍ້ມູນແລະຊຸມຊົນພັດທະນາ.
ສອງສາມພາສາໄດ້ຮັບຮອງເອົາວິທີການນີ້ສໍາລັບລະບົບນິເວດຕ່າງໆ, ແລະ Carbon ຊອກຫາຫນ້າທີ່ຄ້າຍຄືກັນກັບ C ++ ໃນສະຖານະການເຫຼົ່ານີ້:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – ຄາບອນ
C++ VS ລະຫັດຄາບອນ
ຄາບອນຄວນມີເສັ້ນໂຄ້ງການຮຽນຮູ້ຕໍ່າຖ້າທ່ານເປັນນັກພັດທະນາ C ++ ແລ້ວ. ມັນປະກອບດ້ວຍຊຸດຂອງໂຄງສ້າງທາງໄວຍະກອນທີ່ຄົງທີ່ຄວນມີສຽງທໍາມະຊາດແລະງ່າຍດາຍທີ່ຈະອ່ານແລະເຂົ້າໃຈ.
ຕົວຢ່າງຂອງລະຫັດ C++:
ລະຫັດ Carbon ນີ້ກົງກັບ:
ຄາບອນ Vs Rust
ພາສາຮ່ວມສະໄໝອີກອັນໜຶ່ງທີ່ຖືກອອກແບບຢ່າງຈະແຈ້ງເພື່ອຕອບສະໜອງໄດ້ຄວາມຕ້ອງການຂອງແອັບພລິເຄຊັນປະສິດທິພາບຄວາມຈຳທີ່ປອດໄພເອີ້ນວ່າ Rust.
ດັ່ງນັ້ນເປັນຫຍັງຈຶ່ງບໍ່ພຽງແຕ່ໃຊ້ Rust?
ໃນຂະນະທີ່ບາງຄົນໂຕ້ຖຽງວ່າ Rust, ເຊິ່ງໄດ້ເລີ່ມຕົ້ນເປັນໂຄງການ Mozilla ແລະໄດ້ເຕີບໃຫຍ່ຕໍ່ມາເພື່ອໃຫ້ມີການຕິດຕາມສາທາລະນະຢ່າງຫຼວງຫຼາຍ, ເປັນຜູ້ສືບທອດ C ++, Carruth ສົງໃສວ່າຖ້າຂະຫນານຍັງຖືກຕ້ອງ.
Rust ແມ່ນບໍ່ຕ້ອງສົງໃສເປັນພາສາທີ່ດີເລີດທີ່ຈະເລີ່ມຕົ້ນໂຄງການໃຫມ່, ແຕ່ຍ້ອນວ່າມັນຂາດ "ການເຮັດວຽກຮ່ວມກັນແບບສອງທິດທາງ" ຂອງພາສາເຊັ່ນ Java & Kotlin, ມັນທ້າທາຍທີ່ຈະຫັນປ່ຽນໄປສູ່ມັນເທື່ອລະກ້າວ.
Carruth ໄດ້ໃຫ້ຄໍາບັນຍາຍຢູ່ທີ່ CPP North ແລະຊຸກຍູ້ໃຫ້ຜູ້ທີ່ກໍາລັງໃຊ້ Rust ສືບຕໍ່ເຮັດເຊັ່ນນັ້ນ. ນັກພັດທະນາທີ່ມີລະຫັດ C++ ຂະໜາດໃຫຍ່ແລ້ວທີ່ທ້າທາຍໃນການປ່ຽນເປັນ Rust ຄວນໃຊ້ Carbon.
ໂດຍສະເພາະ, ຄາບອນແມ່ນສິ່ງທີ່ Carruth ເອີ້ນວ່າ "ພາສາສືບທອດ", ເຊິ່ງກໍ່ສ້າງຢູ່ເທິງລະບົບນິເວດທີ່ມີຢູ່ແລ້ວ, ໃນຕົວຢ່າງນີ້ C ++.
ສໍາລັບຈຸດປະສົງນັ້ນ, Carbon ແມ່ນຫມາຍຄວາມວ່າຈະເຂົ້າກັນໄດ້ຢ່າງສົມບູນກັບລະຫັດ C ++ ໃນປະຈຸບັນ, ເຖິງແມ່ນວ່າມັນມີຈຸດປະສົງຫຼາຍຢ່າງກັບ Rust, ເຊັ່ນ: ການຊ່ວຍເຫຼືອນັກຂຽນໂປລແກລມໃນການສ້າງ "ຄໍາຮ້ອງສະຫມັກທີ່ສໍາຄັນ."
ນອກຈາກນັ້ນ, ມັນມີຈຸດປະສົງເພື່ອເຮັດໃຫ້ການເຄື່ອນຍ້າຍຈາກ C ++ ກັບ Carbon ງ່າຍດາຍເທົ່າທີ່ເປັນໄປໄດ້.
ສະຫຼຸບ
ສຸດທ້າຍ, ຜູ້ສ້າງພາສາຄາບອນໄດ້ພະຍາຍາມເອົາໃຈໃສ່ກັບຂະບວນການສ້າງ. ລະຫັດຂອງໂຄງການແມ່ນມີໃຫ້ສໍາລັບການຮ້ອງຂໍແລະເກັບຮັກສາໄວ້ຢ່າງເປີດເຜີຍ GitHub, ແລະວັດທະນະທໍາຂອງມັນຖືກກໍານົດວ່າເປັນການລວມແລະເປີດໃຫ້ທັງພົນລະເມືອງເອກະຊົນແລະຂະແຫນງ IT.
ທີມງານ Carbon ຄິດວ່າ Carbon ຈໍາເປັນຕ້ອງເປັນໂຄງການເອກະລາດທີ່ຂັບເຄື່ອນໂດຍຊຸມຊົນແລະບໍ່ພຽງແຕ່ໂຄງການທີ່ຂັບເຄື່ອນໂດຍ Google ເພື່ອພັດທະນາໃນອະນາຄົດ.
Caruth ກ່າວຕື່ມວ່າເຖິງວ່າຈະມີຄວາມສົນໃຈຈາກທຸລະກິດໄອທີຈໍານວນຫນຶ່ງ, ແນວຄວາມຄິດນີ້ຍັງຢູ່ໃນຂັ້ນຕອນຂອງການທົດລອງ.
ອອກຈາກ Reply ເປັນ