Fri. Jan 3rd, 2025

AI ഉപയോഗിച്ചുള്ള കോഡിംഗ്: ഡവലപ്പർമാരിൽ നിന്നുള്ള നുറുങ്ങുകളും മികച്ച രീതികളും

AI പെയർ പ്രോഗ്രാമിംഗ് ഒരു കോഡറുടെ സ്വപ്നമോ അല്ലെങ്കിൽ ഒരു പേടിസ്വപ്നമോ ആകാം. ഒൻപത് ഡെവലപ്പർമാർ ഇന്ന് ജനറേറ്റീവ് AI എങ്ങനെ ഉപയോഗിക്കുന്നു എന്നതിനെക്കുറിച്ച് സംസാരിക്കുന്നു.

ജനറേറ്റീവ് AI ജനപ്രിയ ഭാവനയെ പിടിച്ചെടുക്കുകയും ഒരു പുതിയ ടെക് ഗോൾഡ് റഷ് ആരംഭിക്കുകയും ചെയ്തു. സ്വാഭാവിക ഭാഷാ ഗദ്യവും വിഷ്വൽ ആർട്ടും നിർമ്മിക്കുന്ന AI ടൂളുകളിൽ വളരെയധികം ശ്രദ്ധ കേന്ദ്രീകരിച്ചിട്ടുണ്ടെങ്കിലും, ടെക് സർക്കിളുകളിൽ AI അതിന്റെ കോഡിംഗ് കഴിവുകളിൽ കൂടുതൽ താൽപ്പര്യം നേടുന്നു. നിങ്ങൾക്ക് ഒരു AI ചാറ്റ്‌ബോട്ടിലേക്ക് ആവശ്യമുള്ള ഒരു പ്രോഗ്രാം വിവരിക്കാൻ കഴിയും, കൂടാതെ ഇത് സെക്കൻഡുകൾക്കുള്ളിൽ നിങ്ങൾക്ക് എക്‌സിക്യൂട്ടബിൾ കോഡ് തിരികെ നൽകും, ഇത് ശരാശരി പ്രോഗ്രാമറെ കൗതുകകരമാക്കുകയും അസ്വസ്ഥരാക്കുകയും ചെയ്യുന്നു.

AI-അധിഷ്ഠിത പ്രോഗ്രാമിംഗിന്റെ സാധ്യത സോഫ്റ്റ്‌വെയർ വ്യവസായത്തിന്റെ ഭാവിയെക്കുറിച്ച്, പ്രത്യേകിച്ച് സി-സ്യൂട്ട് എക്സിക്യൂട്ടീവുകൾ, കൺസൾട്ടന്റുമാർ, അവരെ പിന്തുടരുന്ന പണ്ഡിതന്മാർ എന്നിവരിൽ നിന്ന് വളരെ ഗംഭീരമായ ചില പ്രവചനങ്ങളിലേക്ക് നയിച്ചു. എന്നാൽ ദൈനംദിന അടിസ്ഥാനത്തിൽ AI ഉപകരണങ്ങൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്ന പ്രോഗ്രാമർമാരുടെയും മാനേജർമാരുടെയും കാര്യമോ? ജനറേറ്റീവ് AI ഉപയോഗിച്ച് പ്രോഗ്രാമിംഗ് ചെയ്യുന്ന ഒരുപിടി ആളുകളോട് ഇത് ഇതുവരെ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് ഞങ്ങൾ ചോദിച്ചു. നമ്മൾ പഠിച്ചത്, AI ശരിക്കും ആളുകളുടെ പ്രവർത്തിക്കുന്ന രീതി മാറ്റുകയാണ്-എന്നാൽ മെഷീനുകൾ എപ്പോൾ വേണമെങ്കിലും ഹ്യൂമൻ കോഡറുകൾ മാറ്റിസ്ഥാപിക്കാൻ പോകുന്നില്ല.

AI കോഡർമാരെ എങ്ങനെ സഹായിക്കുന്നു

ഡെവലപ്പർമാർ ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന രണ്ട് ജനറേറ്റീവ് AI ടൂളുകൾ ആയിരുന്നു ChatGPT-ഓപ്പൺഎഐ-യിൽ നിന്നുള്ള പരക്കെ അറിയപ്പെടുന്ന AI ചാറ്റ്ബോട്ട്-വിഷ്വൽ സ്റ്റുഡിയോയിലും മറ്റ് IDE-കളിലും സംയോജിപ്പിക്കുന്ന GitHub Copilot. രണ്ട് ടൂളുകൾക്കും സ്വാഭാവിക ഭാഷാ അന്വേഷണങ്ങളെ അടിസ്ഥാനമാക്കി കോഡ് സൃഷ്ടിക്കാൻ കഴിയുമെങ്കിലും, കോപൈലറ്റിനും അതിന്റെ പരീക്ഷണാത്മക പിൻഗാമിയായ കോപൈലറ്റ് എക്‌സിനും സംഭാഷണ മോഡലിന് അപ്പുറത്തേക്ക് ഒരു പടി പോകാനാകും, ഡവലപ്പർ എന്താണ് പ്രവർത്തിക്കുന്നതെന്ന് മുൻകൂട്ടി അറിയുന്ന ഒരു തരം സൂപ്പ്-അപ്പ് ഐഡിഇ ഓട്ടോകംപ്ലീറ്റായി പ്രവർത്തിക്കുന്നു.

വിഷ്വൽ സ്റ്റുഡിയോ കോഡ് ഉപയോഗിച്ചുള്ള തന്റെ ദൈനംദിന കോഡിംഗിൽ താൻ GitHub Copilot ഉപയോഗിക്കുന്നുവെന്ന് Croquet.io-യിലെ സഹസ്ഥാപകയും ചീഫ് ആർക്കിടെക്റ്റുമായ വനേസ ഫ്രൂഡൻബെർഗ് പറയുന്നു. ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് അവർ വിശദീകരിക്കുന്നു.

ഞാൻ വരി എഴുതുകയാണെങ്കിൽ:

let x = this.leftMargin + this.width / 2;

അത് സ്വയമേവ അടുത്ത വരി നിർദ്ദേശിക്കും:

let y = this.topMargin + this.height / 2;

“വീതി”, “ഇടത്” എന്നിവയ്ക്ക് പകരം “ഉയരം”, “മുകളിൽ” എന്നിവ നൽകേണ്ടതുണ്ടെന്ന് അതിന് അറിയാം. അത് എനിക്ക് ധാരാളം ടൈപ്പിംഗ് ലാഭിക്കുന്നു.

NetBeez-ലെ സഹസ്ഥാപകനും CTO-ഉം, താൻ കോഡിംഗ് എപ്പോൾ വേണമെങ്കിലും Copilot X, ChatGPT എന്നിവ ഉപയോഗിക്കുമെന്ന് പറയുന്നു. ഈ ടൂളുകൾ ഉപയോഗിച്ച് യാന്ത്രിക പൂർത്തീകരണത്തിനപ്പുറം നേടുന്നതിനുള്ള രണ്ട് വ്യത്യസ്ത സമീപനങ്ങളെ അദ്ദേഹം വിവരിക്കുന്നു. ആദ്യത്തേത് വ്യവസ്ഥാപിതമാണ്. “നിർദ്ദിഷ്‌ട ഇൻപുട്ടുകൾ, പ്രതീക്ഷിക്കുന്ന ഔട്ട്‌പുട്ടുകളുടെ ഉദാഹരണങ്ങൾ, ഉൾപ്പെട്ടിരിക്കുന്ന ഡാറ്റാ മോഡലുകൾ എന്നിവ ഉപയോഗിച്ച് വളരെ നന്നായി നിർവചിക്കപ്പെട്ട ഒരു ഫംഗ്‌ഷൻ വിവരിക്കുക, അതിൽ ഉൾപ്പെട്ടിരിക്കുന്ന ഡാറ്റാബേസ് ടേബിളുകൾ ഇൻപ്ലിസിറ്റ് അസോസിയേഷനുകൾ ഉൾക്കൊള്ളുന്നു,” അദ്ദേഹം പറയുന്നു. “AI പൊതുവെ അസോസിയേഷനുകളെ അനുമാനിക്കാൻ കഴിയും. ഒരു പ്രത്യേക ഭാഷയിലും നിർദ്ദിഷ്ട രീതിയിലും ഇത് നടപ്പിലാക്കാൻ ആവശ്യപ്പെടുക. പ്രോജക്റ്റ് മാനേജ്മെന്റ് ടൂളുകളിൽ നിർവചിച്ചിരിക്കുന്ന ‘ടാസ്ക്കുകൾ’ ഇത്തരത്തിലുള്ള പ്രോംപ്റ്റായി നിർവചിക്കേണ്ടതാണ്.”

കൂടുതൽ യാദൃശ്ചികവും സംഭാഷണപരവുമായ ഒരു സാങ്കേതികത നല്ല ഫലങ്ങൾ ഉണ്ടാക്കുമെന്നും അദ്ദേഹം കരുതുന്നു. ഈ മോഡിൽ, അദ്ദേഹം പറയുന്നു, “ഒരു ടാസ്‌ക് നിർവഹിക്കുമ്പോൾ, ചില കാര്യങ്ങൾ എങ്ങനെ ചെയ്യണമെന്നതിനെക്കുറിച്ച് നിങ്ങളുടെ മനസ്സിൽ വരുന്ന ചോദ്യങ്ങൾ നിങ്ങൾ ചോദിക്കുന്നു. നിങ്ങളുടെ ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകുന്ന പരിചയസമ്പന്നനായ ഒരു എഞ്ചിനീയർ നിങ്ങളുടെ അടുത്ത് ഉണ്ടായിരിക്കുകയും ചുമതല പൂർത്തിയാക്കുന്നതിന് നിങ്ങളെ നയിക്കുകയും ചെയ്യുന്നതുപോലെയാണിത്.”

നിങ്ങൾ ഏത് സാങ്കേതിക വിദ്യ ഉപയോഗിച്ചാലും, AI ശരിയായി ആവശ്യപ്പെടാൻ പഠിക്കുന്നത് ഒരു കലയാണ്. “എന്റെ പ്രോംപ്റ്റ് ആരംഭിക്കുന്നതിനും പരിഷ്കരിക്കുന്നതിനുമുള്ള ശരിയായ ക്രിയ ലഭിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഞാൻ ചെയിൻ-ഓഫ്-ചിന്ത പ്രോംപ്റ്റിംഗ് ഉപയോഗിക്കുന്നു,” സോഫ്‌റ്റ്‌വെയർ ദാതാവായ കോഡ്‌സീയുടെ സ്ഥാപകയും സിഇഒയുമായ ഷാനിയ ലെവൻ പറയുന്നു. “ഒരു നല്ല പ്രോംപ്റ്റ് സൃഷ്ടിക്കുന്നതിന് ശരിയായ ക്രിയകൾ തിരഞ്ഞെടുക്കുന്നതും വിവരണാത്മകവും വളരെ പ്രധാനമാണ്.” 

AI-യുടെ കോഡിംഗ് ശക്തികൾ

ഞങ്ങൾ സംസാരിച്ച ഡവലപ്പർമാർ അവരുടെ ജോലി പൂർത്തിയാക്കാൻ AI ടൂളുകൾ സഹായിച്ച വിവിധ ഉപയോഗ കേസുകൾ വാഗ്ദാനം ചെയ്തു. വേറിട്ടു നിന്നത് ഇതാ.

കോഡിൽ നിന്ന് ഡോക്യുമെന്റേഷൻ നിർമ്മിക്കുന്നു

സോഫ്‌റ്റ്‌വെയർ ഡോക്യുമെന്റേഷൻ തികച്ചും ഘടനാപരമായ ഒരു ഫോർമാറ്റാണ്, ഇത് AI അഭിവൃദ്ധി പ്രാപിക്കുന്ന ഒരു മേഖലയാണ്. “എന്റെ കോഡിൽ ഡോക്യുമെന്റേഷൻ [അല്ലെങ്കിൽ] അഭിപ്രായങ്ങൾ എഴുതുക എന്നതാണ് ChatGPT ഉപയോഗിക്കുന്നത്,” വെബ് കൺസൾട്ടൻസി ലവ്2ദേവിന്റെ സ്ഥാപകനായ ക്രിസ് ലവ് പറയുന്നു. “അത് കൈകൊണ്ട് ചെയ്യാൻ വളരെയധികം സമയമെടുക്കും. എന്നാൽ ഒരു ഫംഗ്‌ഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, എനിക്ക് അത് ഫംഗ്‌ഷൻ നൽകുകയും ഒന്നോ രണ്ടോ നിമിഷങ്ങൾക്കുള്ളിൽ ഒരു നല്ല പേജ് ഡോക്യുമെന്റേഷൻ എഴുതുകയും ചെയ്യാം. ഞാൻ അത് ഇഷ്ടപ്പെടുന്നു!”

…തിരിച്ചും

അഭിപ്രായങ്ങളെയോ ഡോക്യുമെന്റേഷനെയോ അടിസ്ഥാനമാക്കി AI-ക്ക് കോഡ് സൃഷ്ടിക്കാനും കഴിയും. Croquet.io യുടെ Freudenberg ഒരു കമന്റ് ലൈനിൽ നിന്ന് കോപൈലറ്റ് കോഡ് സൃഷ്ടിക്കുന്നതിന്റെ ലളിതമായ ഒരു ഉദാഹരണം നൽകി, അവിടെ ഇനിപ്പറയുന്ന അഭിപ്രായം:

// get file name from our url

ഈ ഔട്ട്പുട്ട് നിർമ്മിച്ചത്:

let fileName = window.location.pathname.split(“/”).pop();

“ഞാൻ ഒരുപക്ഷേ ഇത് വ്യത്യസ്തമായി എഴുതുമായിരുന്നു – ഞാൻ ഒരു റീജക്സ് പെൺകുട്ടിയാണ് – എന്നാൽ ഇത് തികച്ചും ലളിതവും കൂടുതൽ വായിക്കാവുന്നതുമായ ഒരു പരിഹാരമാണ്, അതിനാൽ ഞാൻ ഇത് അംഗീകരിക്കും,” അവർ പറയുന്നു. “ഇത് ഒരു വലിയ സമയ ലാഭം മാത്രമല്ല, ചിലപ്പോൾ ഞാൻ സ്വയം കണ്ടെത്തിയിട്ടില്ലാത്ത ഭാഷാശൈലികളും എന്നെ പഠിപ്പിക്കുന്നു.”

പരിഹരിച്ച പ്രശ്നങ്ങൾക്കുള്ള പരിഹാരങ്ങൾ

പ്രോഗ്രാമിംഗിന്റെ ഒരു ഭാഗം നിരന്തരം വീൽ കണ്ടുപിടിക്കുന്നതായി ഡവലപ്പർമാർക്ക് അറിയാം. നിങ്ങൾക്കറിയാവുന്ന, എവിടെയോ, ഇതിനകം പരിഹരിച്ച ഒരു പ്രശ്നത്തിൽ പ്രവർത്തിക്കുന്നത് നിരാശാജനകമാണ്. സോഫ്റ്റ്‌വെയർ ഡെവലപ്‌മെന്റ് സ്ഥാപനമായ റൈസ്8-ലെ എഞ്ചിനീയറിംഗ് പ്രാക്ടീസ് ലീഡ് ജെഫ് വിൽസ്, ഇത് AI സഹായത്തിന് പാകമായ ഒരു ഡൊമെയ്‌നായിട്ടാണ് കാണുന്നത്. “ഒരു ഗോളത്തിലെ രണ്ട് ബിന്ദുക്കൾ തമ്മിലുള്ള ദൂരം കണക്കാക്കാൻ ഞാൻ ഒരു രീതി ഉണ്ടാക്കുന്നുവെന്ന് പറയാം,” അദ്ദേഹം വിശദീകരിക്കുന്നു. “കോപൈലറ്റ് സ്വയമേവ പുറത്തുപോയി ഹാവേർസൈൻ അൽഗോരിതം കണ്ടെത്തുകയും ആ കോഡുകളെല്ലാം സൃഷ്ടിക്കുകയും ചെയ്യും.”

AI- ജനറേറ്റഡ് കോഡിന് പകരമായി തന്റെ ആപ്ലിക്കേഷനിലേക്ക് ഒരു വലിയ ലൈബ്രറി ചേർക്കുന്ന സന്ദർഭങ്ങളിൽ ഈ ഉപയോഗ കേസ് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണെന്ന് വിൽസ് കണ്ടെത്തുന്നു. “എന്റെ കോഡിലേക്ക് ഒരു മുഴുവൻ ജ്യാമിതി ലൈബ്രറിയും കൊണ്ടുവരാനും കോഡ്ബേസ് വർദ്ധിപ്പിക്കാനും ഞാൻ ആഗ്രഹിക്കുന്നില്ലെന്ന് പറയുക,” അദ്ദേഹം വിശദീകരിക്കുന്നു. “എനിക്ക് ശരിക്കും ആ ഒരു അൽഗോരിതം മാത്രമേ ആവശ്യമുള്ളൂ. ഞാൻ അത് സ്വയം എഴുതുകയും ഉൾപ്പെടുത്തുകയും ചെയ്യും-അല്ലെങ്കിൽ അത് നിർമ്മിക്കാൻ എന്നെ സഹായിക്കുന്നതിന് ChatGPT അല്ലെങ്കിൽ Copilot ഉപയോഗിക്കുക. അതാണ് ഇപ്പോൾ AI-യുടെ ബ്രെഡും വെണ്ണയും.”

കോഡ് അപ്ഡേറ്റ് ചെയ്യുകയോ വൃത്തിയാക്കുകയോ ചെയ്യുന്നു

ക്രിസ് ലവ് ഓഫ് ലവ്2ദേവ്, താൻ ഇതിനകം എഴുതിയ കോഡ് അപ്‌ഡേറ്റ് ചെയ്യുന്നതിന് ChatGPT പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണെന്ന് കണ്ടെത്തി. “കോഡ് ടൈപ്പുചെയ്യാൻ എടുക്കുന്ന സമയം മൂല്യത്തേക്കാൾ കൂടുതലായതിനാൽ ഞാൻ അപ്‌ഡേറ്റ് ചെയ്യാത്ത പഴയ Node.js മൊഡ്യൂളുകൾ അപ്‌ഡേറ്റ് ചെയ്യുന്നത് ഞാൻ കൈകാര്യം ചെയ്തിട്ടുണ്ട്,” അദ്ദേഹം പറയുന്നു. “ഞാൻ തിരയുന്ന ഏറ്റവും സാധാരണമായ സാഹചര്യം, പഴയ വാഗ്ദാന-അടിസ്ഥാന ഫംഗ്‌ഷനുകൾ അസിൻക്/വെയ്റ്റ് ഉപയോഗിക്കുന്നതിന് പരിവർത്തനം ചെയ്യുക എന്നതാണ്. രണ്ടാമത്തേത് ഒരു ക്ലീനർ വാക്യഘടനയാണ്, പക്ഷേ ഞാൻ മൊഡ്യൂൾ എഴുതിയപ്പോൾ അത്ര സാധാരണമായിരുന്നില്ല. ഡിസ്ട്രക്ചറിംഗ് പോലെയുള്ള കൂടുതൽ ആധുനിക വാക്യഘടനകൾ ഉപയോഗിക്കാനും എനിക്ക് ഇത് ലഭിച്ചു. കൂടാതെ വേരിയബിൾ ഡിക്ലറേഷനുകൾ var-ൽ നിന്ന് കോൺസ്റ്റും ലെറ്റും ആയി പരിവർത്തനം ചെയ്യുന്നു.”

വേഗത്തിലുള്ള കോഡിംഗ് (ഒരുപക്ഷേ)

ഞങ്ങൾ സംസാരിച്ച പല ഡവലപ്പർമാരും കോപൈലറ്റോ ചാറ്റ്‌ജിപിടിയോ ആയി പ്രവർത്തിക്കുന്നത് അവർക്ക് അവരുടെ ജോലി കൂടുതൽ വേഗത്തിൽ ചെയ്യാൻ കഴിയുമെന്ന് തോന്നി, എന്നിരുന്നാലും അവർക്ക് അത് കണക്കാക്കാൻ കഴിയില്ലെന്ന് അവർ സമ്മതിച്ചു. “അവസാനം അത് ചെയ്യുന്നതായി ഞാൻ കരുതുന്നത് കുറച്ചുകൂടി വേഗത്തിൽ മികച്ച കോഡ് എഴുതാൻ എന്നെ സഹായിക്കുക എന്നതാണ്,” ലവ് പറയുന്നു. “എത്ര ശതമാനം വേഗമുണ്ടെന്ന് പറയാൻ പ്രയാസമാണ്, പക്ഷേ ഇത് എനിക്ക് സ്പഷ്ടമാണ്.”

സാധ്യമായ പരിഹാരങ്ങളിലൂടെ എനിക്ക് വേഗത്തിൽ ആവർത്തിക്കാൻ കഴിയുമെന്ന് എനിക്ക് തോന്നുന്നു” Rise8’s Wills പറയുന്നു. “അത് എന്നെ സൈദ്ധാന്തികമായി വേഗത്തിലാക്കും-പക്ഷേ ഞാൻ കൂടുതൽ സാധ്യമായ പരിഹാരങ്ങൾ നോക്കുന്നുണ്ടാകാം! അതിനാൽ എനിക്ക് കൃത്യസമയത്ത് പ്രതിഫലം ലഭിക്കില്ല, പക്ഷേ ഗുണനിലവാരത്തിൽ, കാരണം എനിക്ക് കുറച്ച് കൂടി ആവർത്തിക്കാൻ കഴിഞ്ഞു.