Taniqli, ammo sust C++ tilini almashtirish maqsadida Google tadqiqotchilari Carbon deb nomlangan yangi “eksperimental” ochiq kodli dasturlash tilini taqdim etishdi.
Uglerod C++ tilining vorisi bo'lib xizmat qilishi mumkin, bu dasturchilar uchun xotira xavfsizligi va generiklar kabi zamonaviy rivojlanish tushunchalariga murojaat qiladigan yangi tilga oddiy boshlang'ich nuqtani beradi.
Bu Microsoft Java-ning zaif tomonlarini kuchaytirish uchun JavaScript va Kotlin-ni yangilash uchun Typescript-ni yaratganiga o'xshaydi.
Google yillar davomida bir qancha dasturlash tillarini ishlab chiqdi, ulardan ba'zilari sezilarli darajada shuhrat qozondi va shuhrat qozondi.
Masalan, Golang (yoki shunchaki Go) serverlar va taqsimlangan tizimlarni yaratishni osonlashtirish uchun ishlab chiqilgan va keyinchalik keng jamoatchilik tomonidan qabul qilingan.
Dart dasturlash tiliJavaScript o'rnini bosuvchi sifatida yaratilgan , Flutter ishga tushirilgunga qadar mashhur bo'lmagan.
Chandler Carruth, Google xodimi 19-yil 2022-iyulda Torontoda boʻlib oʻtgan Cpp North konventsiyasida Carbon nomli yangi dasturlash tili haqidagi gʻoyasini taqdim etdi. Konor Xoekstraning so'zlariga ko'ra, kim qatnashdi va slaydlarni yozib oldi.
Stsenariyni o'rnatish uchun Karrut bugungi kunning eng mashhur dasturlash tillarining bir nechta avlodlari ishlab chiquvchilarga tezda samarali bo'lishlari va zamonaviy til dizaynidan foydalanishlari mumkin bo'lgan avlodlarga ega ekanligini ko'rsatdi.
Keling, Carbon dasturlash tilini umumiy tanishtirishdan boshlaylik, jumladan uning xususiyatlari, Google ixtiro qilish maqsadi va boshqalar.
Karbon dasturlash tiliga kirish
19-yil 2022-iyulda Google Carbonni oʻzi yaratgan eng yangi dasturlash tili sifatida eʼlon qildi. U eksperimental ravishda C++ ni almashtirish uchun mo'ljallangan edi.
A uchun rahmat umumiy tizim, bu har bir namuna uchun kodni ikki marta tekshirish zaruratini yo'q qiladi, Carbon zamonaviy dasturlash tushunchalari asosida quriladi.
Yil oxirigacha dizayn asosiy operatsion versiyani (0.1 versiyasi) taqdim etishni rejalashtirmoqda.
Xotiraning yaxlitligi C++ ning etishmayotgan muhim elementidir. Xavfsizlik kamchiliklarining asosiy manbalaridan biri xotiraga kirish muammolaridir.
Dinamik chegaralarni tekshirishni ishlab chiqish, ishga tushirilmagan holatlarni ko'proq kuzatish va to'liq sukut bo'yicha disk raskadrovka yaratish rejimi Carbon jamoasining maqsadlaridir. Yaratuvchilar vaqt o'tishi bilan xavfsiz Carbon kichik to'plamini yaratish niyatida.
Biroq, yangi dasturlash tilining ba'zi muhim xususiyatlari quyidagilardir:
- Turlarni nomlash uchun ifodalardan foydalaning.
- Ta'riflarni tekshirish bilan kuchli generiklar
- Turlar maxsus interfeyslarni amalga oshiradi
- kirish iboralari va asosiy grammatika
- Ko'rsatkichlar cheklanmagan kirish va mutatsiyaga imkon beradi.
- Funktsiya kiritish parametrlari uchun qiymatlar faqat o'qish uchun.
- Ildiz nom maydoni paketdir.
- API-larni paket nomlari yordamida import qilish mumkin.
- Usul aniq ob'ekt parametri orqali e'lon qilinadi.
- Sinflar sukut bo'yicha yakuniy hisoblanadi; faqat bitta meros mavjud
Uglerodning xususiyatlari
Zamonaviy va rivojlanayotgan
- Carbon versiyalari orasidagi yangilanishlar oddiy va asboblarga asoslangan.
- Kuchli til asoslari, ayniqsa siz C++ dan foydalangan bo'lsangiz va o'rganish oson
- Xavfsiz asoslar va xotira uchun xavfsiz kichik to'plamga bosqichma-bosqich yondashuv
Ochiq manbalar hamjamiyatiga xush kelibsiz
- Issiq, qabul qiluvchi va taklif qiluvchi bo'lishga intiladigan jamoa
- Uning maqsad va ustuvorliklari aniq va kuchli boshqaruvdir
- Kompilyator, kutubxonalar, hujjatlar, asboblar, paketlarni boshqarish va boshqalar bilan birgalikda strategiya
Tez va C++ bilan mos keladi
- bilan birga ishlang C ++ kodi meros va shablonlarni o'z ichiga olgan holda sizda allaqachon mavjud
- LLVM bilan C++ bilan solishtirish mumkin bo'lgan unumdorlik va bit va manzillarga past darajadagi kirish
- Tez va kengaytiriladigan va mavjud C++ qurish tizimlari bilan mos tuzilmalar
Nima uchun Google Carbon dasturlash tilini yaratdi?
Ishlash uchun muhim bo'lgan dasturiy ta'minot asosan C++ tilida yozilishda davom etmoqda, bu juda katta va kengaytirilayotgan kod bazalari va investitsiyalariga ega.
Biroq, yuqorida aytib o'tilganidek, ishlab chiquvchilarning talablarini qondirishda muammolarga duch kelmoqda, bu asosan yillar davomida yig'ilgan texnologik qarzlar tufayli.
C++ ni bosqichma-bosqich takomillashtirish juda qiyin, chunki u to'plangan texnik qarz va uning rivojlanish jarayonidagi qiyinchiliklar.
Ushbu muammolarni hal qilishda ideal yondashuv C yoki C++ anʼanalarini bevosita meros qilib olishdan koʻra, zamonaviy generiklar tizimi, modulli kod tuzilishi va izchil, toʻgʻri sintaksis kabi kuchli til poydevoridan boshlashdir.
Go, Swift, Kotlin, Rust va boshqa ko'plab boshqa zamonaviy tillar allaqachon ajoyib rivojlanish tajribasini taklif qilmoqda. Ushbu joriy tillardan birini qo'llashga qodir bo'lgan dasturchilar buni qilishlari kerak.
Afsuski, C++ dan qabul qilish va migratsiyaga ushbu tillarning dizayni jiddiy to'sqinlik qilmoqda. Ushbu to'siqlar ishlashga qo'shimcha xarajatlar va dasturiy ta'minotning idiomatik dizayniga o'zgartirishlarni o'z ichiga oladi.
Uglerod C++ tilini bosqichma-bosqich yaxshilashga urinish emas; aksincha, bu vorisi til strategiyasidir. Uning asosiy e'tibori C++ ning birgalikda ishlashi, shuningdek, hozirda C++ dan foydalanayotgan ishlab chiquvchilar va kod bazalari uchun keng miqyosda qabul qilish va migratsiyaga qaratilgan.
C++ o'rnini bosuvchi tilda quyidagilar bo'lishi kerak:
- C++ bilan taqqoslanadigan unumdorlik ishlab chiquvchilar uchun hal qiluvchi xususiyatdir.
- Boshqariladigan o'rganish egri chizig'i va C++ dasturchilari uchun tanishlik darajasi
- Migratsiya kengaytirilishi mumkin va ba'zi bir manbadan manbaga idiomatik C++ kod tarjimasini o'z ichiga oladi.
- Xuddi shunday ekspressivlik va joriy dasturiy ta'minotning arxitekturasi va dizaynini qo'llab-quvvatlash.
- C++ bilan uzluksiz va ikki yo‘nalishli o‘zaro ishlash qobiliyati, bu har qanday kutubxonaga stekning qolgan qismini portlamasdan Carbonni qabul qilish imkonini beradi.
Ushbu strategiya yordamida Google C++ uchun allaqachon mavjud bo'lgan ekotizimga qo'shiladi va joriy investitsiyalar, kod bazalari va rivojlanish hamjamiyatlarini o'z ichiga oladi.
Bir necha tillar turli ekotizimlar uchun ushbu yondashuvni qo'llagan va Carbon quyidagi holatlarda C++ ga o'xshash funktsiyani bajarishga intiladi:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - uglerod
C++ VS uglerod kodi
Agar siz allaqachon C++ dasturchisi bo'lsangiz, uglerod past o'rganish egri chizig'iga ega bo'lishi kerak. U tabiiy bo'lishi va o'qish va tushunish uchun sodda bo'lishi kerak bo'lgan qat'iy grammatik konstruktsiyalardan iborat.
C++ kodiga misol:
Ushbu uglerod kodi quyidagilarga mos keladi:
Uglerod va zang
Xotirada xavfsiz ishlash dasturlari talablariga javob beradigan boshqa zamonaviy til Rust deb nomlanadi.
Xo'sh, nima uchun Rustni oddiygina ishlatmaslik kerak?
Ba'zilar Mozilla loyihasi sifatida boshlangan va keyinchalik ommabop muxlislarga ega bo'lgan Rust C++ ning vorisi deb ta'kidlasa-da, Karrut bu parallellik hali ham amalda ekanligiga shubha qiladi.
Rust, shubhasiz, yangi loyihani boshlash uchun ajoyib tildir, ammo Java va Kotlin kabi tillarning "ikki tomonlama o'zaro muvofiqligi" yo'qligi sababli, unga asta-sekin o'tish qiyin.
Carruth CPP North da ma'ruza o'qidi va Rustdan allaqachon foydalanayotgan odamlarni shunday qilishni davom ettirishga undadi. Rust-ga aylantirish qiyin bo'lgan C++ kod bazalariga ega bo'lgan ishlab chiquvchilar Carbon-dan foydalanishlari kerak.
Xususan, Carbon - bu Carruth mavjud ekotizimning tepasida qurilgan "voris tili" deb atagan narsa, bu misolda C++.
Shu maqsadda Carbon joriy C++ kodi bilan toʻliq mos kelishi kerak, hatto u Rust bilan koʻp maqsadlarga ega boʻlsa ham, masalan, dasturchilarga “ishlash uchun muhim ilovalar” yaratishda yordam berish.
Bundan tashqari, u C++ dan Carbon ga o'tishni iloji boricha soddalashtirish uchun mo'ljallangan.
Xulosa
Nihoyat, uglerod tili yaratuvchilari yaratilish jarayoniga e'tibor berishga harakat qilishdi. Loyiha kodi so'rov uchun mavjud va ochiq holda saqlanadi Github, va uning madaniyati ham xususiy fuqarolar, ham IT sektori uchun inklyuziv va ochiq deb belgilangan.
Carbon jamoasi, Carbon kelajakda rivojlanishi uchun nafaqat Google tomonidan ishlab chiqilgan loyiha emas, balki jamiyat tomonidan boshqariladigan avtonom loyiha bo'lishi kerak deb o'yladi.
Karutning qo‘shimcha qilishicha, bir qator IT-biznesning qiziqishiga qaramay, bu kontseptsiya hali ham tajriba bosqichida.
Leave a Reply