Ali bo umetna inteligenca nadomestila programerje?
Algoritmi umetne inteligence v zadnjem času hitro vstopajo v vse segmente tehnoloških izdelkov in storitev, pri tem pa omogočajo stvari, ki doslej niso bile možne. Od napovedovanja dogodkov do avtomatizacije kompleksnih strojev in pogovora z računalniki v naravnem jeziku. Nekateri že trdijo, da smo na pragu nove revolucije, ki bo med drugim spremenila vlogo ljudi in računalnikov v vsakdanjem življenju. Toda ali lahko umetna inteligenca nadomesti tudi intelektualno delo, kot je na primer programiranje teh računalnikov?
Toda umetna inteligenca zmore še bistveno več, zlasti tam, kjer sta potrebna logično razmišljanje in odločanje. To pa je zelo pomembno tudi pri programiranju, mar ne? Resnici na ljubo, zametki avtomatiziranega programiranja segajo že daleč v preteklost. Od samih začetkov osebnega računalnika se srečujemo z razvojnimi orodji, ki znajo generirati vsaj določen del kode programov. Če dobro razmislimo, to počnemo pogosto tudi danes v razvojnih orodjih, le da tega ne opazimo, postopka pa ne povezujemo s tehnikami umetne inteligence.
Toda v mislih imam precej korenitejši način rabe umetne inteligence v postopkih programiranja. Tak, ki predvideva zadajanje problema v naravnem jeziku, po možnosti le z ohlapno definicijo specifikacije, kar mimogrede ni bistveno drugače, kot danes počnemo v intervjujih naročnikov današnjih programov. Le da bo v prihodnosti na drugi strani bot (ali robot), ki bo na podlagi opisanega sestavil program za dosego želenega cilja. Morda lahko razmislimo še korak dlje – umetna inteligenca bi lahko na podlagi zbranih podatkov in »digitalnih izkušenj« sama dobila zamisel in napisala program za njeno izvedbo. Brez vpletenosti človeka.
Seveda se vse to ne bo zgodilo prav kmalu. Toda kljub temu da se zgoraj navedeno zdi bolj znanstvena fantastika, ni povsem tako. Navedel bom koncept univerze MIT, tako imenovano »dinamično programiranje«, kjer lahko uporabniki računalniku zastavijo cilje programa v zelo splošnih okvirih, program pa ob pomoči tehnike umetne inteligence sam razvije programe. Prvi rezultati kažejo, da to opravi bistveno hitreje in bolj natančno kot ljudje. Za nameček so programi že v začetku hitrejši, torej že optimizirani. Google, Facebook in Baidu se menda že intenzivno ukvarjajo s podobnimi rešitvami, ki temeljijo na konceptih globokega nenadzorovanega učenja.
V prihodnosti bo bot na podlagi opisanega problema, lahko kar v naravnem jeziku, sam sestavil program za dosego želenega cilja.
V analitski družbi Forrester Research menijo, da bo umetna inteligenca v naslednjih letih močno spremenila tehnike programiranja. Toda najprej jo bomo našli na področjih, ki jih tudi programerji nimajo ravno radi – pri avtomatizaciji testiranja, preverjanja rezultatov izdelka s cilji in meritvah za doseganje večje kakovosti programov. Kdor teh principov ne bo uporabljal, preprosto ne bo več dovolj konkurenčen tistim, ki jih bodo.
Avtomatizacija testiranja bo le prvi korak, drugi bo opisovanje problemov v naravnanem jeziku. Sčasoma se bo tak način izdelave novih programov naselil v vse faze programiranja, pa tudi nadzora delovanja in vzdrževanja računalniških programov.
Ali to pomeni, da bo umetna inteligenca nadomestila programerje? Najbrž ne, imeli pa bodo najbrž precej drugačno vlogo. Sam proces razvoja bo bistveno hitrejši, kar pomeni, da se bo hitrost implementacije inovacij še bistveno povečala. To bo po svoje zopet močno vplivalo na način delovanja vse sistemov, tudi družbe kot take v celoti.
Komentarji
bostjanc | 17.2.2017 | 17:53
Če zna (računalnik oz. program) napisat program, ki zna rešit določen problem, potem že tak in tak zna rešit ta problem? Zakaj bi moral računalnik sploh napisat program?