Softwareontwikkeling gebeurde jarenlang handmatig.
Van ponskaarten in FORTRAN tot het samenstellen van gedistribueerde methoden in Go, de discipline is in wezen hetzelfde gebleven: denk intensief na over een probleem, bedenk een slimme aanpak (dwz een algoritme) en geef de machine een paar instructies om te implementeren.
Deze benadering, die 'expliciet programmeren' kan worden genoemd, was de sleutel tot alles, van het mainframe tot de smartphone, van de internetboom tot de mobiele revolutie. Het heeft geholpen nieuwe markten te creëren en bedrijven als Apple, Microsoft, Google en Facebook bekende namen te maken.
En toch zal er iets ontbreken. De intelligente systemen die de auteurs uit het oude Computing Age voor ogen hadden, door de robottaxi van Philip Dick naar de C-3PO van George Lucas, zetten de sciencefiction voort. Ogenschijnlijk eenvoudige taken trotseren koppig automatisering door zelfs de meest briljante computerwetenschappers. Deskundigen beschuldigen Silicon Valley er, in het licht van deze uitdagingen, van af te wijken van fundamentele vorderingen en zich te concentreren op incrementele of door rage gedreven bedrijven.
Dat gaat natuurlijk veranderen. De zelfrijdende auto's van Waymo hebben de laatste tijd acht miljoen kilometer afgelegd. De vertaalmachine van Microsoft, hoewel hij niet vloeiend is in zes miljoen communicatievormen, kan voldoen aan de menselijke nauwkeurigheidsniveaus bij taken van Chinees naar Engels. En startups zijn baanbrekend op plaatsen als intelligente assistenten, industriële automatisering, fraudedetectie en vele anderen.
Individueel beloven deze nieuwe technologieën invloed te hebben op ons dagelijks leven. Samen vertegenwoordigen ze een enorme verandering in de manier waarop we denken over softwareontwikkeling - en ook een opmerkelijke afwijking van het expliciete programmeermodel.
De hartdoorbraak die elk van deze vorderingen ondersteunt, is deep learning, een kunstmatige-intelligentiestrategie die wordt gemotiveerd door de constructie van je hersenen. Wat begon als een relatief beperkt instrument voor gegevensevaluatie, dient nu als iets in de buurt van een algemeen computersysteem. Het presteert beter dan traditionele software bij een breed scala aan taken en kan eindelijk de intelligente systemen leveren die computerwetenschappers lang zijn ontgaan - prestaties die de pers soms buiten proportie blaast.
Temidden van de diepgaande leerhype zien de meeste waarnemers echter de grootste reden over het hoofd om positief te zijn over de toekomst ervan: voor diepgaand leren hoeven codeerders nauwelijks code te schrijven. In plaats van te vertrouwen op vooraf ingestelde regels of als-dan-facturen, schrijft een deep learning-programma automatisch principes op basis van eerdere voorbeelden. Een softwareontwikkelaar hoeft alleen maar een 'ruw skelet' te maken, om Andrej Karpathy van Tesla te parafraseren, en de computers de rest van het werk te laten doen.
In dit nieuwe universum hoeven programmeurs niet langer voor elk probleem een speciaal algoritme te ontwerpen. Het meeste werk concentreert zich veeleer op het genereren van datasets die het gewenste gedrag weerspiegelen en het beheren van het trainingsproces. Pete Warden van het TensorFlow-team van Google merkte dit al in 2014 op: "Ik was vroeger programmeur" , schreef hij. " Ik leer computers hun eigen apps samen te stellen."
Nogmaals: het programmeermodel dat de belangrijkste verbeteringen in applicaties aandrijft, vereist niet veel daadwerkelijke programmering.
Wat betekent dit voor de toekomst van softwareontwikkeling?
Programmering en datawetenschap zullen steeds meer samenkomen
De meeste toepassingen zullen in de nabije toekomst geen "end-to-end " leerprogramma's bevatten. Het zal vertrouwen op datamodellen om kerncognitiecapaciteiten te bieden en expliciete logica om met gebruikers te communiceren en resultaten te vertalen. De vraag "moet ik gebruik maken van AI of zelfs een conventionele benadering van dit probleem?" Zal zich steeds meer ontwikkelen. Voor het ontwerpen van intelligente systemen is controle over beide nodig.
AI-professionals zullen waarschijnlijk de rocksterren zijn
AI doen is moeilijk. Rank-and-file AI-programmeurs - niet alleen briljante academici en onderzoekers - zullen later een van de meest waardevolle tools voor softwarebedrijven zijn. Dit is een beetje ironisch voor traditionele codeerders, die sinds de jaren vijftig automatisch in verschillende industrieën werken en die momenteel te maken hebben met de gedeeltelijke automatisering van hun eigen banen. De behoefte aan hun diensten zal zeker niet afnemen, maar individuen die voorop willen blijven lopen, moeten, met een gezonde dosis scepsis, de wateren van AI controleren.
De AI-toolketen moet worden geconstrueerd
Gil Arditi, hoofd machine learning bij Lyft, zei het het beste. "Machine learning bevindt zich nu in de oersoepperiode. Het lijkt erg op de database uit de vroege jaren 80 of de late jaren 70. Je moest een wereldspecialist worden om deze items aan het werk te krijgen. " Studies tonen ook aan dat veel AI-modellen dat wel zijn. niet eenvoudig uit te leggen, onbeduidend om te bedriegen en vatbaar voor vooroordelen. Tools om onder meer deze problemen aan te pakken, zijn essentieel om het potentieel van AI-ontwikkelaars te ontsluiten.
We moeten allemaal vertrouwd raken met onvoorspelbaar gedrag
Het concept van een pc "educatie" is geschikt voor zowel programmeurs als gebruikers. Het versterkt de indruk dat computers precies doen wat we zeggen en dat vergelijkbare inputs consistent vergelijkbare outputs produceren. AI-versies werken daarentegen als ademhalingssystemen, levende systemen. Nieuwe tooling zal ervoor zorgen dat ze zich meer gedragen als expliciete programma's, vooral in veiligheidskritische configuraties, maar we lopen het risico de waarde van deze systemen te verliezen - zoals AlphaGo's "buitenaardse" bewegingen - als we de vangrails te strak plaatsen. Naarmate we groeien en AI-software gebruiken, moeten we probabilistische resultaten begrijpen en omarmen.
En ik hoop dat de kans op een overname van AI bijna nul is.