Hvad er fremtiden for softwareudvikling?

Hvad er fremtiden for softwareudvikling?

I årevis blev softwareudvikling udført manuelt.

Fra stansekort i FORTRAN til komponering af distribuerede metoder i Go har disciplinen stort set været den samme: tænk intenst på et problem, lav en klog tilgang (dvs. algoritme) og giv maskinen et par instruktioner at implementere.

Denne tilgang, der kan kaldes "eksplicit programmering", var nøglen til alt fra mainframe til smartphone fra internet-boom til mobilrevolutionen. Det har været med til at skabe nye markeder og skabt virksomheder som Apple, Microsoft, Google og Facebook husstandsnavne.

Og alligevel mangler noget. De intelligente systemer, der er forestillet af gamle computertidsforfattere, af Philip Dicks robottaxi til George Lucas's C-3PO, fortsætter science fiction. Tilsyneladende enkle opgaver udfordrer stædig automatisering af selv de mest geniale computerforskere. Pundits beskylder Silicon Valley på grund af disse udfordringer for at vende sig væk fra grundlæggende fremskridt for at fokusere på inkrementelle eller fad-drevne virksomheder.

Det vil naturligvis ændre sig. Waymos selvkørende biler brugte for nylig otte millioner kilometer tilbagelagte. Selvom Microsofts oversættelsesmotor ikke er flydende i seks millioner former for kommunikation, kan den passe menneskelige nøjagtighedsniveauer i kinesisk-til-engelsk opgaver. Og nystartede virksomheder bryder nye baner på steder som intelligente assistenter, industriel automatisering, afsløring af svig og mange andre.

Individuelt lover disse nye teknologier at påvirke vores hverdag. Samlet repræsenterer de en havændring i den måde, vi tænker på softwareudvikling - og også en bemærkelsesværdig afvigelse fra den eksplicitte programmeringsmodel.

Hjertets gennembrud, der understøtter hvert af disse fremskridt, er dyb læring, en strategi for kunstig intelligens , der er motiveret af din hjernes konstruktion. Hvad der startede som et relativt snævert dataevalueringsværktøj, fungerer nu som noget i nærheden af et generelt computersystem. Det overgår traditionel software på tværs af en bred vifte af job og kan endelig levere de intelligente systemer, der længe har undgået computerforskere - bedrifter, som pressen undertiden blæser ud af proportioner.

Midt i den dybe indlæringshype overser de fleste observatører dog den største grund til at være positive over for dens fremtid: dyb læring kræver, at kodere næsten ikke skriver nogen kode. I stedet for at stole på forudindstillede regler eller hvis-så-fakturaer, skriver et dyb læringsprogram automatisk principper baseret på tidligere eksempler. En softwareudvikler skal kun lave et "groft skelet" for at omskrive Andrej Karpathy fra Tesla og derefter lade computere gøre resten af

I dette nye univers behøver programmører ikke længere at designe en speciel algoritme til ethvert problem. Det meste arbejde koncentrerer sig snarere om at generere datasæt, der afspejler ønsket adfærd og styre træningsprocessen. Pete Warden fra Googles TensorFlow-team påpegede dette allerede i 2014: "Jeg plejede at være en koder," skrev han. " Jeg lærer computere at komponere deres egne apps."

Igen: programmeringsmodellen, der driver de vigtigste forbedringer i applikationer i dag, kræver ikke en betydelig mængde faktisk programmering.

Hvad betyder dette for fremtiden for softwareudvikling?

Programmering og datalogi vil i stigende grad konvergere

De fleste applikationer inkluderer ikke "end-to-end " læringsprogrammer i en overskuelig fremtid. Det vil stole på datamodeller for at tilbyde kernekognitionskapacitet og eksplicit logik til interface med brugere og oversætte resultater. Spørgsmålet "skal jeg bruge AI eller endda en konventionel tilgang til dette problem?" Vil i stigende grad udvikle sig. Design af intelligente systemer kræver kontrol af begge.

AI-professionelle vil sandsynligvis være rockstjernerne

At gøre AI er svært. Rank-and-file AI-programmører - ikke kun strålende akademikere og forskere - vil være et af de mest værdifulde værktøjer til softwarevirksomheder senere. Dette bærer en smule ironi for traditionelle kodere, der har automatisk arbejde i forskellige brancher, fordi 1950'erne og der i øjeblikket står over for den delvise automatisering af deres egne job. Kravet til deres tjenester vil bestemt ikke falde, men enkeltpersoner, der ønsker at forblive i spidsen, skal med en sund dosis skepsis kontrollere vandet fra AI.

AI-værktøjskæden skal konstrueres

Gil Arditi, leder af maskinlæring i Lyft, sagde det bedst. "Maskinindlæring er nu i den oprindelige suppes periode. Det ligner meget databasen fra begyndelsen af 80'erne eller slutningen af 70'erne. Du var nødt til at blive en verdensspecialist for at få disse varer til at fungere. " Undersøgelser viser også, at mange AI-modeller ikke let at forklare, ubetydelig at bedrage og modtagelig for fordomme. Værktøjer til at løse disse problemer, blandt andre, vil være afgørende for at frigøre potentialet hos AI-udviklere.

Vi har alle brug for at blive fortrolig med uforudsigelig opførsel

Konceptet med en pc "uddannelse" er velegnet til både programmører og brugere. Det forstærker indtrykket af, at computere gør præcis, hvad vi siger, og at lignende input konsekvent producerer lignende output. AI-versioner fungerer derimod som vejrtrækning, levende systemer. Nyt værktøj får dem til at opføre sig mere som eksplicitte programmer, især i sikkerhedskritiske konfigurationer, men vi risikerer at miste værdien af disse systemer - som AlphaGos "fremmede" bevægelser - hvis vi placerer beskyttelseslisterne for tæt. Når vi vokser og bruger AI-software, skal vi forstå og omfavne sandsynlige resultater.

Og håber sandsynligheden for AI-overtagelse er næsten nul.