Mikä on ohjelmistokehityksen tulevaisuus?

Mikä on ohjelmistokehityksen tulevaisuus?

Vuosien ajan ohjelmistokehitys tehtiin manuaalisesti.

Kurssi on pysynyt pohjimmiltaan FORTRANin korttien lävistämisestä hajautettujen menetelmien luomiseen Go: ssa: ajattele intensiivisesti asiaa, tuota fiksu lähestymistapa (eli algoritmi) ja anna koneelle pari käskyä toteutettavaksi.

Tämä lähestymistapa, jota voidaan kutsua "eksplisiittiseksi ohjelmoinniksi", oli avain kaikkeen keskusyksiköstä älypuhelimeen Internet-puomista matkapuhelimen vallankumoukseen. Se on auttanut luomaan uusia markkinoita ja tehnyt yrityksistä, kuten Apple, Microsoft, Google ja Facebook kotitalousnimet.

Ja silti jotain puuttuu. Muinaisen Computing Age -kirjailijoiden suunnittelemat älykkäät järjestelmät, Philip Dickin robottitaksilla George Lucasin C-3PO: lle, jatkavat tieteiskirjallisuutta. Näennäisesti yksinkertaiset tehtävät uhmaavat itsepäisesti automaatiota jopa loistavimmat tietotekniikat. Asiantuntijat syyttävät Piilaaksoa näiden haasteiden edessä siirtymisestä pois perusedellytyksistä keskittymiseen vähitellen tai villityshakuisiin yrityksiin.

Se tietysti muuttuu. Waymon itseajettavat autot käyttivät viime aikoina kahdeksan miljoonaa matkaa. Vaikka Microsoftin kääntämisohjelma ei ole sujuva kuuden miljoonan viestintämuodon suhteen, se soveltuu ihmisen tarkkuustasolle kiinasta englantiin tehtävissä. Ja startupit ovat murtamassa uutta tietyissä paikoissa, kuten älykkäät avustajat, teollisuusautomaatio, petosten havaitseminen ja monet muut.

Yksilöllisesti nämä uudet tekniikat lupaavat vaikuttaa jokapäiväiseen elämäämme. Yhdessä ne edustavat merimuutosta tavassa, jolla ajattelemme ohjelmistokehitystä - ja myös merkittävän poikkeaman eksplisiittisestä ohjelmointimallista.

Sydämen läpimurto, joka tukee näitä edistysaskeleita, on syvä oppiminen, tekoälyn strategia, joka on motivoitunut aivojesi rakentamisesta. Suhteellisen kapean tiedon arviointityökaluna alkanut toimii nyt lähellä yleistä tietojenkäsittelyjärjestelmää. Se ylittää perinteiset ohjelmistot useissa työpaikoissa ja saattaa vihdoin toimittaa älykkäät järjestelmät, jotka ovat jo pitkään välttäneet tietojenkäsittelytietäjiä.

Syvällisen oppihyppyn keskellä useimmat tarkkailijat kuitenkin jättävät huomiotta suurimman syyn olla positiivinen tulevaisuuden suhteen: syvällinen oppiminen vaatii koodereita kirjoittamaan tuskin mitään koodia. Sen sijaan, että luotettaisiin ennalta asetettuihin sääntöihin tai jos-sitten-laskuihin, syvällinen oppimisohjelma kirjoittaa periaatteet automaattisesti aiempien esimerkkien perusteella. Ohjelmistokehittäjän on tehtävä vain "karkea luuranko" , muotoilemalla Andrej Karpathy Teslasta, ja anna tietokoneiden tehdä loput

Tässä uudessa universumissa ohjelmoijien ei tarvitse enää suunnitella erityistä algoritmia jokaiselle ongelmalle. Suurin osa työstä keskittyy pikemminkin haluttua käyttäytymistä vastaavien tietojoukkojen luomiseen ja koulutusprosessin hallintaan. Pete Warden Googlen TensorFlow-tiimistä huomautti tämän jo vuonna 2014: "Aiemmin olin kooderi", hän kirjoitti. " Opetan tietokoneita luomaan omia sovelluksiaan."

Jälleen: Ohjelmointimalli, joka ajaa sovellusten tärkeimmät parannukset, ei vaadi merkittävää määrää todellista ohjelmointia.

Mitä tämä merkitsee ohjelmistokehityksen tulevaisuudelle?

Ohjelmointi ja tietojenkäsittely lähestyvät yhä enemmän

Useimmat sovellukset eivät sisällä "end-to-end " -opetusohjelmia lähitulevaisuudessa. Se luottaa tietomalleihin tarjotakseen ydintunnistuskapasiteetin ja eksplisiittisen logiikan vuorovaikutuksessa käyttäjien kanssa ja kääntää tuloksia. Kysymys "pitäisikö minun käyttää tekoälyä tai edes tavanomaista lähestymistapaa tähän ongelmaan?" Kehittyy yhä enemmän. Älykkäiden järjestelmien suunnittelu vaatii molempien hallintaa.

Tekoälyn ammattilaiset ovat todennäköisesti rock-tähtiä

Tekoälyn tekeminen on vaikeaa. Sijoittajat tekoälyohjelmoijat - paitsi loistavat tutkijat ja tutkijat - ovat yksi arvokkaimmista työkaluista ohjelmistoyrityksille myöhemmin. Tämä tuo mukanaan hieman ironiaa perinteisille koodereille, jotka ovat tehneet automaattista työtä eri teollisuudenaloilla 1950-luvulta lähtien ja jotka joutuvat tällä hetkellä kohtaamaan omien työpaikkojensa osittaisen automatisoinnin. Palvelujen vaatimus ei varmasti vähene, mutta ihmisten, jotka haluavat pysyä eturintamassa, on tarkistettava vesistöjä tekoälystä terveellisen annoksen skeptisyydellä.

AI-työkaluketju on rakennettava

Lyftin koneoppimisen johtava Gil Arditi sanoi sen parhaiten. "Koneoppiminen on nyt alkukeittokaudella. Se on hyvin samanlainen kuin 80-luvun alun tai 70-luvun lopun tietokanta. Sinun täytyi tulla maailman asiantuntija saadaksesi nämä tuotteet toimimaan. " Tutkimukset osoittavat myös, että monet tekoälymallit ovat ei ole helppo selittää, merkityksetön pettää ja altis ennakkoluuloille. Työkalut näiden ongelmien ratkaisemiseksi ovat välttämättömiä tekoälyn kehittäjien potentiaalin vapauttamiseksi.

Meidän kaikkien on tutustuttava arvaamattomaan käyttäytymiseen

Tietokoneen "koulutus" käsite sopii sekä ohjelmoijille että käyttäjille. Se vahvistaa vaikutelmaa, että tietokoneet tekevät tarkalleen mitä sanomme ja että samanlaiset tulot tuottavat jatkuvasti samanlaisia lähtöjä. Tekoälyversiot sen sijaan toimivat kuin hengitys, elävät järjestelmät. Uusi työkalu saa heidät käyttäytymään enemmän kuin eksplisiittiset ohjelmat, erityisesti turvallisuuden kannalta kriittisissä kokoonpanoissa, mutta vaarana on menettää näiden järjestelmien arvo - kuten AlphaGon "ulkomaalaisten" liikkeet - jos suojakaiteet sijoitettaisiin liian tiukasti. Kun kasvamme ja käytämme tekoälyohjelmistoja, meidän on ymmärrettävä todennäköisyystulokset ja omaksuttava ne.

Toivottavasti tekoälyn haltuunotto on lähellä nollaa.