Blogpost

Machine learning on source code

Machine learning, AI… het is niet meer weg te denken uit ons dagdagelijks leven en al zeker niet meer uit onze toekomst. Software Crafters van Continuum waren onlangs aanwezig op dotAI. dot conferences streven het niveau van TED na in verscheidene disciplines zoals java, swift en dus ook Artificiële Intelligentie.
Op dot.ai waren zeer ervaren sprekers (e.g. Amazon, Google) aanwezig in een geweldige setting in een van de mooiste steden van Europa, namelijk Parijs. Op zo’n event konden wij uiteraard niet ontbreken. Onze consultants ter plaatse brengen verslag uit over de verschillende talks. In deze post is Dieter aan de beurt.

Dieter’s favoriet

image

Vadim Markovtsev is een google developer expert  in machine learning en de lead machine learning engineer bij source{d}.
Dit bedrijf bouwt open-source componenten die code analyse en machine learning bouwen op basis van source code.
Op dot.ai kwam hij hier meer over vertellen.

 

 

 

 

Het probleem…

De laatste jaren zijn de code editors steeds beter geworden. Dit is een van de grootste beweegredenen tussen editors (e.g. Sublime Text, Intellij). Deze editors doen erg veel voor ons, waaronder het automatisch aanvullen van woorden. Dit levert een enorme tijdswinst op voor zowat elke developer, tenzij deze slechte hints geeft. Hoewel veel developers graag hebben dat ze geholpen worden, storen we ons nog steeds aan typfouten die bewaard worden of dat de editors er niet in slagen om ‘get’ als suggestie te geven zodra we de letter ‘g’ typen zoals in volgend voorbeeld.

image dotai

Machine learning op Source Code als oplossing?

Machine Learning on source Code (#MLOnCode) kan een oplossing bieden voor deze slechte predicties. Vaak wordt er zelfs helemaal geen voorspelling gedaan en als er al eentje gedaan wordt, beperkt zich dit vaak tot suggesties met betrekking op de geschreven source code in het project. Het grote probleem is het ontbreken van trainingsdata.
Net hiervoor heeft Vadim Markovtsev een zeer elegante oplossing.
Ze gebruiken hiervoor alle beschikbare, relevante code op github. Voorlopig is dit nog steeds de grootste bron van open source code (afhankelijk van de reactie van de markt op de overname van Microsoft).

Is het dat dan?

Het stopt niet bij het voorspellen van methodes, klassen of variabelen. Uit al deze github data kan men ook best practices afleiden. Als we deze ervaren spreker mogen geloven, staat ons niets in de weg om in de toekomst code reviews door computers te laten doen. Vaak komen hier steeds dezelfde (al dan niet terechte) opmerkingen naar boven.
Het kan dus statische code analyses aanvullen met zeer menselijke constructieve feedback en het leven van developers aangenamer maken. Dit sluit zeer goed aan bij een gezonde visie op wat Machine Learning kan betekenen voor ieder van ons in de toekomst. We moeten het zien als een service, waarbij we repetitieve dingen kunnen delegeren naar computers in de plaats van de mens.

Ask a programmer to review 10 lines of code, he’ll find 10 issues.
Ask him to do 500 lines and he’ll say it looks good.

Sluit jij je aan bij deze visie of ga je graag met ons in debat?
Of misschien is werken bij Continuum iets voor jou! Check onze vacatures!