આદરણીય પરંતુ સુસ્ત C++ ને બદલવાના પ્રયાસરૂપે, Google સંશોધકોએ કાર્બન ડબ કરવામાં આવેલી તદ્દન નવી "પ્રાયોગિક" ઓપન સોર્સ પ્રોગ્રામિંગ ભાષા રજૂ કરી છે.
કાર્બન C++ ની અનુગામી ભાષા તરીકે સેવા આપી શકે છે, જે વિકાસકર્તાઓને નવી ભાષા માટે એક સરળ પ્રારંભિક બિંદુ પ્રદાન કરે છે જે મેમરી સલામતી અને જેનરિક જેવા સમકાલીન વિકાસના ખ્યાલોને સંબોધિત કરે છે.
જાવામાં નબળાઈઓને મજબૂત કરવા માટે માઇક્રોસોફ્ટે JavaScript અને Kotlin ને અપડેટ કરવા માટે Typescript કેવી રીતે બનાવ્યું તેના જેવું જ હશે.
Google એ આખા વર્ષો દરમિયાન સંખ્યાબંધ પ્રોગ્રામિંગ ભાષાઓ વિકસાવી છે, જેમાંથી કેટલીકને નોંધપાત્ર પ્રતિષ્ઠા અને પ્રસિદ્ધિ મળી છે.
દાખલા તરીકે, ગોલાંગ (અથવા ફક્ત ગો) સર્વર અને વિતરણ પ્રણાલીના નિર્માણની સુવિધા માટે વિકસાવવામાં આવી હતી અને ત્યારબાદ સામાન્ય લોકો દ્વારા સ્વીકારવામાં આવી હતી.
ડાર્ટ પ્રોગ્રામિંગ ભાષા, જે JavaScript અવેજી તરીકે બનાવવામાં આવ્યું હતું, ફ્લટરની શરૂઆત સુધી તે જાણીતું બન્યું ન હતું.
19 જુલાઈ, 2022 ના રોજ ટોરોન્ટોમાં Cpp નોર્થ સંમેલનમાં, Google ના કર્મચારી, ચૅન્ડલર કેરુથે, કાર્બન નામની નવી પ્રોગ્રામિંગ ભાષા માટે પોતાનો વિચાર રજૂ કર્યો, કોનોર હોકસ્ટ્રા અનુસાર, જેમણે હાજરી આપી અને સ્લાઇડ્સ રેકોર્ડ કરી.
દૃશ્ય સેટ કરવા માટે, કેરુથે દર્શાવ્યું કે કેવી રીતે વર્તમાન સમયમાં સૌથી વધુ ગમતી પ્રોગ્રામિંગ ભાષાઓમાં વંશજ છે જે વિકાસકર્તાઓને ઝડપથી ઉત્પાદક બનવા અને સમકાલીન ભાષા ડિઝાઇનથી લાભ મેળવવા માટે સક્ષમ બનાવે છે.
ચાલો કાર્બન પ્રોગ્રામિંગ ભાષાના સામાન્ય પરિચય સાથે શરૂઆત કરીએ, જેમાં તેની વિશેષતાઓ, ગૂગલની શોધનો હેતુ અને વધુનો સમાવેશ થાય છે.
કાર્બન પ્રોગ્રામિંગ ભાષાનો પરિચય
19 જુલાઈ, 2022ના રોજ, ગૂગલે કાર્બનને તેણે બનાવેલી સૌથી નવી પ્રોગ્રામિંગ ભાષા તરીકે જાહેર કરી. તેનો હેતુ C++ પ્રાયોગિક રીતે બદલવાનો હતો.
એક માટે આભાર સામાન્ય સિસ્ટમ, જે દરેક ઇન્સ્ટન્ટેશન માટે કોડને બે વાર તપાસવાની જરૂરિયાતને દૂર કરે છે, કાર્બન આધુનિક પ્રોગ્રામિંગ ખ્યાલોના પાયા પર બનાવવામાં આવશે.
વર્ષના અંત સુધીમાં, ડિઝાઇન મૂળભૂત ઓપરેશનલ સંસ્કરણ (સંસ્કરણ 0.1) પ્રદાન કરવાની યોજના ધરાવે છે.
મેમરી અખંડિતતા એ એક નિર્ણાયક તત્વ છે જે C++ ખૂટે છે. સુરક્ષા ખામીઓના પ્રાથમિક સ્ત્રોતોમાંની એક મેમરી એક્સેસ સમસ્યાઓ છે.
ડાયનેમિક બાઉન્ડ ચેક્સનો વિકાસ, બિન-પ્રારંભિક રાજ્યોનું વધુ ટ્રેકિંગ અને સંપૂર્ણ ડિફૉલ્ટ ડિબગ બિલ્ડ મોડ એ કાર્બન ટીમના તમામ લક્ષ્યો છે. નિર્માતાઓ સમય જતાં સુરક્ષિત કાર્બન સબસેટ બનાવવાનો ઇરાદો ધરાવે છે.
જો કે, નવી પ્રોગ્રામિંગ ભાષાની કેટલીક નિર્ણાયક લાક્ષણિકતાઓ નીચે મુજબ છે:
- પ્રકારોને નામ આપવા માટે, સમીકરણોનો ઉપયોગ કરો.
- વ્યાખ્યા તપાસો સાથે મજબૂત જેનરિક
- પ્રકારો ખાસ કરીને ઇન્ટરફેસ હાથ ધરે છે
- પરિચય શબ્દસમૂહો અને મૂળભૂત વ્યાકરણ
- નિર્દેશકો અનિયંત્રિત ઍક્સેસ અને પરિવર્તન માટે પરવાનગી આપે છે.
- ફંક્શન ઇનપુટ પરિમાણો માટેના મૂલ્યો ફક્ત વાંચવા માટે છે.
- રુટ નેમસ્પેસ એ પેકેજ છે.
- API ને તેમના પેકેજ નામોનો ઉપયોગ કરીને આયાત કરી શકાય છે.
- સ્પષ્ટ ઑબ્જેક્ટ પેરામીટર દ્વારા પદ્ધતિ જાહેર કરવામાં આવે છે.
- વર્ગો મૂળભૂત રીતે અંતિમ છે; માત્ર એક વારસો છે
કાર્બનની વિશેષતાઓ
આધુનિક અને વિકાસશીલ
- કાર્બન સંસ્કરણો વચ્ચેના અપગ્રેડ સરળ અને સાધન-આધારિત છે.
- મજબૂત ભાષા આધાર, ખાસ કરીને જો તમે C++ નો ઉપયોગ કર્યો હોય અને શીખવામાં સરળ હોય
- સુરક્ષિત પાયા અને મેમરી-સલામત સબસેટ માટે પગલું-દર-પગલાંનો અભિગમ
ઓપન સોર્સના સમુદાયનું સ્વાગત છે
- એક સમુદાય જે હૂંફાળું, સ્વીકારવા અને આમંત્રણ આપવાનો પ્રયત્ન કરે છે
- તેના ધ્યેયો અને પ્રાથમિકતાઓ અલગ અને મજબૂત શાસન છે
- કમ્પાઈલર, લાઈબ્રેરીઓ, ડોક્યુમેન્ટેશન, ટૂલ્સ, પેકેજ મેનેજમેન્ટ અને વધુ સાથે ઓલ-ઈન-વન વ્યૂહરચના
ઝડપી અને C++ સાથે સુસંગત
- સાથે કામ કરો સી ++ કોડ વારસા અને નમૂનાઓ સહિત, તમારી પાસે પહેલેથી જ છે
- LLVM સાથે, C++ સાથે સરખાવી શકાય તેવું પર્ફોર્મન્સ અને બિટ્સ અને સરનામાં માટે નીચા-સ્તરની ઍક્સેસ
- તમારી હાલની C++ બિલ્ડ સિસ્ટમ્સ સાથે ઝડપી અને સ્કેલેબલ અને સુસંગત હોય તેવા બિલ્ડ્સ
ગૂગલે કાર્બન પ્રોગ્રામિંગ લેંગ્વેજ કેમ બનાવી?
પર્ફોર્મન્સ-ક્રિટીકલ સોફ્ટવેર મોટાભાગે C++ માં લખવાનું ચાલુ રાખે છે, જેમાં પ્રચંડ અને વિસ્તૃત કોડબેઝ અને રોકાણો છે.
જો કે, ઉપર જણાવ્યા મુજબ વિકાસકર્તાઓની માંગણીઓને આગળ વધારવામાં અને તેને પહોંચી વળવામાં મુશ્કેલી આવી રહી છે, મોટાભાગે વર્ષોના ટેક્નોલોજીકલ ઋણને કારણે.
C++ માં વધારો કરવો અત્યંત મુશ્કેલ છે કારણ કે તેના દ્વારા ઉપાર્જિત થયેલ ટેકનિકલ દેવું તેમજ તેની ઉત્ક્રાંતિ પ્રક્રિયામાં મુશ્કેલીઓ છે.
આ મુદ્દાઓને ઉકેલવા માટેનો આદર્શ અભિગમ એ છે કે C અથવા C++ ની પરંપરાને સીધી રીતે વારસામાં મેળવવાને બદલે સમકાલીન જેનરિક સિસ્ટમ, મોડ્યુલર કોડ સ્ટ્રક્ચર અને સુસંગત, સીધી વાક્યરચના જેવા મજબૂત ભાષાના પાયાથી શરૂઆત કરવી.
Go, Swift, Kotlin, Rust અને બીજી ઘણી બધી સમકાલીન ભાષાઓ પહેલેથી જ ઉત્કૃષ્ટ વિકાસ અનુભવ પ્રદાન કરે છે. વિકાસકર્તાઓ કે જેઓ આ વર્તમાન ભાષાઓમાંથી એકનો ઉપયોગ કરવામાં સક્ષમ છે તે કરવું જોઈએ.
કમનસીબે, C++ માંથી દત્તક લેવા અને સ્થળાંતર આ ભાષાઓની ડિઝાઇન દ્વારા ગંભીર રીતે અવરોધાય છે. આ અવરોધોમાં પર્ફોર્મન્સ ઓવરહેડ અને સોફ્ટવેરની રૂઢિપ્રયોગાત્મક ડિઝાઇનમાં ફેરફારનો સમાવેશ થાય છે.
કાર્બન એ ધીમે ધીમે C++ સુધારવાનો પ્રયાસ નથી; તેના બદલે, તે અનુગામી ભાષા વ્યૂહરચના છે. તેનું ધ્યાન C++ ઇન્ટરઓપરેબિલિટી, તેમજ હાલમાં C++ નો ઉપયોગ કરતા ડેવલપર્સ અને કોડબેઝ માટે વ્યાપક સ્વીકૃતિ અને સ્થળાંતર પર છે.
C++ રિપ્લેસમેન્ટ લેંગ્વેજમાં આ હોવું જોઈએ:
- C++ સાથે સરખાવી શકાય તેવું પ્રદર્શન વિકાસકર્તાઓ માટે નિર્ણાયક લાક્ષણિકતા છે.
- C++ પ્રોગ્રામરો માટે વ્યવસ્થિત શિક્ષણ વળાંક અને પરિચયનું સ્તર
- સ્થળાંતર કે જે માપી શકાય તેવું છે અને તેમાં કેટલાક સ્રોત-થી-સ્રોત રૂઢિપ્રયોગાત્મક C++ કોડ અનુવાદનો સમાવેશ થાય છે.
- વર્તમાન સૉફ્ટવેરના આર્કિટેક્ચર અને ડિઝાઇન માટે સમાન અભિવ્યક્તિ અને સમર્થન.
- C++ સાથે આંતરસંચાલનક્ષમતા કે જે સીમલેસ અને દ્વિપક્ષીય છે, જે કોઈપણ લાઈબ્રેરીને બાકીના સ્ટેકને પોર્ટ કર્યા વિના કાર્બનને અપનાવવાની મંજૂરી આપે છે.
આ વ્યૂહરચના સાથે, Google એ ઇકોસિસ્ટમમાં ઉમેરો કરે છે જે C++ માટે પહેલેથી અસ્તિત્વમાં છે અને વર્તમાન રોકાણો, કોડબેઝ અને વિકાસ સમુદાયોને સમાવિષ્ટ કરે છે.
કેટલીક ભાષાઓએ વિવિધ ઇકોસિસ્ટમ માટે આ અભિગમ અપનાવ્યો છે, અને કાર્બન આ પરિસ્થિતિઓમાં C++ જેવું જ કાર્ય કરવા માંગે છે:
- જાવા - કોટલિન
- JavaScript - TypeScript
- C++ – કાર્બન
C++ VS કાર્બન કોડ
જો તમે પહેલેથી જ C++ ડેવલપર છો, તો કાર્બનમાં શીખવાની કર્વ ઓછી હોવી જોઈએ. તે વ્યાકરણની રચનાઓના નિશ્ચિત સમૂહથી બનેલું છે જે કુદરતી લાગવું જોઈએ અને વાંચવા અને સમજવામાં સરળ હોવું જોઈએ.
C++ કોડનું ઉદાહરણ:
આ કાર્બન કોડ અનુલક્ષે છે:
કાર્બન વિ રસ્ટ
મેમરી-સેફ પરફોર્મન્સ એપ્લીકેશનની જરૂરિયાતોને પૂર્ણ કરવા માટે સ્પષ્ટ રીતે રચાયેલ અન્ય સમકાલીન ભાષાને રસ્ટ કહેવામાં આવે છે.
તો શા માટે ફક્ત રસ્ટનો ઉપયોગ કરશો નહીં?
જ્યારે કેટલાક દલીલ કરે છે કે રસ્ટ, જે મોઝિલા પ્રોજેક્ટ તરીકે શરૂ થયો હતો અને તે પછીથી મોટા પ્રમાણમાં જાહેર અનુયાયીઓ ધરાવતો થયો છે, તે C++નો અનુગામી છે, કેરુથને શંકા છે કે શું સમાંતર હજુ પણ માન્ય છે.
રસ્ટ નિઃશંકપણે એક અદ્ભુત ભાષા છે કે જેની સાથે નવો પ્રોજેક્ટ શરૂ કરવો, પરંતુ તેમાં જાવા અને કોટલિન જેવી ભાષાઓની "દ્વિદિશ આંતરસંચાલનક્ષમતા" નો અભાવ હોવાથી, ધીમે ધીમે તેમાં સંક્રમણ કરવું પડકારજનક છે.
કેરુથે CPP નોર્થ ખાતે પ્રવચન આપ્યું અને જે લોકો પહેલાથી જ રસ્ટનો ઉપયોગ કરી રહ્યા હતા તેઓને આમ કરવાનું ચાલુ રાખવા માટે પ્રોત્સાહિત કર્યા. વિકાસકર્તાઓ કે જેઓ પાસે પહેલાથી જ મોટા કદના C++ કોડબેઝ છે જે રસ્ટમાં કન્વર્ટ કરવા માટે પડકારરૂપ છે તેમણે કાર્બનનો ઉપયોગ કરવો જોઈએ.
ખાસ કરીને, કાર્બન તે છે જેને કેરુથ "અનુગામી ભાષા" તરીકે ઓળખે છે, જે હાલની ઇકોસિસ્ટમની ટોચ પર બનાવવામાં આવી છે, આ ઉદાહરણમાં C++.
તે હેતુ માટે, કાર્બનનો અર્થ વર્તમાન C++ કોડ સાથે સંપૂર્ણપણે સુસંગત છે, ભલે તે રસ્ટ સાથેના ઘણા ઉદ્દેશ્યો હોય, જેમ કે પ્રોગ્રામરોને "પ્રદર્શન-નિર્ણાયક એપ્લિકેશનો" બનાવવામાં મદદ કરવી.
વધુમાં, તેનો હેતુ C++ થી કાર્બનમાં શક્ય તેટલો સરળ બનાવવાનો છે.
ઉપસંહાર
છેવટે, કાર્બન ભાષાના સર્જકોએ સર્જન પ્રક્રિયા પર ધ્યાન આપવાનો પ્રયાસ કર્યો. પ્રોજેક્ટનો કોડ વિનંતી માટે ઉપલબ્ધ છે અને ખુલ્લામાં સંગ્રહિત છે Github, અને તેની સંસ્કૃતિ ખાનગી નાગરિકો અને IT ક્ષેત્ર બંને માટે સમાવિષ્ટ અને ખુલ્લી તરીકે વ્યાખ્યાયિત કરવામાં આવી છે.
કાર્બન ટીમે વિચાર્યું કે કાર્બન એ સમુદાય દ્વારા સંચાલિત સ્વાયત્ત પ્રોજેક્ટ બનવાની જરૂર છે અને ભવિષ્યમાં વિકાસ કરવા માટે Google દ્વારા ઇંધણ આપવામાં આવેલ પ્રોજેક્ટ જ નહીં.
કેરુથે ઉમેર્યું હતું કે સંખ્યાબંધ IT વ્યવસાયો તરફથી રસ હોવા છતાં, આ ખ્યાલ હજી પ્રાયોગિક તબક્કામાં છે.
એક જવાબ છોડો