Berta Sándor
Jöhetnek a számítógépek által írt szoftverek
Unalomig ismert közhely, hogy az IT-szektorban hatalmas a munkaerőhiány, és a jövőben még több programozóra lesz szükség. Mint minden más ágazatban, a szűkösségen nyilvánvalóan itt is automatizációval lehet enyhiteni, a legalapvetőbb szintű feladatok gépekre hagyásával. Sokszor jövendölték már a favágás-szerű programozási feladatok végét, és valóban vannak részsikerek a területen, de a szoftveres feladatok iránti igény is egyre növekszik, és nem látszik az olló záródása. Mégis, a közeljövőben egyáltalán nem lesz meglepő, hogy bizonyos alkalmazásokat nem emberek készítenek.
Martin Vechev, az ETH Zurich informatikai professzora arra tanítja meg a számítógépeket, hogy maguk készítsenek szoftvereket. A szakember közölte, hogy az ötlet nem csupán lenyűgöző, de egyúttal nagyon is realisztikus. Már most is vannak olyan segédprogramok, amelyek megkönnyítik a szoftverfejlesztők munkáját és a jövőben e megoldásoknak köszönhetően bármely fejlesztő ha nem is ugyanolyan jól, de ugyanolyan gyorsan programozhat majd, mint a legjobb szakértők. Manapság pedig a minőségnél a sebesség sokkal fontosabb szempont, a hiányosságokat pedig majd áthidalja egy gyorsabb szerver.
Vechev szerint tíz éven belül annyira fejlett lesz az automatizálás, hogy a számítógépek is képesek lesznek önállóan rövid alkalmazásokat készíteni. Mindez elsősorban a gépi tanulásnak és a már most is létező hatalmas szoftveradatbázisoknak köszönhető, amelyek szabadon elérhetők. Ezekben a rendszerekben több millió programot tárolnak, amelyek összesen sokmillió sornyi kódot tartalmaznak. Ezekben az emberi fejlesztők könnyen elveszíthetik az áttekintést, de a számítógépek segíthetnek az adatmennyiség elemzésében és felhasználásában.
A meglévő kódmintákból a számítógépek felismerhetik és megtanulhatják, hogy melyik mintát milyen kontextusban lehet alkalmazni. Ilyen módon nem csupán az egyes jeleket és parancsokat ismerik meg, hanem azok jelentését és felhasználási szabályait is. E tanulási folyamat hasonlít arra, mint amikor a Google Fordító és más fordítószoftverek tanulnak. Vechev rámutatott, hogy azok a platformok is a gépi tanulást használják azért, hogy az egyes szavakat összefüggéseikben elemezzék, majd azokból következtessenek a jelentőségükre, a használatukra és a nyelvtani szabályokra.
A jövőbeli segédprogramok hasonló módon működnek majd, mint napjainkban az SMS-írásban segítő megoldások. Egy fejlesztőnek elegendő lesz beírni az első száz sor kódot, az alkalmazás elemezni fogja azt, majd összehasonlítja az adatbázisokban meglévő kódokkal és javaslatokat tesz a folytatásra. Ezeket a javaslatokat a programozók elfogadhatják vagy elutasíthatják. A számítógépek mindegyik választ elemezni fogják és ezáltal a javaslatok is egyre jobbak lesznek. E fejlesztések kulcselemét az úgynevezett valószínűségmodellek jelentik, amelyeket számos szoftverből és szoftverrészletből építik fel, s a legvalószínűbb javaslatokat jelenítik majd meg.
Vechev és csapata egyre jobb valószínűségmodelleket próbálnak kifejleszteni. Nemrég meg is alkották a PHOG nevű terméket, amely jelenleg a legprecízebb valószínűségmodell és amely nem csupán a programozónyelvekkel, hanem a természetes beszéddel is működik. Emellett - más modellekkel ellentétben - nemcsak válaszokat szállít, hanem a választást is érthetővé teszi a felhasználók számára. A PHOG-t bárki használhatja a segédszoftverek készítésére. Más segédletek, mint a JS Nice és a Deguard a kódok átvizsgálásában segítenek és javaslatokat kínálnak arra, hogyan lehet javítani a meglévő szoftvereken. Ezáltal elkerülhetővé válik, hogy a kódokba valaki kártevőt rejtsen el. A JS Nice-t eddig több mint 200 000 fejlesztő és IT-biztonsági szakember használta.
Vechev és az egyik korábbi doktorandusza tavaly megalapították a Deepcode nevű vállalkozást, amellyel hosszú távon olyan alkalmazásokat készítsenek, amelyek az intellektuálisan nehéz kihívásokat jobban megoldhatják, mint az emberek.
Martin Vechev, az ETH Zurich informatikai professzora arra tanítja meg a számítógépeket, hogy maguk készítsenek szoftvereket. A szakember közölte, hogy az ötlet nem csupán lenyűgöző, de egyúttal nagyon is realisztikus. Már most is vannak olyan segédprogramok, amelyek megkönnyítik a szoftverfejlesztők munkáját és a jövőben e megoldásoknak köszönhetően bármely fejlesztő ha nem is ugyanolyan jól, de ugyanolyan gyorsan programozhat majd, mint a legjobb szakértők. Manapság pedig a minőségnél a sebesség sokkal fontosabb szempont, a hiányosságokat pedig majd áthidalja egy gyorsabb szerver.
Vechev szerint tíz éven belül annyira fejlett lesz az automatizálás, hogy a számítógépek is képesek lesznek önállóan rövid alkalmazásokat készíteni. Mindez elsősorban a gépi tanulásnak és a már most is létező hatalmas szoftveradatbázisoknak köszönhető, amelyek szabadon elérhetők. Ezekben a rendszerekben több millió programot tárolnak, amelyek összesen sokmillió sornyi kódot tartalmaznak. Ezekben az emberi fejlesztők könnyen elveszíthetik az áttekintést, de a számítógépek segíthetnek az adatmennyiség elemzésében és felhasználásában.
A meglévő kódmintákból a számítógépek felismerhetik és megtanulhatják, hogy melyik mintát milyen kontextusban lehet alkalmazni. Ilyen módon nem csupán az egyes jeleket és parancsokat ismerik meg, hanem azok jelentését és felhasználási szabályait is. E tanulási folyamat hasonlít arra, mint amikor a Google Fordító és más fordítószoftverek tanulnak. Vechev rámutatott, hogy azok a platformok is a gépi tanulást használják azért, hogy az egyes szavakat összefüggéseikben elemezzék, majd azokból következtessenek a jelentőségükre, a használatukra és a nyelvtani szabályokra.
A jövőbeli segédprogramok hasonló módon működnek majd, mint napjainkban az SMS-írásban segítő megoldások. Egy fejlesztőnek elegendő lesz beírni az első száz sor kódot, az alkalmazás elemezni fogja azt, majd összehasonlítja az adatbázisokban meglévő kódokkal és javaslatokat tesz a folytatásra. Ezeket a javaslatokat a programozók elfogadhatják vagy elutasíthatják. A számítógépek mindegyik választ elemezni fogják és ezáltal a javaslatok is egyre jobbak lesznek. E fejlesztések kulcselemét az úgynevezett valószínűségmodellek jelentik, amelyeket számos szoftverből és szoftverrészletből építik fel, s a legvalószínűbb javaslatokat jelenítik majd meg.
Vechev és csapata egyre jobb valószínűségmodelleket próbálnak kifejleszteni. Nemrég meg is alkották a PHOG nevű terméket, amely jelenleg a legprecízebb valószínűségmodell és amely nem csupán a programozónyelvekkel, hanem a természetes beszéddel is működik. Emellett - más modellekkel ellentétben - nemcsak válaszokat szállít, hanem a választást is érthetővé teszi a felhasználók számára. A PHOG-t bárki használhatja a segédszoftverek készítésére. Más segédletek, mint a JS Nice és a Deguard a kódok átvizsgálásában segítenek és javaslatokat kínálnak arra, hogyan lehet javítani a meglévő szoftvereken. Ezáltal elkerülhetővé válik, hogy a kódokba valaki kártevőt rejtsen el. A JS Nice-t eddig több mint 200 000 fejlesztő és IT-biztonsági szakember használta.
Vechev és az egyik korábbi doktorandusza tavaly megalapították a Deepcode nevű vállalkozást, amellyel hosszú távon olyan alkalmazásokat készítsenek, amelyek az intellektuálisan nehéz kihívásokat jobban megoldhatják, mint az emberek.