ගෞරවනීය නමුත් මන්දගාමී C++ ප්රතිස්ථාපනය කිරීමේ උත්සාහයක් ලෙස, Google පර්යේෂකයන් විසින් කාබන් ලෙස නම් කරන ලද නවතම “පරීක්ෂණාත්මක” විවෘත කේත ක්රමලේඛන භාෂාවක් හඳුන්වා දී ඇත.
C++ සඳහා අනුප්රාප්තික භාෂාවක් ලෙස කාබන් හට ක්රියා කළ හැකි අතර, එය සංවර්ධකයින්ට මතක ආරක්ෂාව සහ ජනක විද්යාව වැනි සමකාලීන සංවර්ධන සංකල්ප ආමන්ත්රණය කරන නව භාෂාවක් සඳහා සරල ආරම්භක ලක්ෂ්යයක් සපයයි.
මෙය Java හි දුර්වලතා ශක්තිමත් කිරීම සඳහා JavaScript සහ Kotlin යාවත්කාලීන කිරීමට Microsoft Typescript ගොඩනගා ගත් ආකාරය හා සමාන වනු ඇත.
Google විසින් වසර ගණනාවක් පුරා ක්රමලේඛන භාෂා ගණනාවක් සංවර්ධනය කර ඇති අතර, ඒවායින් සමහරක් සැලකිය යුතු ප්රසිද්ධියක් සහ ප්රමුඛත්වයක් ලබා ඇත.
උදාහරණයක් ලෙස, Golang (හෝ හුදෙක් Go) සේවාදායක සහ බෙදා හරින ලද පද්ධති නිර්මාණය කිරීමට පහසුකම් සැලසීම සඳහා සංවර්ධනය කරන ලද අතර පසුව එය සාමාන්ය ජනතාව විසින් වැලඳගෙන ඇත.
ඩාර්ට් ක්රමලේඛන භාෂාව, JavaScript ආදේශකයක් ලෙස නිර්මාණය කරන ලද, Flutter දියත් කරන තෙක් ප්රසිද්ධියට පත් නොවීය.
Google සේවකයෙකු වන Chandler Carruth, 19 ජූලි 2022 වන දින Toronto හි Cpp North සමුළුවේදී කාබන් නම් නව ක්රමලේඛන භාෂාවක් සඳහා ඔහුගේ අදහස ඉදිරිපත් කළේය. Conor Hoekstra අනුව, සහභාගී වී ස්ලයිඩ පටිගත කළ අය.
සංවර්ධකයින්ට ඉක්මනින් ඵලදායි වීමට සහ සමකාලීන භාෂා නිර්මාණයෙන් ප්රතිලාභ ලබා ගැනීමට හැකි වන පරිදි වර්තමානයේ වඩාත්ම කැමති ක්රමලේඛන භාෂා කිහිපයකින් පැවත එන්නන් සිටින ආකාරය මෙම තත්වය සැකසීම සඳහා Carruth විසින් නිරූපණය කරන ලදී.
කාබන් ක්රමලේඛන භාෂාවේ විශේෂාංග, ගූගල් විසින් එය සොයා ගැනීමේ අරමුණ සහ තවත් බොහෝ දේ ඇතුළුව එහි සාමාන්ය හැඳින්වීමකින් පටන් ගනිමු.
කාබන් ක්රමලේඛන භාෂාව හැඳින්වීම
19 ජුලි 2022 වෙනිදා, Google විසින් තමන් විසින් නිර්මාණය කරන ලද නවතම ක්රමලේඛන භාෂාව ලෙස කාබන් හෙළි කරන ලදී. එය C++ පර්යේෂණාත්මකව ප්රතිස්ථාපනය කිරීමට අදහස් කරන ලදී.
ස්තූතියි Generics පද්ධතිය, එක් එක් ක්රමලේඛනය සඳහා කේතය දෙවරක් පරීක්ෂා කිරීමේ අවශ්යතාවය ඉවත් කරන කාබන් නවීන ක්රමලේඛන සංකල්පවල පදනමක් මත ගොඩනැගේ.
වසර අවසන් වන විට, මූලික මෙහෙයුම් අනුවාදය (අනුවාදය 0.1) සැපයීමට සැලසුම් සැලසුම් කරයි.
මතක අඛණ්ඩතාව C++ අස්ථානගත වී ඇති තීරණාත්මක අංගයකි. ආරක්ෂක දෝෂ වල මූලික මූලාශ්රවලින් එකක් වන්නේ මතක ප්රවේශ ගැටළු වේ.
ගතික මායිම් පිරික්සුම් සංවර්ධනය කිරීම, නොඉඳුල් තත්ත්වයන් වැඩි ලුහුබැඳීම සහ සම්පූර්ණ පෙරනිමි නිදොස් ගොඩනැගීමේ මාදිලිය කාබන් කණ්ඩායමේ අරමුණු වේ. කාලයත් සමඟ ආරක්ෂිත කාබන් උප කුලකයක් නිර්මාණය කිරීමට නිර්මාපකයින් අදහස් කරයි.
කෙසේ වෙතත්, පහත දැක්වෙන්නේ නව ක්රමලේඛන භාෂාවේ තීරණාත්මක ලක්ෂණ කිහිපයකි:
- වර්ග නම් කිරීමට, ප්රකාශන භාවිතා කරන්න.
- නිර්වචන පිරික්සුම් සහිත ශක්තිමත් ජෙනරික්ස්
- වර්ග විශේෂයෙන් අතුරු මුහුණත් සිදු කරයි
- හැඳින්වීමේ වාක්ය ඛණ්ඩ සහ මූලික ව්යාකරණ
- අසීමිත ප්රවේශය සහ විකෘතිය සඳහා පොයින්ටර් ඉඩ දෙයි.
- ශ්රිත ආදාන පරාමිති සඳහා අගයන් කියවීමට පමණි.
- මූල නාම අවකාශය යනු පැකේජයයි.
- API ඒවායේ පැකේජ නම් භාවිතයෙන් ආනයනය කළ හැක.
- පැහැදිලි වස්තු පරාමිතියක් හරහා ක්රමයක් ප්රකාශ කෙරේ.
- පෙරනිමියෙන් පන්ති අවසාන වේ; ඇත්තේ එක් උරුමයක් පමණි
කාබන් වල ලක්ෂණ
නවීන හා සංවර්ධනය වෙමින් පවතී
- කාබන් අනුවාද අතර වැඩිදියුණු කිරීම් සරල සහ මෙවලම් මත පදනම් වේ.
- විශේෂයෙන් ඔබ C++ භාවිතා කර ඇත්නම් සහ ඉගෙනීමට පහසු නම් ශක්තිමත් භාෂා යටිපෙළ
- මතක සුරක්ෂිත උප කුලකයකට ආරක්ෂිත පදනම් සහ පියවරෙන් පියවර ප්රවේශය
විවෘත මූලාශ්ර ප්රජාව සාදරයෙන් පිළිගනිමු
- උණුසුම්, පිළිගැනීමට සහ ආරාධනා කිරීමට උත්සාහ කරන ප්රජාවක්
- එහි අරමුණු සහ ප්රමුඛතාවයන් එකිනෙකට වෙනස් සහ ශක්තිමත් පාලනයකි
- සම්පාදකයක්, පුස්තකාල, ප්රලේඛන, මෙවලම්, පැකේජ කළමනාකරණය සහ තවත් බොහෝ දේ සහිත සියල්ලෙන් එක උපාය මාර්ගයක්
C++ සමඟ ඉක්මන් සහ අනුකූල වේ
- සමඟ එක්ව වැඩ කරන්න සී ++ කේතය ඔබට දැනටමත් උරුමය සහ සැකිලි ඇතුළුව ඇත
- LLVM සමඟින්, C++ හා සැසඳිය හැකි කාර්ය සාධනය සහ බිටු සහ ලිපින සඳහා පහළ මට්ටමේ ප්රවේශය
- ඉක්මන් සහ පරිමාණය කළ හැකි සහ ඔබගේ පවතින C++ ගොඩනැගීමේ පද්ධති සමඟ අනුකූල වන ගොඩනැගීම්
ගූගල් කාබන් ක්රමලේඛන භාෂාව ගොඩනැගුවේ ඇයි?
කාර්ය සාධනය-විවේචනාත්මක මෘදුකාංග බොහෝ දුරට C++ හි ලියා ඇත, එය දැවැන්ත සහ පුළුල් වන කේත පදනම් සහ ආයෝජන ඇත.
කෙසේ වෙතත්, ඉහත සඳහන් කළ පරිදි සංවර්ධකයින්ගේ ඉල්ලීම් ඉදිරියට ගෙනයාමට සහ සපුරාලීමට එය ගැටළු ඇති කරයි, බොහෝ දුරට වසර ගණනාවක් වටිනා තාක්ෂණික ණය රැස් කිරීම හේතුවෙන්.
එය උපචිත තාක්ෂණික ණය මෙන්ම එහි පරිණාම ක්රියාවලියේ දුෂ්කරතා හේතුවෙන් C++ වැඩි දියුණු කිරීම අතිශයින් දුෂ්කර ය.
මෙම ගැටළු විසඳීම සඳහා කදිම ප්රවේශය වන්නේ C හෝ C++ සම්ප්රදාය සෘජුවම උරුම කර නොගෙන, සමකාලීන ජනක පද්ධතියක්, මොඩියුලර් කේත ව්යුහයක් සහ ස්ථාවර, සරල වාක්ය ඛණ්ඩයක් වැනි ශක්තිමත් භාෂා පදනමකින් ආරම්භ කිරීමයි.
Go, Swift, Kotlin, Rust සහ තවත් බොහෝ සමකාලීන භාෂා දැනටමත් කැපී පෙනෙන සංවර්ධන අත්දැකීමක් ලබා දෙයි. මෙම වත්මන් භාෂාවලින් එකක් භාවිතා කිරීමට හැකියාව ඇති සංවර්ධකයින් කළ යුතුය.
අවාසනාවකට මෙන්, C++ වෙතින් දරුකමට හදා ගැනීම සහ සංක්රමණය වීම මෙම භාෂාවල සැලසුම් නිසා දැඩි ලෙස බාධා ඇති වේ. මෙම බාධක අතර කාර්ය සාධනය උඩිස් කාර්ය සාධනය සහ මෘදුකාංගයේ idiomatic design හි වෙනස් කිරීම් ඇතුළත් වේ.
කාබන් යනු C++ ක්රමයෙන් වැඩිදියුණු කිරීමේ උත්සාහයක් නොවේ; ඒ වෙනුවට, එය අනුප්රාප්තික භාෂා උපාය මාර්ගයකි. එහි අවධානය යොමු වී ඇත්තේ C++ අන්තර් ක්රියාකාරීත්වය මෙන්ම දැනට C++ භාවිතා කරන සංවර්ධකයින් සහ කේත පදනම සඳහා පුළුල් පිළිගැනීමක් සහ සංක්රමණයකි.
C++ ප්රතිස්ථාපන භාෂාවක තිබිය යුත්තේ:
- C++ හා සැසඳිය හැකි කාර්ය සාධනය සංවර්ධකයින් සඳහා තීරණාත්මක ලක්ෂණයකි.
- C++ ක්රමලේඛකයින් සඳහා කළමනාකරණය කළ හැකි ඉගෙනුම් වක්රයක් සහ හුරුපුරුදු මට්ටමක්
- පරිමාණය කළ හැකි සංක්රමණය වන අතර සමහර මූලාශ්රයෙන් මූලාශ්ර idiomatic C++ කේත පරිවර්තනය ඇතුළත් වේ.
- වත්මන් මෘදුකාංගයේ ගෘහ නිර්මාණ ශිල්පය සහ සැලසුම් සඳහා සමාන ප්රකාශන සහ සහාය.
- C++ සමඟ අන්තර් ක්රියාකාරීත්වය බාධාවකින් තොරව සහ ද්විපාර්ශ්වික වන අතර, ඕනෑම පුස්තකාලයකට ඉතිරි තොගය වරායට ගෙන යාමකින් තොරව කාබන් භාවිතා කිරීමට ඉඩ සලසයි.
මෙම උපාය මාර්ගය සමඟින්, Google C++ සඳහා දැනටමත් පවතින පරිසර පද්ධතියට එකතු කරන අතර වත්මන් ආයෝජන, කේත පදනම් සහ සංවර්ධන ප්රජාවන් ඇතුළත් කරයි.
විවිධ පරිසර පද්ධති සඳහා භාෂා කිහිපයක් මෙම ප්රවේශය අනුගමනය කර ඇති අතර, කාබන් මෙම අවස්ථා වලදී C++ ට සමාන කාර්යයක් ඉටු කිරීමට උත්සාහ කරයි:
- ජාවා - කොටලින්
- JavaScript - TypeScript
- C++ - කාබන්
C++ VS කාබන් කේතය
ඔබ දැනටමත් C++ සංවර්ධකයෙකු නම් කාබන් අඩු ඉගෙනුම් වක්රයක් තිබිය යුතුය. එය ස්වභාවිකව ශබ්ද කළ යුතු සහ කියවීමට සහ තේරුම් ගැනීමට සරල විය යුතු ස්ථාවර ව්යාකරණ ඉදිකිරීම් සමූහයකින් සමන්විත වේ.
C++ කේතය සඳහා උදාහරණයක්:
මෙම කාබන් කේතය අනුරූප වේ:
කාබන් Vs මලකඩ
මතක ආරක්ෂිත කාර්ය සාධන යෙදුම්වල අවශ්යතා සපුරාලීම සඳහා පැහැදිලිවම නිර්මාණය කර ඇති තවත් සමකාලීන භාෂාවක් රස්ට් ලෙස හැඳින්වේ.
ඉතින් ඇයි සරලව රස්ට් භාවිතා නොකරන්නේ?
Mozilla ව්යාපෘතියක් ලෙස ආරම්භ වී පසුව සැලකිය යුතු මහජන අනුගාමිකත්වයක් දක්වා වර්ධනය වූ Rust C++ හි අනුප්රාප්තිකයෙකු බව ඇතැමුන් තර්ක කරන අතර, සමාන්තරය තවමත් වලංගු දැයි Carruth සැක කරයි.
රස්ට් යනු නව ව්යාපෘතියක් ආරම්භ කිරීමට අපූරු භාෂාවක් වන බව නොඅනුමානයි, නමුත් එයට ජාවා සහ කොට්ලින් වැනි භාෂාවල “ද්වි දිශානුගත අන්තර් ක්රියාකාරීත්වය” නොමැති බැවින්, ක්රමයෙන් එයට සංක්රමණය වීම අභියෝගාත්මක ය.
Carruth CPP North හි දේශනයක් පැවැත්වූ අතර දැනටමත් Rust භාවිතා කරමින් සිටි පුද්ගලයින්ට එසේ කිරීමට දිරිමත් කළේය. රස්ට් බවට පරිවර්තනය කිරීමට අභියෝග කරන ප්රමාණයේ C++ කේත පදනම දැනටමත් ඇති සංවර්ධකයින් කාබන් භාවිතා කළ යුතුය.
විශේෂයෙන්ම, කාබන් යනු මෙම අවස්ථාවෙහි C++ පවතින පරිසර පද්ධතියක් මත ගොඩනගා ඇති “අනුප්රාප්තික භාෂාවක්” ලෙසින් Carruth සඳහන් කරයි.
එම කාර්යය සඳහා, කාබන් යනු "කාර්ය සාධන-විවේචනාත්මක යෙදුම්" නිර්මාණය කිරීමේදී ක්රමලේඛකයින්ට සහාය වීම වැනි, රස්ට් සමඟ බොහෝ අරමුණු ඇති වුවද, වර්තමාන C++ කේතය සමඟ සම්පුර්ණයෙන්ම අනුකූල වීමට අදහස් කෙරේ.
ඊට අමතරව, C++ සිට කාබන් දක්වා ගමන් කිරීම හැකි තරම් සරල කිරීමට අදහස් කෙරේ.
නිගමනය
අවසාන වශයෙන්, කාබන් භාෂා නිර්මාණකරුවන් නිර්මාණ ක්රියාවලිය කෙරෙහි අවධානය යොමු කිරීමට උත්සාහ කළහ. ව්යාපෘතියේ කේතය ඉල්ලීම සඳහා ලබා ගත හැකි අතර විවෘතව ගබඩා කර ඇත Github, සහ එහි සංස්කෘතිය පෞද්ගලික පුරවැසියන් සහ තොරතුරු තාක්ෂණ අංශය යන දෙකටම ඇතුළත් සහ විවෘත ලෙස අර්ථ දක්වා ඇත.
කාබන් කණ්ඩායම සිතුවේ කාබන් යනු අනාගතයේ දී දියුණු වීමට නම් ප්රජාව විසින් මෙහෙයවනු ලබන ස්වයංක්රීය ව්යාපෘතියක් මිස ගූගල් විසින් පෝෂණය කරන ලද ව්යාපෘතියක් පමණක් නොවන බවයි.
තොරතුරු තාක්ෂණ ව්යාපාර ගණනාවක උනන්දුව තිබියදීත්, මෙම සංකල්පය තවමත් පර්යේෂණ මට්ටමේ පවතින බව කරුත් පැවසීය.
ඔබමයි