આર્કિટેક્ચર નિર્ણય રેકોર્ડ: રસ્ટ પ્રોગ્રામિંગ ભાષા
નિર્ણય નંબર: AR-001
નિર્ણયનું શીર્ષક: Rust પ્રોગ્રામિંગ ભાષા અપનાવવી
તારીખ: 1 ડિસેમ્બર, 2021
સ્થિતિ: સ્વીકૃત
સમસ્યા વિધાન
જેમ જેમ અમે સોફ્ટવેર એપ્લિકેશનો વિકસાવવાનું ચાલુ રાખીએ છીએ, અમે જોયું છે કે સંભવિત સુરક્ષા નબળાઈઓ ઘટાડવી અને રનટાઇમ ભૂલો અટકાવવી વધુને વધુ પડકારજનક બની રહ્યું છે. C અને C++ જેવી હાલની પ્રોગ્રામિંગ ભાષાઓ સાથે, અમે બફર ઓવરફ્લો, મેમરી લીક અને અનિર્ધારિત વર્તણૂક જેવી સમસ્યાઓનો અનુભવ કરતા રહીએ છીએ જે એપ્લિકેશનોના ક્રેશ તરફ દોરી જાય છે. અમને એવી પ્રોગ્રામિંગ ભાષા જોઈએ છે જે મેમરી સુરક્ષાની ખાતરી આપે અને કામગીરી-નિર્ણાયક એપ્લિકેશનોને ટેકો આપવા પૂરતી કાર્યક્ષમ હોય.
વિચારણાઓ
હાલની સમસ્યાઓને સંબોધવા માટે ઘણી પ્રોગ્રામિંગ ભાષાઓ ડિઝાઇન કરાઈ છે. તેમાંથી, Rust પ્રોગ્રામિંગ ભાષાએ તેની અનન્ય ડિઝાઇન સુવિધાઓને કારણે ડેવલપર સમુદાયનું નોંધપાત્ર ધ્યાન ખેંચ્યું છે. વિચારણાઓમાં શામેલ છે;
મેમરી સુરક્ષા અને સલામતી
કામગીરી અને કાર્યક્ષમતા
સમુદાય સમર્થન અને અપનાવણી
શીખવાની કઠિનતા
સાધનો અને ઇકોસિસ્ટમ
હાલની સોફ્ટવેર સિસ્ટમો સાથે સુસંગતતા.
મર્યાદાઓ
નવી પ્રોગ્રામિંગ ભાષા અપનાવવા માટે ડેવલપર્સને ફરીથી તાલીમ આપવી પડે છે, જેમાં સમય અને સંસાધનો લાગે છે. ભાષાને હાલના વિકાસ કાર્યપ્રવાહમાં સંકલિત કરવું પડકારરૂપ બની શકે. અમારે હાલની સિસ્ટમો સાથે સુસંગતતા સુનિશ્ચિત કરવી પડશે અને સાતત્ય જાળવવા માટે તોડનારા ફેરફારો ટાળવા પડશે.
અમલીકરણ
અમારી વિકાસ ટીમ Rust પ્રોગ્રામિંગ ભાષા શીખવા અને તેનાથી પરિચિત થવા માટે તાલીમ લેશે.
અમે અમારા વિકાસ હેતુઓ માટે તેની સુસંગતતા અને યોગ્યતાનું મૂલ્યાંકન કરવા પરીક્ષણ ધોરણે Rust વાપરીને નવો પ્રોજેક્ટ બનાવીશું.
અમે C અને C++ માં લખાયેલી હાલની સિસ્ટમોને ધીમે ધીમે Rust માં સ્થળાંતરિત કરીશું.
અમારા વિકાસ કાર્યપ્રવાહને વધારી શકે તેવા ઉપલબ્ધ સાધનો અને લાઇબ્રેરીઓ શોધવા માટે અમે Rust સમુદાય સાથે સહયોગ કરીશું.
અમે Rust ની કામગીરીનું નિરીક્ષણ કરીશું અને નિયમિતપણે તેની હાલની પ્રોગ્રામિંગ ભાષાઓની કામગીરી સાથે સરખામણી કરીશું.
અમે લાંબા ગાળાનો અભિગમ અપનાવીશું જે તાલીમ, ઇન્ટિગ્રેશનના ખર્ચ અને Rust વાપરવાના સંભવિત લાભોને સંતુલિત કરે.
તર્ક
અમે Rust તેની અનન્ય સુવિધાઓને કારણે અપનાવ્યું છે જે કામગીરી અને કાર્યક્ષમતા જાળવીને મેમરી સુરક્ષા અને સલામતીની ખાતરી આપવા ડિઝાઇન કરાઈ છે. Rust ની મજબૂત ટાઇપ સિસ્ટમ, બોરો ચેકર અને મેમરી સુરક્ષા ખ્યાલો તેને કામગીરી-નિર્ણાયક અને સુરક્ષા-નિર્ણાયક એપ્લિકેશનો વિકસાવવા માટે અત્યંત યોગ્ય બનાવે છે. વધુમાં, Rust પાસે ડેવલપર્સનો નોંધપાત્ર સમુદાય છે, જે અમને અમારા વિકાસ કાર્યપ્રવાહને ટેકો આપતા સાધનો, લાઇબ્રેરીઓ અને ઇકોસિસ્ટમની વિશાળ શ્રેણી સુધી પહોંચ આપે છે. Rust સાથે શીખવાની કઠિનતા આવે છે, પરંતુ અમે માનીએ છીએ કે Rust અપનાવવાના લાભો ખર્ચ કરતાં વધુ છે અને સતત વૃદ્ધિ અને નવીનતા માટે ઉત્તમ તક આપે છે.
પરિણામો
Rust અપનાવવા માટે ડેવલપર્સને તાલીમ આપવા અને ભાષાને હાલના વિકાસ કાર્યપ્રવાહમાં સંકલિત કરવામાં સમય અને સંસાધનોનું નોંધપાત્ર રોકાણ જરૂરી બનશે.
Rust અપનાવવાથી હાલની સિસ્ટમો સાથે અમુક અંશે સુસંગતતાની સમસ્યાઓ થઈ શકે, જેને માટે રિફેક્ટરિંગ અને ફેરફારોની જરૂર પડશે.
Rust અપનાવવાથી રોમાંચક પ્રોજેક્ટ્સ પર કામ કરવા માગતા Rust ડેવલપર્સને આકર્ષીને અમારા પ્રોજેક્ટમાં યોગદાન આપી શકે તેવા ડેવલપર્સની સંખ્યા વધી શકે.
અપનાવણી હાલની ભાષાઓની સરખામણીમાં સુધરેલી કામગીરી, કાર્યક્ષમતા અને સલામતી તરફ દોરી શકે.
છેલ્લે, Rust અપનાવવા સાથે અમારી એપ્લિકેશનોમાં સુરક્ષા નબળાઈઓ ઘટાડવાનો સંભવિત લાભ આવે છે.