Tarkvaraarenduse tulevik: Arvutite tulevik P2

PILDIKrediit: Quantumrun

Tarkvaraarenduse tulevik: Arvutite tulevik P2

    1969. aastal said Neil Armstrongist ja Buzz Aldrinist rahvusvahelised kangelased, olles esimesed inimesed, kes astus Kuule. Kuid kuigi need astronaudid olid kaamera kangelased, on tuhandeid laulmata kangelasi, kelle osaluseta poleks see esimene mehitatud Kuu maandumine olnud võimatu. Mõned neist kangelastest olid tarkvaraarendajad, kes lennu kodeerisid. Miks?

    Noh, tol ajal eksisteerinud arvutid olid palju lihtsamad kui praegu. Tegelikult on keskmise inimese kulunud nutitelefon mitu suurusjärku võimsam kui miski Apollo 11 kosmoselaeva pardal (ja selles osas kogu 1960. aastate NASA). Pealegi kodeerisid sel ajal arvuteid spetsialiseerunud tarkvaraarendajad, kes programmeerisid tarkvara kõige elementaarsemates masinkeeltes: AGC koostekood või lihtsalt 1-d ja 0-d.

    Konteksti jaoks üks neist laulmata kangelastest, Apollo kosmoseprogrammi tarkvaratehnika osakonna direktor, Margaret Hamilton, ja tema meeskond pidi kirjutama mäestiku koodi (alloleval pildil), mida tänapäeva programmeerimiskeeli kasutades oleks saanud kirjutada vaid vähese vaevaga.

    (Ülaloleval pildil Margaret Hamilton seisab Apollo 11 tarkvara sisaldava paberivirna kõrval.)

    Ja erinevalt tänapäeval, kus tarkvaraarendajad kodeerivad umbes 80–90 protsenti võimalikest stsenaariumidest, pidi Apollo missioonide puhul nende kood kõike arvestama. Selle perspektiivi vaatamiseks ütles Margaret ise:

    "Kontrollnimekirja juhendis esineva vea tõttu oli kohtumisradari lüliti paigutatud valesse asendisse. Seetõttu saatis see arvutisse ekslikke signaale. Tulemuseks oli see, et arvutil paluti maandumiseks täita kõik tavapärased funktsioonid. saades samal ajal lisakoorma võltsandmeid, mis kasutasid 15% ajast. Arvuti (või õigemini selles olev tarkvara) oli piisavalt tark, et tuvastada, et tal palutakse täita rohkem ülesandeid, kui ta peaks tegema. Seejärel saatis see välja häire, mis tähendas astronaudile, et ma olen ülekoormatud rohkemate ülesannetega, kui ma praegu tegema peaksin, ja jätan alles ainult olulisemad ülesanded, st need, mis on vajalikud maandumiseks ... Tegelikult , arvuti oli programmeeritud tegema enamat kui tuvastama veaolukordi. Tarkvarasse lisati terve komplekt taasteprogramme. Tarkvara tegevus oli antud juhul madalama prioriteediga ülesannete kõrvaldamine ja olulisemate taasloomine ... Kui arvuti seda poleks teinudma kahtlen, kas Apollo 11 oleks olnud edukas Kuu maandumine."

    — Margaret Hamilton, Apollo lennu arvutiprogrammeerimise MIT Draperi labori direktor, Cambridge, Massachusetts, "Computer Got Loaded", kiri Andmetöötlus, Märts 1, 1971

    Nagu varem vihjatud, on tarkvaraarendus arenenud alates nendest varajastest Apollo päevadest. Uued kõrgetasemelised programmeerimiskeeled asendasid tüütu 1-de ja 0-dega kodeerimise protsessi sõnade ja sümbolitega kodeerimisega. Funktsioonid, nagu juhusliku arvu genereerimine, mis varem nõudsid päevi kodeerimist, on nüüd asendatud ühe käsurea kirjutamisega.

    Teisisõnu on tarkvara kodeerimine muutunud iga kümnendiga üha automatiseeritumaks, intuitiivsemaks ja inimlikumaks. Need omadused jätkuvad ainult tulevikus, suunates tarkvaraarenduse arengut viisil, millel on suur mõju meie igapäevaelule. See on see, mida see peatükk Arvutite tulevik sari uurib.

    Tarkvaraarendus massidele

    1-de ja 0-de (masinakeel) kodeerimise vajaduse asendamist sõnade ja sümbolitega (inimkeel) nimetatakse abstraktsioonikihtide lisamise protsessiks. Need abstraktsioonid on tulnud uute programmeerimiskeelte kujul, mis automatiseerivad keerukaid või ühiseid funktsioone selles valdkonnas, mille jaoks need on loodud. Kuid 2000. aastate alguses tekkisid uued ettevõtted (nagu Caspio, QuickBase ja Mendi), mis hakkasid pakkuma nn koodita või madala koodiga platvorme.

    Need on kasutajasõbralikud veebipõhised armatuurlauad, mis võimaldavad mittetehnilistel professionaalidel luua kohandatud rakendusi, mis on kohandatud nende ettevõtte vajadustele, ühendades visuaalsed koodiplokid (sümbolid/graafika). Teisisõnu, selle asemel, et puud maha raiuda ja sellest riietuskapp kujundada, ehitate selle Ikea eelmoodsatest osadest.

    Kuigi selle teenuse kasutamine nõuab endiselt teatud arvutioskust, ei pea te enam arvutiteaduse kraadi omandama, kuid kasutage seda. Selle tulemusena võimaldab see abstraktsioonivorm ettevõtete maailmas miljonite uute "tarkvaraarendajate" esiletõusu ja võimaldab paljudel lastel õppida kodeerima varasemas eas.

    Tarkvaraarendajaks olemise ümbersõnastamine

    Oli aeg, mil maastikku või inimese nägu sai jäädvustada ainult lõuendile. Maalikunstnik peaks aastaid õppima ja praktiseerima praktikandina, omandades maalikunsti – kuidas värve segada, millised on parimad vahendid, õiged tehnikad konkreetse visuaali teostamiseks. Kaubanduse hind ja selle edukaks sooritamiseks vajalik aastatepikkune kogemus tähendas ka seda, et maalijaid oli vähe.

    Siis leiutati kaamera. Ja ühe nupuvajutusega jäädvustati maastikud ja portreed sekundiga, mille maalimiseks kuluks muidu päevi kuni nädalaid. Ja kuna kaamerad paranesid, muutusid odavamaks ja hakkasid neid üha enam kasutama, nii et need on nüüd lisatud isegi kõige elementaarsemasse nutitelefoni, muutus meid ümbritseva maailma jäädvustamine tavaliseks ja juhuslikuks tegevuseks, millest nüüd kõik osa võtavad.

    Kui abstraktsioonid edenevad ja uued tarkvarakeeled automatiseerivad üha rutiinsemat tarkvaraarendustööd, mida tähendab olla tarkvaraarendaja 10–20 aasta pärast? Sellele küsimusele vastamiseks vaatame läbi, kuidas tulevased tarkvaraarendajad tõenäoliselt homseid rakendusi loovad.

    *Esiteks kaob igasugune standardiseeritud korduv kodeerimistöö. Selle asemele tuleb tohutu eelmääratletud komponentide käitumise, kasutajaliidese ja andmevoo manipulatsioonide raamatukogu (Ikea osad).

    *Nagu tänapäeval, määratlevad tööandjad või ettevõtjad tarkvaraarendajatele konkreetsed eesmärgid ja tulemused, mida nad spetsiaalsete tarkvararakenduste või platvormide kaudu täidavad.

    *Need arendajad kaardistavad seejärel oma täitmisstrateegia ja hakkavad koostama oma tarkvara varaseid kavandeid, pääsedes juurde oma komponentide teeki ja kasutades visuaalseid liideseid, et need omavahel siduda – visuaalsed liidesed, millele pääseb juurde liitreaalsuse (AR) või virtuaalreaalsuse (VR) kaudu.

    * Spetsiaalsed tehisintellekti (AI) süsteemid, mis on loodud mõistma nende arendaja esialgsetes kavandites ette nähtud eesmärke ja tulemusi, viimistlevad seejärel koostatud tarkvarakujundust ja automatiseerivad kogu kvaliteedi tagamise testimise.

    *Tulemuste põhjal esitab tehisintellekt arendajale hulga küsimusi (tõenäoliselt verbaalse, Alexa-laadse suhtluse kaudu), püüdes paremini mõista ja määratleda projekti eesmärke ja tulemusi ning arutada, kuidas tarkvara peaks erinevates stsenaariumides toimima. ja keskkonnad.

    *Arendaja tagasiside põhjal õpib tehisintellekt järk-järgult tema kavatsused selgeks ja loob koodi, mis kajastab projekti eesmärke.

    *See edasi-tagasi, inimese ja masina koostöö kordab tarkvara versioone, kuni valmis ja turustatav versioon on sisemiseks juurutamiseks või avalikkusele müügiks valmis.

    *Tegelikult jätkub see koostöö ka pärast seda, kui tarkvara on reaalses kasutuses. Kui teatatakse lihtsatest vigadest, parandab tehisintellekt need automaatselt viisil, mis kajastab tarkvaraarenduse käigus välja toodud algseid soovitud eesmärke. Vahepeal nõuavad tõsisemad vead probleemi lahendamiseks inimese ja tehisintellekti koostööd.

    Üldiselt keskenduvad tulevased tarkvaraarendajad vähem sellele, kuidas? ja rohkem sellele, mis ja miks. Nad on vähem käsitöölised ja rohkem arhitektid. Programmeerimine on intellektuaalne harjutus, mis nõuab inimesi, kes suudavad metoodiliselt edastada kavatsusi ja tulemusi viisil, mida tehisintellekt mõistab, ning seejärel valmis digitaalse rakenduse või platvormi automaatselt kodeerida.

    Tehisintellekti juhitud tarkvaraarendus

    Arvestades ülaltoodud jaotist, on selge, et meie arvates hakkab AI mängima tarkvaraarenduse valdkonnas üha kesksemat rolli, kuid selle kasutuselevõtt ei ole mõeldud ainult tarkvaraarendajate tõhustamiseks, vaid selle suundumuse taga on ka ärijõud.

    Konkurents tarkvaraarendusettevõtete vahel muutub iga aastaga karmimaks. Mõned ettevõtted konkureerivad konkurentide väljaostmisega. Teised võistlevad tarkvara eristamise pärast. Viimase strateegia väljakutse seisneb selles, et seda ei ole lihtne kaitsta. Kõik tarkvarafunktsioonid või täiustused, mida üks ettevõte oma klientidele pakub, saavad tema konkurendid suhteliselt hõlpsalt kopeerida.

    Sel põhjusel on möödas ajad, mil ettevõtted annavad välja uue tarkvara iga ühe kuni kolme aasta tagant. Tänapäeval on diferentseerimisele keskenduvatel ettevõtetel rahaline stiimul uut tarkvara, tarkvaraparandusi ja tarkvarafunktsioone üha korrapärasemalt välja anda. Mida kiiremini ettevõtted uuendusi teevad, seda rohkem suurendavad nad klientide lojaalsust ja suurendavad konkurentidele ülemineku kulusid. See nihe järkjärguliste tarkvaravärskenduste regulaarsele kohaletoimetamisele on trend, mida nimetatakse "pidevaks tarnimiseks".

    Kahjuks ei ole pidev tarnimine lihtne. Vaevalt veerand tänastest tarkvaraettevõtetest suudab täita selle suundumusega nõutud väljalaskegraafikut. Ja seepärast on huvi AI kasutamise vastu asjade kiirendamiseks nii suur.

    Nagu varem kirjeldatud, mängib AI lõpuks tarkvara koostamisel ja arendamisel üha enam koostööd. Kuid lühiajalises perspektiivis kasutavad ettevõtted seda tarkvara kvaliteedi tagamise (testimise) protsesside üha enam automatiseerimiseks. Teised ettevõtted katsetavad tehisintellekti kasutamist tarkvara dokumentatsiooni automatiseerimiseks – protsessi, mille käigus jälgitakse uute funktsioonide ja komponentide väljalaskmist ning nende tootmist kuni kooditasemeni.

    Üldiselt mängib AI tarkvaraarenduses üha enam keskset rolli. Need tarkvaraettevõtted, kes omandavad selle kasutamise varakult, saavad lõppkokkuvõttes nautida hüppelist kasvu võrreldes konkurentidega. Kuid nende tehisintellekti eeliste realiseerimiseks peab tööstus nägema edusamme ka asjade riistvara osas – järgmises jaotises käsitletakse seda punkti üksikasjalikumalt.

    Tarkvara kui teenus

    Igasugused loomingulised spetsialistid kasutavad digitaalkunsti või disainitöö loomisel Adobe tarkvara. Peaaegu kolm aastakümmet ostsite Adobe'i tarkvara CD-na ja kasutasite seda igavesti, ostes vajaduse korral tulevasi täiendatud versioone. Kuid 2010. aastate keskel muutis Adobe oma strateegiat.

    Selle asemel, et osta tüütult keeruliste omanikuvõtmetega tarkvara-CD-sid, peaksid Adobe kliendid nüüd maksma igakuise tellimuse, et saaksite oma arvutiseadmetesse alla laadida Adobe tarkvara – tarkvara, mis töötaks ainult koos tavalise kuni pideva Interneti-ühendusega Adobe serveritega. .

    Selle muudatusega ei kuulunud klientidele enam Adobe tarkvara; nad rentisid seda vastavalt vajadusele. Vastutasuks ei pea kliendid enam pidevalt ostma Adobe'i tarkvara uuendatud versioone; seni, kuni nad on Adobe'i teenuse tellinud, laaditakse nende seadmesse alati pärast väljalaskmist uusimad värskendused (sageli mitu korda aastas).

    See on vaid üks näide ühest suurimast tarkvaratrendist, mida oleme viimastel aastatel näinud: kuidas tarkvara läheb eraldiseisva toote asemel kasutusele. Ja mitte ainult väiksemat spetsialiseeritud tarkvara, vaid terveid operatsioonisüsteeme, nagu oleme näinud Microsofti Windows 10 värskenduse avaldamisel. Teisisõnu, tarkvara kui teenus (SaaS).

    Iseõppiv tarkvara (SLS)

    Toetudes tööstusharule SaaS-i poole, on tarkvararuumis tekkimas uus suundumus, mis ühendab nii SaaS-i kui ka AI-i. Juhtivad ettevõtted Amazonist, Google'ist, Microsoftist ja IBMist on hakanud pakkuma oma AI infrastruktuuri oma klientidele teenusena.

    Teisisõnu, tehisintellekt ja masinõpe pole enam kättesaadavad ainult tarkvarahiiglastele, nüüd saavad kõik ettevõtted ja arendajad iseõppiva tarkvara (SLS) loomiseks juurdepääsu AI-ressurssidele.

    Me käsitleme tehisintellekti tuleviku sarjas üksikasjalikult tehisintellekti potentsiaali, kuid selle peatüki kontekstis ütleme, et praegused ja tulevased tarkvaraarendajad loovad SLS-i, et luua uusi süsteeme, mis näevad ette ülesandeid, mida tuleb teha ja lihtsalt täitke need teie eest automaatselt.

    See tähendab, et tulevane tehisintellekti assistent õpib teie tööstiili kontoris selgeks ja hakkab teie eest täitma põhiülesandeid, näiteks vormindama dokumente just nii, nagu teile meeldib, koostades e-kirju teie hääletooniga, hallata teie töökalendrit ja palju muud.

    Kodus võib see tähendada, et SLS-süsteem haldab teie tulevast nutikat kodu, sealhulgas selliseid ülesandeid nagu kodu eelsoojendamine enne saabumist või ostetavate toiduainete jälgimine.

    2020. aastateks ja 2030. aastateks mängivad need SLS-süsteemid ettevõtete, valitsuse, sõjaväe ja tarbijaturgudel üliolulist rolli, aidates järk-järgult parandada nende tootlikkust ja vähendada igasugust raiskamist. Selles seerias käsitleme SLS-tehnoloogiat üksikasjalikumalt.

    Siiski on sellel kõigel konks.

    Ainus viis SaaS-i ja SLS-i mudelite toimimiseks on see, kui Internet (või selle taga olev infrastruktuur) kasvab ja täiustub koos arvutus- ja salvestusriistvaraga, mis juhib nende SaaS/SLS-süsteemide pilve. Õnneks näevad meie jälgitavad suundumused paljulubavad.

    Et saada teavet selle kohta, kuidas Internet kasvab ja areneb, lugege meie artiklit Interneti tulevik seeria. Lisateabe saamiseks selle kohta, kuidas arvuti riistvara areneb, lugege allpool olevate linkide abil!

    Arvutite seeria tulevik

    Tekkivad kasutajaliidesed inimkonna ümberdefineerimiseks: arvutite tulevik P1

    Digitaalsalvestusrevolutsioon: arvutite tulevik P3

    Häiriv Moore'i seadus, mis käivitab mikrokiipide põhjaliku ümbermõtlemise: arvutite tulevik P4

    Pilvandmetöötlus muutub detsentraliseerituks: arvutite tulevik P5

    Miks riigid võistlevad suurimate superarvutite ehitamise nimel? Arvutite tulevik P6

    Kuidas kvantarvutid maailma muudavad: arvutite tulevik P7    

    Selle prognoosi järgmine ajastatud värskendus

    2023-02-08

    Prognoosi viited

    Selle prognoosi jaoks viidati järgmistele populaarsetele ja institutsionaalsetele linkidele:

    Selle prognoosi jaoks viidati järgmistele Quantumruni linkidele: