Toekoms van sagteware-ontwikkeling: Toekoms van rekenaars P2

BEELDKREDIET: Quantumrun

Toekoms van sagteware-ontwikkeling: Toekoms van rekenaars P2

    In 1969 het Neil Armstrong en Buzz Aldrin internasionale helde geword nadat hulle die eerste mense was wat op die maan getrap het. Maar terwyl hierdie ruimtevaarders die helde op kamera was, is daar duisende onbesonge helde wat sonder hul betrokkenheid daardie eerste bemande maanlanding nie onmoontlik sou gewees het nie. 'n Paar van hierdie helde was die sagteware-ontwikkelaars wat die vlug gekodeer het. Hoekom?

    Wel, die rekenaars wat destyds bestaan ​​het, was baie eenvoudiger as wat hulle vandag is. Trouens, die gemiddelde persoon se verslete slimfoon is verskeie grootteordes kragtiger as enigiets aan boord van die Apollo 11-ruimtetuig (en die hele 1960's NASA vir die saak). Boonop is rekenaars destyds gekodeer deur gespesialiseerde sagteware-ontwikkelaars wat sagteware in die mees basiese masjientale geprogrammeer het: AGC Assembly Code of eenvoudig, 1'e en 0'e.

    Vir konteks, een van hierdie onbesonge helde, die Apollo-ruimteprogram se direkteur van die sagteware-ingenieurswese-afdeling, Margaret Hamilton, en haar span moes 'n berg kode (foto hieronder) skryf dat die gebruik van vandag se programmeertale geskryf kon word met 'n fraksie van die moeite.

    (Op die foto hierbo staan ​​Margaret Hamilton langs 'n stapel papier wat die Apollo 11-sagteware bevat.)

    En anders as deesdae waar sagteware-ontwikkelaars vir ongeveer 80-90 persent van moontlike scenario's kodeer, vir die Apollo-missies, moes hul kode alles verantwoord. Om dit in perspektief te plaas, het Margaret self gesê:

    "Weens 'n fout in die kontrolelys-handleiding is die rendezvous-radarskakelaar in die verkeerde posisie geplaas. Dit het veroorsaak dat dit foutiewe seine na die rekenaar gestuur het. Die gevolg was dat die rekenaar gevra is om al sy normale funksies vir landing uit te voer. terwyl hy 'n ekstra vrag vals data ontvang het wat 15% van sy tyd opgebruik het. Die rekenaar (of eerder die sagteware daarin) was slim genoeg om te erken dat dit gevra word om meer take uit te voer as wat dit behoort te verrig. Dit het toe gestuur 'n alarm uit, wat vir die ruimtevaarder beteken het, is ek oorlaai met meer take as wat ek op hierdie tydstip behoort te doen, en ek gaan net die belangriker take behou, maw die wat nodig is vir landing ... Eintlik , is die rekenaar geprogrammeer om meer te doen as om fouttoestande te herken. 'n Volledige stel herstelprogramme is in die sagteware opgeneem. Die sagteware se aksie, in hierdie geval, was om take met laer prioriteit uit te skakel en die belangrikstes te hervestig ... As die rekenaar nie het niehet hierdie probleem herken en herstelaksie geneem, ek twyfel of Apollo 11 die suksesvolle maanlanding sou gewees het.”

    - Margaret Hamilton, Direkteur van Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Brief aan Datamatisering, Maart 1, 1971

    Soos vroeër aangedui, het sagteware-ontwikkeling sedert daardie vroeë Apollo-dae ontwikkel. Nuwe hoëvlak-programmeertale het die vervelige proses van kodering met 1'e en 0'e vervang na kodering met woorde en simbole. Funksies soos om 'n ewekansige getal te genereer wat vroeër dae van kodering vereis het, word nou vervang deur 'n enkele opdragreël te skryf.

    Met ander woorde, sagteware-kodering het met elke verbygaande dekade toenemend outomaties, intuïtief en menslik geword. Hierdie eienskappe sal net in die toekoms voortduur en die evolusie van sagteware-ontwikkeling lei op maniere wat 'n diepgaande impak op ons daaglikse lewens sal hê. Dit is wat hierdie hoofstuk van die Toekoms van rekenaars reeks sal verken.

    Sagteware-ontwikkeling vir die massas

    Die proses om die behoefte om 1'e en 0'e (masjientaal) te kodeer met woorde en simbole (mensetaal) te vervang, word na verwys as die proses om lae abstraksies by te voeg. Hierdie abstraksies het gekom in die vorm van nuwe programmeertale wat komplekse of algemene funksies outomatiseer vir die veld waarvoor hulle ontwerp is. Maar gedurende die vroeë 2000's het nuwe maatskappye na vore gekom (soos Caspio, QuickBase en Mendi) wat begin bied het wat genoem word geen-kode of lae-kode platforms.

    Dit is gebruikersvriendelike, aanlyn dashboards wat nie-tegniese professionele persone in staat stel om pasgemaakte toepassings te skep wat aangepas is vir die behoeftes van hul besigheid deur visuele blokke kode (simbole/grafika) bymekaar te maak. Met ander woorde, in plaas daarvan om 'n boom af te kap en dit in 'n aantrekkas te maak, bou jy dit met voorafgemaakte dele van Ikea.

    Alhoewel die gebruik van hierdie diens steeds 'n sekere vlak van rekenaarvaardigheid vereis, het jy nie meer 'n rekenaarwetenskap-graad nodig nie, gebruik dit. Gevolglik maak hierdie vorm van abstraksie die opkoms van miljoene nuwe "sagteware-ontwikkelaars" in die korporatiewe wêreld moontlik, en dit stel baie kinders in staat om op 'n vroeër ouderdom te leer hoe om te kodeer.

    Herdefinieer wat dit beteken om 'n sagteware-ontwikkelaar te wees

    Daar was 'n tyd toe 'n landskap of 'n persoon se gesig net op 'n doek vasgevang kon word. 'n Skilder sal jare lank as 'n vakleerling moet studeer en oefen, die kunswerk van skilder moet leer—hoe om kleure te meng, watter gereedskap die beste is, die korrekte tegnieke om 'n spesifieke beeld uit te voer. Die koste van die ambag en die jarelange ondervinding wat nodig was om dit goed uit te voer, het ook meegebring dat skilders min was.

    Toe is die kamera uitgevind. En met die klik van 'n knoppie is landskappe en portrette in 'n sekonde vasgevang wat andersins dae tot weke sou neem om te verf. En namate kameras verbeter, goedkoper geword het en volop geword het tot 'n punt waar hulle nou ingesluit is by selfs die mees basiese slimfoon, het die vaslegging van die wêreld om ons 'n algemene en toevallige aktiwiteit geword waaraan almal nou deelneem.

    Namate abstraksies vorder en nuwe sagtewaretale steeds meer roetine-sagteware-ontwikkelingswerk outomatiseer, wat sal dit beteken om 'n sagteware-ontwikkelaar oor 10 tot 20 jaar te wees? Om hierdie vraag te beantwoord, kom ons loop deur hoe toekomstige sagteware-ontwikkelaars waarskynlik te werk sal gaan om môre se toepassings te bou:

    *Eerstens sal alle gestandaardiseerde, herhalende koderingswerk verdwyn. In die plek daarvan sal 'n groot biblioteek van voorafbepaalde komponentgedrag, UI's en datavloeimanipulasies (Ikea-onderdele) wees.

    *Soos vandag, sal werkgewers of entrepreneurs spesifieke doelwitte en aflewerbares definieer vir sagteware-ontwikkelaars om deur gespesialiseerde sagtewaretoepassings of platforms uit te voer.

    *Hierdie ontwikkelaars sal dan hul uitvoeringstrategie uitstippel en begin om vroeë konsepte van hul sagteware te prototipeer deur toegang tot hul komponentbiblioteek te verkry en visuele koppelvlakke te gebruik om hulle aan mekaar te koppel—visuele koppelvlakke wat verkry word deur augmented reality (AR) of virtual reality (VR).

    *Gespesialiseerde kunsmatige intelligensie (KI)-stelsels wat ontwerp is om die doelwitte en aflewerings wat deur hul ontwikkelaar se aanvanklike konsepte geïmpliseer word, te verstaan, sal dan die opgestelde sagteware-ontwerp verfyn en alle gehalteversekeringstoetse outomatiseer.

    *Op grond van die resultate sal die KI dan 'n menigte vrae aan die ontwikkelaar vra (waarskynlik deur verbale, Alexa-agtige kommunikasie), om die projek se doelwitte en aflewerbares beter te verstaan ​​en te definieer en te bespreek hoe die sagteware in verskeie scenario's moet optree en omgewings.

    *Gegrond op die ontwikkelaar se terugvoer, sal die KI geleidelik sy of haar voorneme leer en die kode genereer om die projekdoelwitte te weerspieël.

    *Hierdie heen en weer, mens-masjien samewerking sal weergawe na weergawe van die sagteware herhaal totdat 'n voltooide en bemarkbare weergawe gereed is vir interne implementering of vir verkoop aan die publiek.

    *Trouens, hierdie samewerking sal voortgaan nadat die sagteware aan werklike gebruik blootgestel is. Soos eenvoudige foute gerapporteer word, sal die KI dit outomaties regstel op 'n manier wat die oorspronklike, gewenste doelwitte weerspieël wat tydens die sagteware-ontwikkelingsproses uiteengesit is. Intussen sal ernstiger foute 'n mens-KI-samewerking vereis om die probleem op te los.

    Oor die algemeen sal toekomstige sagteware-ontwikkelaars minder fokus op die 'hoe' en meer op die 'wat' en 'waarom'. Hulle sal minder vakman en meer argitek wees. Programmering sal 'n intellektuele oefening wees wat mense sal vereis wat die bedoeling en uitkomste metodies kan kommunikeer op 'n manier wat 'n KI kan verstaan ​​en dan 'n voltooide digitale toepassing of platform outokodeer.

    Kunsmatige intelligensie-gedrewe sagteware-ontwikkeling

    Gegewe die afdeling hierbo, is dit duidelik dat ons voel dat KI 'n toenemend sentrale rol sal speel op die gebied van sagteware-ontwikkeling, maar die aanvaarding daarvan is nie bloot met die doel om sagteware-ontwikkelaars doeltreffender te maak nie, daar is ook sakekragte agter hierdie tendens.

    Mededinging tussen sagteware-ontwikkelingsmaatskappye word met elke jaar hewiger. Sommige maatskappye ding mee deur hul mededingers uit te koop. Ander ding mee op sagteware-differensiasie. Die uitdaging met laasgenoemde strategie is dat dit nie maklik verdedigbaar is nie. Enige sagteware-kenmerk of verbetering wat 'n maatskappy aan sy kliënte bied, kan sy mededingers met relatiewe gemak kopieer.

    Om hierdie rede is die dae verby wanneer maatskappye elke een tot drie jaar nuwe sagteware vrystel. Deesdae het maatskappye wat op differensiasie fokus 'n finansiële aansporing om nuwe sagteware, sagteware regstellings en sagteware-kenmerke op 'n toenemend gereelde basis vry te stel. Hoe vinniger maatskappye innoveer, hoe meer dryf hulle kliëntelojaliteit en verhoog die koste om na mededingers oor te skakel. Hierdie verskuiwing na die gereelde aflewering van inkrementele sagteware-opdaterings is 'n neiging wat "deurlopende aflewering" genoem word.

    Ongelukkig is deurlopende aflewering nie maklik nie. Skaars 'n kwart van vandag se sagtewaremaatskappye kan die vrystellingskedule uitvoer wat van hierdie tendens vereis word. En dit is hoekom daar soveel belangstelling is om KI te gebruik om dinge te bespoedig.

    Soos vroeër uiteengesit, sal KI uiteindelik 'n toenemende samewerkende rol speel in die opstel en ontwikkeling van sagteware. Maar op kort termyn gebruik maatskappye dit om gehalteversekering (toets)prosesse vir sagteware toenemend te outomatiseer. En ander maatskappye eksperimenteer met die gebruik van KI om sagtewaredokumentasie te outomatiseer - die proses om die vrystelling van nuwe kenmerke en komponente op te spoor en hoe dit tot op die kodevlak vervaardig is.

    Oor die algemeen sal KI toenemend 'n sentrale rol in sagteware-ontwikkeling speel. Daardie sagtewaremaatskappye wat die gebruik daarvan vroeg bemeester, sal uiteindelik eksponensiële groei bo hul mededingers geniet. Maar om hierdie KI-winste te verwesenlik, sal die bedryf ook vooruitgang in die hardeware-kant van sake moet sien - die volgende afdeling sal op hierdie punt uitbrei.

    Sagteware as 'n diens

    Allerlei kreatiewe professionele persone gebruik Adobe-sagteware wanneer hulle digitale kuns of ontwerpwerk skep. Vir byna drie dekades het jy Adobe se sagteware as 'n CD gekoop en die gebruik daarvan vir ewig besit, en toekomstige opgegradeerde weergawes gekoop soos nodig. Maar in die middel-2010's het Adobe sy strategie verander.

    In plaas daarvan om sagteware-CD's met irriterende uitgebreide eienaarskapsleutels te koop, sal Adobe-kliënte nou 'n maandelikse subskripsie moet betaal vir die reg om Adobe-sagteware op hul rekenaartoestelle af te laai, sagteware wat net saam met 'n gereelde-tot-konstante internetverbinding met Adobe-bedieners sal werk. .

    Met hierdie verandering het klante nie meer Adobe-sagteware besit nie; hulle het dit gehuur soos nodig. In ruil daarvoor hoef kliënte nie meer voortdurend opgegradeerde weergawes van Adobe-sagteware te koop nie; solank hulle op die Adobe-diens ingeteken het, sou hulle altyd die nuutste opdaterings onmiddellik na vrystelling (dikwels 'n paar keer per jaar) op hul toestel laat oplaai.

    Dit is slegs een voorbeeld van een van die grootste sagteware-tendense wat ons die afgelope jare gesien het: hoe sagteware oorgaan na diens in plaas van 'n selfstandige produk. En nie net kleiner, gespesialiseerde sagteware nie, maar hele bedryfstelsels, soos ons gesien het met die vrystelling van Microsoft se Windows 10-opdatering. Met ander woorde, sagteware as 'n diens (SaaS).

    Selfleer sagteware (SLS)

    Voortbou op die bedryfsverskuiwing na SaaS, is 'n nuwe neiging in die sagtewareruimte besig om na vore te kom wat beide SaaS en AI kombineer. Vooraanstaande maatskappye van Amazon, Google, Microsoft en IBM het hul KI-infrastruktuur as 'n diens aan hul kliënte begin aanbied.

    Met ander woorde, KI en masjienleer is nie meer slegs vir sagtewarereuse toeganklik nie, nou het enige maatskappy en ontwikkelaar toegang tot aanlyn KI-hulpbronne om selfleerprogrammatuur (SLS) te bou.

    Ons sal die potensiaal van KI breedvoerig bespreek in ons Future of Artificial Intelligence-reeks, maar vir die konteks van hierdie hoofstuk sal ons sê dat huidige en toekomstige sagteware-ontwikkelaars SLS sal skep om nuwe stelsels te skep wat take verwag wat gedoen moet word en Voltooi hulle eenvoudig outomaties vir jou.

    Dit beteken dat 'n toekomstige KI-assistent jou werkstyl by die kantoor sal leer en basiese take vir jou sal begin voltooi, soos om dokumente te formateer net soos jy daarvan hou, jou e-posse in jou stemtoon op te stel, jou werkskalender te bestuur en meer.

    By die huis kan dit beteken dat 'n SLS-stelsel jou toekomstige slimhuis moet bestuur, insluitend take soos om jou huis vooraf te verhit voordat jy aankom of om tred te hou met kruideniersware wat jy moet koop.

    Teen die 2020's en in die 2030's sal hierdie SLS-stelsels 'n belangrike rol speel in die korporatiewe, regerings-, militêre en verbruikersmarkte, wat elkeen geleidelik help om hul produktiwiteit te verbeter en vermorsing van alle soorte te verminder. Ons sal SLS-tegnologie later in hierdie reeks in meer besonderhede dek.

    Daar is egter 'n vangplek aan dit alles.

    Die enigste manier waarop die SaaS- en SLS-modelle werk, is as die internet (of die infrastruktuur daaragter) aanhou groei en verbeter, saam met die rekenaar- en bergingsapparatuur wat die 'wolk' bestuur waarop hierdie SaaS/SLS-stelsels werk. Gelukkig lyk die neigings wat ons dophou belowend.

    Om uit te vind hoe die internet sal groei en ontwikkel, lees ons Toekoms van die internet reeks. Om meer te wete te kom oor hoe rekenaarhardeware sal vorder, lees dan verder deur die skakels hieronder te gebruik!

    Toekoms van rekenaars reeks

    Opkomende gebruikerskoppelvlakke om die mensdom te herdefinieer: Toekoms van rekenaars P1

    Die digitale bergingsrevolusie: Toekoms van rekenaars P3

    'n Vervaagde Moore se wet om fundamentele herbesinning van mikroskyfies: Future of Computers P4

    Wolkberekening word gedesentraliseerd: Toekoms van rekenaars P5

    Hoekom ding lande mee om die grootste superrekenaars te bou? Toekoms van rekenaars P6

    Hoe Quantum-rekenaars die wêreld sal verander: Future of Computers P7    

    Volgende geskeduleerde opdatering vir hierdie voorspelling

    2023-02-08

    Voorspelling verwysings

    Die volgende gewilde en institusionele skakels is vir hierdie voorspelling verwys:

    Die Atlantiese Oseaan

    Die volgende Quantumrun-skakels is vir hierdie voorspelling verwys: