Intel Labs krijgt onderzoek naar machineprogrammering voor het automatiseren van softwareontwikkeling, het verminderen van codeerfouten en het oplossen van tekorten aan vaardigheden
Intel heeft een interessant programma opgezet in zijn Intel Labs, de hub van het bedrijf voor experimentele projecten met langetermijnperspectieven. Het Machine Programming Research (MPR) -project zal proberen de softwareontwikkeling voor complexe platforms te automatiseren en tegelijkertijd codeerfouten te verminderen. De belangrijkste redenering achter het project lijkt het toenemende tekort te zijn aan opgeleide of deskundige programmeurs die op betrouwbare en consistente wijze complexe softwarecode kunnen schrijven.
Het MPR-project van Intel Labs zal meerdere vormen van machine learning en andere automatische methoden gebruiken om een platform te creëren dat in staat is om zijn eigen software te maken. Het uiteindelijke doel van MPR lijkt het ontwikkelen van een volledig geautomatiseerd platform dat in staat is om software en code te schrijven met minimale menselijke tussenkomst en fouten. Het project lijkt echter bedoeld te zijn voor mensen die niet kunnen coderen. De MPR zou uiteindelijk mensen moeten helpen zonder programmeervaardigheden, maar met voldoende creativiteit, om hun gewenste software of platform te bouwen zonder ooit zelf ook maar één regel code te schrijven.
Intel Labs krijgt onderzoek naar machineprogrammering doet hoge beloften over realistische problemen bij softwareontwikkeling:
Software is diep geïntegreerd in elk aspect van de moderne beschaving. Het ontwikkelen en onderhouden van software is echter een tijdrovend en foutgevoelig proces, merkt Justin op. Hij beweert dat "machineprogrammering", waarbij de macht om software te maken en te onderhouden in ieders hand ligt, het complexe proces aanzienlijk zou kunnen vereenvoudigen. Het grootste probleem binnen het Software Development-segment is de beschikbaarheid van toegewijde, ervaren en betrouwbare senior developers.
Simpel gezegd, er is een ernstige discrepantie tussen de groeiende behoefte van de branche en het vermogen van de echte wereld om geschoolde professionals te bieden. Justin merkt op dat het in de nabije toekomst steeds moeilijker, misschien zelfs onmogelijk zal worden "om ontwikkelaars te vinden die correct, efficiënt en veilig kunnen programmeren op al die hardware."
Machineprogrammering maakt gebruik van meerdere automatische programmeertechnieken die variëren van nauwkeurige (bijvoorbeeld formele programmasynthese) tot probabilistische (bijvoorbeeld differentieerbare programmering) methoden. Het gebruikt en leert ook van alles wat Intel en andere hardwarefabrikanten tot nu toe in hardware en software hebben ontwikkeld.
De twee meest noodzakelijke aspecten van softwareontwikkeling zijn betrouwbaarheid en consistentie. Zoals Windows 10 OS-updates hebben duidelijk en routinematig aangegeven, nauwkeurigheid en prestatieverbeteringen komen bijna altijd met bugs en rare gedragspatronen. MPR heeft tot doel veelvoorkomende bugs, fouten en andere problemen die regelmatig in de software voorkomen, te onderzoeken en op te lossen. De volgende stap zou natuurlijk zijn om ze automatisch op te lossen, merkte Justin op.
Naast het verminderen van veelvoorkomende bugs in software, zal het MPR-programma van Intel ook werken aan het verbeteren en uiteindelijk verminderen van de hoeveelheid code die in software gaat. Door coderegels te elimineren, zou de software slanker, schoner en efficiënter worden. Bovendien, met minder code in de software, zou de nauwkeurigheid ook verbeteren.
Het lijkt misschien dat Intel erop uit is om banen in Software Development te elimineren. Justin merkte echter categorisch op dat het MPR-programma van Intel Lab niet bedoeld is om het personeelsbestand te verminderen. Integendeel, MPR staat klaar om meerdere nieuwe banen en werkkansen te creëren. Bovendien is de kernagenda van MPR in wezen om de professionals vrij te maken om complexere componenten van softwareontwikkeling op zich te nemen. Dit komt simpelweg omdat MPR uiteindelijk de gewone, alledaagse aspecten van programmeren zou afhandelen. Nu de instapmodellen van software worden beheerd, kunnen programmeurs zich concentreren op het beter integreren van meerdere platforms zoals machine learning en formele technieken, heterogene hardware en vele programmeertalen in de softwareplatforms.