AI એ TypeScript ની લડાઈ જીતી લીધી
ચર્ચા પૂરી થઈ ગઈ છે. TypeScript વધુ સારા તર્કને કારણે જીત્યું નથી. તે એટલા માટે જીત્યું કારણ કે AI ટૂલ્સ દ્વારા આ ચર્ચા અપ્રસ્તુત બની ગઈ છે.
સંશોધકોએ એક મુખ્ય પેટર્ન શોધી કાઢી છે. AI દ્વારા જનરેટ કરવામાં આવેલા કોડમાં મોટાભાગની કમ્પાઈલેશન નિષ્ફળતાઓ (compilation failures) 'type mismatches' ને કારણે હોય છે. આ લોજિકલ ભૂલો નથી. આ સાદી ભૂલો છે જ્યાં ફંક્શન અથવા આર્ગ્યુમેન્ટનું સ્વરૂપ (shape) ખોટું હોય છે.
AI પેટર્ન અનુસરીને ઝડપથી કોડ જનરેટ કરે છે. તે તમારા સમગ્ર કોડબેઝનું સંપૂર્ણ માનસિક મોડેલ (mental model) ધરાવતું નથી. એક માણસ અનુભવ દ્વારા 'type error' પકડી શકે છે. જ્યારે એક 'type checker' કોઈપણ સંદર્ભ વગર તેને તરત જ પકડી લે છે.
Static typing હવે માત્ર શૈલીની પસંદગી નથી. તે AI દ્વારા લખાયેલા કોડ માટે સુરક્ષાનું સાધન છે.
જુઓ કે આ તમારા રોજિંદા કામને કેવી રીતે અસર કરે છે:
AI સાથે ડાયનેમિક કોડબેઝ:
- AI એક ફંક્શન લખે છે.
- Types ઇમ્પ્લીસિટ (implicit) હોય છે.
- તમારે ભૂલો જાતે શોધવી પડે છે.
AI સાથે સ્ટેટિક કોડબેઝ:
- AI એક ફંક્શન લખે છે.
- Type checker તરત જ ભૂલો દર્શાવે છે.
ભૂલનો દર સમાન છે. તેને સુધારવાનો ખર્ચ અલગ છે. આ જ કારણ છે કે TypeScript નો ઉપયોગ સતત વધી રહ્યો છે. જ્યારે કોઈ બિન-માનવ તમારો પ્રથમ ડ્રાફ્ટ લખે છે, ત્યારે Types સસ્તા વીમા તરીકે કામ કરે છે.
આ નિયમ અન્ય ભાષાઓને પણ લાગુ પડે છે. Rust અહીં વધુ ઉપયોગી છે. 'Borrow checker' મેમરી અને કન્કરન્સી (concurrency) બગ્સને અટકાવે છે જે AI વારંવાર લાવે છે. આ બગ્સ સ્થાનિક રીતે (locally) સાચા લાગે છે પરંતુ રનટાઇમ (runtime) દરમિયાન નિષ્ફળ જાય છે.
ભાષાઓ જીતી રહી છે કારણ કે તેઓ AI-સહાયિત ડેવલપમેન્ટને રિવ્યુ કરવા માટે વધુ સુરક્ષિત બનાવે છે.
જો તમે ટીમનું નેતૃત્વ કરો છો, તો આ પગલાં અનુસરો:
- સૌ પ્રથમ બોર્ડરીઝ (boundaries) પર ટાઈપિંગ ઉમેરો.
- ફંક્શન સિગ્નેચર અને API કોન્ટ્રાક્ટ્સ પર ધ્યાન કેન્દ્રિત કરો.
- એવા વિસ્તારોનું રક્ષણ કરો જ્યાં ડેટા મોડ્યુલ્સ વચ્ચે વહે છે.
એક ચેતવણી: 'type safety' એ દરેક સમસ્યાનો ઉકેલ નથી. તે એવા બગ્સ પકડે છે જે AI કરવા માટે પ્રવૃત્ત છે. તે ખરાબ લોજિક અથવા ખોટી જરૂરિયાતોને પકડી શકતું નથી. જે કોડ કમ્પાઈલ થાય છે તે હંમેશા સાચો હોય તે જરૂરી નથી. Type checker એ સીટબેલ્ટ છે, ડ્રાઈવર નથી.
શું તમારી ટીમ ડિફોલ્ટ તરીકે strict mode નો ઉપયોગ કરે છે? તમારા વિચારો નીચે જણાવો.
