Programmatūras izstrādes nākotne: Datoru nākotne P2

ATTĒLA KREDĪTS: Quantumrun

Programmatūras izstrādes nākotne: Datoru nākotne P2

    1969. gadā Nīls Ārmstrongs un Buzs Oldrins kļuva par starptautiskiem varoņiem pēc tam, kad bija pirmie cilvēki, kas spēra kāju uz Mēness. Bet, lai gan šie astronauti bija kameras varoņi, ir tūkstošiem neapdziedātu varoņu, kuriem bez viņu līdzdalības pirmā pilotētā nosēšanās uz Mēness nebūtu iespējama. Daži no šiem varoņiem bija programmatūras izstrādātāji, kas kodēja lidojumu. Kāpēc?

    Nu, datori, kas pastāvēja tajā laikā, bija daudz vienkāršāki nekā šodien. Faktiski vidusmēra cilvēka nolietotais viedtālrunis ir par vairākām kārtām jaudīgāks nekā jebkas, kas atrodas kosmosa kuģī Apollo 11 (un šajā ziņā visā 1960. gadu NASA). Turklāt datorus tajā laikā kodēja specializēti programmatūras izstrādātāji, kuri programmēja programmatūru visvienkāršākajās mašīnvalodās: AGC Assembly Code jeb vienkārši 1s un 0s.

    Kontekstam viens no šiem neapdziedātajiem varoņiem, Apollo kosmosa programmas Programmatūras inženierijas nodaļas direktors, Margaret Hamilton, un viņas komandai bija jāuzraksta koda kalns (attēlā zemāk), ko, izmantojot mūsdienu programmēšanas valodas, varēja uzrakstīt, izmantojot nelielu pūļu daļu.

    (Attēlā augšā ir Mārgareta Hamiltone, kas stāv blakus papīra kaudzei, kurā ir Apollo 11 programmatūra.)

    Un atšķirībā no mūsdienās, kur programmatūras izstrādātāji kodē apmēram 80-90 procentus iespējamo scenāriju, Apollo misijām viņu kodam bija jāņem vērā viss. Lai to aplūkotu perspektīvā, pati Margareta teica:

    "Kļūdas kontrolsaraksta rokasgrāmatā dēļ satikšanās radara slēdzis tika novietots nepareizā pozīcijā. Tas lika tam nosūtīt kļūdainus signālus uz datoru. Rezultātā datoram tika lūgts veikt visas parastās funkcijas, lai nosēstos. saņemot papildu slodzi viltotu datu, kas izmantoja 15% no sava laika. Dators (vai drīzāk tajā esošā programmatūra) bija pietiekami gudrs, lai atpazītu, ka tam tiek prasīts veikt vairāk uzdevumu, nekā tam vajadzētu veikt. Pēc tam tas nosūtīja izdzēšot trauksmi, kas nozīmēja astronautam, ka esmu pārslogots ar vairāk uzdevumu, nekā man šobrīd būtu jādara, un es turēšu tikai svarīgākos uzdevumus, ti, tos, kas nepieciešami nolaišanās... Patiesībā , dators bija ieprogrammēts darīt vairāk, nekā atpazīt kļūdu apstākļus. Programmatūrā tika iekļauts pilns atkopšanas programmu komplekts. Programmatūras darbība šajā gadījumā bija novērst zemākas prioritātes uzdevumus un atjaunot svarīgākos... Ja datoram nebūtuapzinājos šo problēmu un veica atkopšanas pasākumus, es šaubos, vai Apollo 11 būtu bijusi veiksmīga nosēšanās uz Mēness.

    — Mārgareta Hamiltone, Apollo lidojumu datorprogrammēšanas MIT Draper laboratorijas direktore, Kembridža, Masačūsetsa, "Computer Got Loaded", vēstule Datu vākšana, Marts 1, 1971

    Kā minēts iepriekš, programmatūras izstrāde ir attīstījusies kopš tiem agrīnajiem Apollo laikiem. Jaunas augsta līmeņa programmēšanas valodas nomainīja nogurdinošo kodēšanas procesu ar 1 un 0, lai kodētu ar vārdiem un simboliem. Tādas funkcijas kā nejauša skaitļa ģenerēšana, kas agrāk prasīja kodēšanas dienas, tagad tiek aizstātas ar vienas komandrindas rakstīšanu.

    Citiem vārdiem sakot, programmatūras kodēšana ar katru desmitgadi ir kļuvusi arvien automatizētāka, intuitīvāka un cilvēciskāka. Šīs īpašības turpināsies tikai nākotnē, vadot programmatūras izstrādes attīstību tādos veidos, kas būtiski ietekmēs mūsu ikdienas dzīvi. Tas ir tas, ko šī nodaļa Datoru nākotne sērija tiks pētīta.

    Programmatūras izstrāde masām

    Process, kurā nepieciešamība kodēt 1 un 0 (mašīnvaloda) tiek aizstāta ar vārdiem un simboliem (cilvēku valoda), tiek saukts par abstrakciju slāņu pievienošanas procesu. Šīs abstrakcijas ir radušās jaunu programmēšanas valodu veidā, kas automatizē sarežģītas vai kopīgas funkcijas jomā, kurai tās ir paredzētas. Taču 2000. gadu sākumā radās jauni uzņēmumi (piemēram, Caspio, QuickBase un Mendi), kas sāka piedāvāt tā sauktās bezkoda vai zema koda platformas.

    Tie ir lietotājam draudzīgi tiešsaistes informācijas paneļi, kas ļauj netehniskiem profesionāļiem izveidot pielāgotas lietotnes, kas pielāgotas viņu biznesa vajadzībām, savienojot vizuālos koda blokus (simbolus/grafikas). Citiem vārdiem sakot, tā vietā, lai nocirst koku un pārveidotu to par ģērbtuvi, jūs to uzbūvējat, izmantojot iepriekš izstrādātas detaļas no Ikea.

    Lai gan šī pakalpojuma izmantošanai joprojām ir nepieciešama noteikta līmeņa datorprasme, jums vairs nav nepieciešams datorzinātņu grāds, taču izmantojiet to. Rezultātā šī abstrakcijas forma korporatīvajā pasaulē rada miljoniem jaunu "programmatūras izstrādātāju", un tas ļauj daudziem bērniem iemācīties kodēt agrākā vecumā.

    Pārdefinēt, ko nozīmē būt programmatūras izstrādātājam

    Bija laiks, kad ainavu vai cilvēka seju varēja iemūžināt tikai uz audekla. Gleznotājam būtu gadiem ilgi jāmācās un jāpraktizējas kā māceklim, apgūstot glezniecības arodu – kā sajaukt krāsas, kādi instrumenti ir labākie, pareizās metodes konkrēta vizuālā attēla izpildei. Tirdzniecības izmaksas un daudzu gadu pieredze, kas bija nepieciešama, lai to labi veiktu, nozīmēja arī to, ka gleznotāju bija maz.

    Tad tika izgudrota kamera. Un, nospiežot vienu pogu, ainavas un portreti tika iemūžināti sekundē, kuru krāsošanai citādi būtu nepieciešamas vairākas dienas vai nedēļas. Tā kā kameras uzlabojās, kļuva lētākas un kļuva pārpilnība līdz tādam līmenim, ka tās tagad ir iekļautas pat visvienkāršākajā viedtālrunī, apkārtējās pasaules tveršana kļuva par ierastu un ikdienišķu darbību, kurā tagad piedalās visi.

    Tā kā abstrakcijas attīstās un jaunas programmatūras valodas automatizē arvien vairāk ikdienas programmatūras izstrādes darbu, ko nozīmēs būt programmatūras izstrādātājam pēc 10 līdz 20 gadiem? Lai atbildētu uz šo jautājumu, apskatīsim, kā nākamie programmatūras izstrādātāji, visticamāk, veiks rītdienas lietojumprogrammu izveidi.

    * Pirmkārt, visi standartizētie, atkārtotie kodēšanas darbi pazudīs. Tā vietā būs plaša bibliotēka ar iepriekš definētu komponentu darbību, lietotāja interfeisu un datu plūsmas manipulācijām (Ikea daļas).

    *Tāpat kā šodien, darba devēji vai uzņēmēji noteiks konkrētus mērķus un rezultātus, ko programmatūras izstrādātāji var izpildīt, izmantojot specializētas programmatūras lietojumprogrammas vai platformas.

    * Pēc tam šie izstrādātāji izstrādās savu izpildes stratēģiju un sāks izstrādāt programmatūras sākotnējos projektus, piekļūstot savai komponentu bibliotēkai un izmantojot vizuālās saskarnes, lai tās savienotu — vizuālās saskarnes, kurām var piekļūt, izmantojot paplašināto realitāti (AR) vai virtuālo realitāti (VR).

    *Specializētās mākslīgā intelekta (AI) sistēmas, kas izstrādātas, lai izprastu mērķus un rezultātus, ko paredz to izstrādātāja sākotnējie projekti, pēc tam uzlabos izstrādāto programmatūras dizainu un automatizēs visas kvalitātes nodrošināšanas pārbaudes.

    * Pamatojoties uz rezultātiem, AI pēc tam uzdos daudzus jautājumus izstrādātājam (iespējams, izmantojot verbālu, Alexa līdzīgu saziņu), cenšoties labāk izprast un definēt projekta mērķus un rezultātus un apspriest, kā programmatūrai jādarbojas dažādos scenārijos. un vides.

    *Pamatojoties uz izstrādātāja atsauksmēm, mākslīgais intelekts pakāpeniski uzzinās viņa vai viņas nodomu un ģenerēs kodu, lai atspoguļotu projekta mērķus.

    *Šī turp un atpakaļ, cilvēka un mašīnas sadarbība atkārtos programmatūras versiju pēc versijas, līdz gatava un tirgojama versija būs gatava iekšējai ieviešanai vai pārdošanai sabiedrībai.

    *Patiesībā šī sadarbība turpināsies pēc tam, kad programmatūra būs pakļauta lietošanai reālajā pasaulē. Tā kā tiek ziņots par vienkāršām kļūdām, AI tās automātiski izlabos tādā veidā, kas atspoguļo sākotnējos, vēlamos mērķus, kas izklāstīti programmatūras izstrādes procesā. Tikmēr nopietnākas kļūdas prasīs cilvēka un AI sadarbību, lai atrisinātu problēmu.

    Kopumā nākotnes programmatūras izstrādātāji mazāk koncentrēsies uz “kā” un vairāk uz “ko” un “kāpēc”. Viņi būs mazāk amatnieku un vairāk arhitektu. Programmēšana būs intelektuāls vingrinājums, kam būs nepieciešami cilvēki, kuri var metodiski paziņot nodomus un rezultātus tādā veidā, ko AI var saprast, un pēc tam automātiski kodēt gatavu digitālo lietojumprogrammu vai platformu.

    Mākslīgā intelekta vadīta programmatūras izstrāde

    Ņemot vērā iepriekš minēto sadaļu, ir skaidrs, ka mēs uzskatām, ka AI spēlēs arvien svarīgāku lomu programmatūras izstrādes jomā, taču tā pieņemšana nav paredzēta tikai programmatūras izstrādātāju efektivitātes uzlabošanai, bet arī šīs tendences pamatā ir biznesa spēki.

    Konkurence starp programmatūras izstrādes uzņēmumiem ar katru gadu kļūst sīvāka. Daži uzņēmumi konkurē, izpērkot savus konkurentus. Citi sacenšas par programmatūras diferenciāciju. Pēdējās stratēģijas izaicinājums ir tas, ka to nav viegli aizstāvēt. Jebkuru programmatūras līdzekli vai uzlabojumu, ko uzņēmums piedāvā saviem klientiem, tā konkurenti var salīdzinoši viegli kopēt.

    Šī iemesla dēļ ir pagājuši laiki, kad uzņēmumi izlaiž jaunu programmatūru ik pēc viena līdz trim gadiem. Mūsdienās uzņēmumiem, kas koncentrējas uz diferenciāciju, ir finansiāls stimuls arvien regulārāk izlaist jaunu programmatūru, programmatūras labojumus un programmatūras līdzekļus. Jo ātrāk uzņēmumi ievieš jauninājumus, jo vairāk tie veicina klientu lojalitāti un palielina izmaksas, pārejot pie konkurentiem. Šī pāreja uz regulāru pakāpenisku programmatūras atjauninājumu piegādi ir tendence, ko sauc par "nepārtrauktu piegādi".

    Diemžēl nepārtraukta piegāde nav vienkārša. Gandrīz ceturtā daļa mūsdienu programmatūras uzņēmumu var izpildīt šīs tendences noteikto izlaišanas grafiku. Un tāpēc ir tik liela interese par AI izmantošanu, lai paātrinātu lietas.

    Kā minēts iepriekš, AI galu galā arvien vairāk sadarbosies programmatūras izstrādē un izstrādē. Taču īstermiņā uzņēmumi to izmanto, lai arvien vairāk automatizētu programmatūras kvalitātes nodrošināšanas (testēšanas) procesus. Un citi uzņēmumi eksperimentē ar mākslīgā intelekta izmantošanu, lai automatizētu programmatūras dokumentāciju — jaunu funkciju un komponentu izlaišanas izsekošanas procesu un to, kā tie tika ražoti līdz koda līmenim.

    Kopumā AI arvien vairāk spēlēs galveno lomu programmatūras izstrādē. Tie programmatūras uzņēmumi, kas apgūst tās lietošanu agri, galu galā baudīs eksponenciālu izaugsmi salīdzinājumā ar konkurentiem. Taču, lai realizētu šos AI ieguvumus, nozarei būs jāredz arī sasniegumi lietu aparatūras pusē — nākamajā sadaļā par šo jautājumu tiks runāts sīkāk.

    Programmatūra kā pakalpojums

    Visu veidu radošie profesionāļi izmanto Adobe programmatūru, veidojot digitālās mākslas vai dizaina darbus. Gandrīz trīs gadu desmitus jūs iegādājāties Adobe programmatūru kā kompaktdisku un uz visiem laikiem lietojāt to, iegādājoties turpmākās jauninātās versijas, ja nepieciešams. Taču 2010. gadu vidū Adobe mainīja savu stratēģiju.

    Tā vietā, lai iegādātos programmatūras kompaktdiskus ar kaitinoši sarežģītām īpašumtiesību atslēgām, Adobe klientiem tagad būtu jāmaksā ikmēneša abonements par tiesībām lejupielādēt Adobe programmatūru savās datorierīcēs — programmatūru, kas darbotos tikai kopā ar regulāru vai pastāvīgu interneta savienojumu ar Adobe serveriem. .

    Līdz ar šīm izmaiņām klientiem vairs nepiederēja Adobe programmatūra; viņi to īrēja pēc vajadzības. Savukārt klientiem vairs nav pastāvīgi jāiegādājas jauninātas Adobe programmatūras versijas; ja vien viņi abonē Adobe pakalpojumu, jaunākie atjauninājumi vienmēr tiks augšupielādēti ierīcē tūlīt pēc izlaišanas (bieži vien vairākas reizes gadā).

    Šis ir tikai viens piemērs vienai no lielākajām programmatūras tendencēm, ko esam redzējuši pēdējos gados: kā programmatūra tiek nodota ekspluatācijā, nevis atsevišķs produkts. Un ne tikai mazāka, specializēta programmatūra, bet arī visas operētājsistēmas, kā mēs redzējām, izlaižot Microsoft Windows 10 atjauninājumu. Citiem vārdiem sakot, programmatūra kā pakalpojums (SaaS).

    Pašmācības programmatūra (SLS)

    Pamatojoties uz nozares pāreju uz SaaS, programmatūras jomā parādās jauna tendence, kas apvieno gan SaaS, gan AI. Vadošie uzņēmumi no Amazon, Google, Microsoft un IBM ir sākuši piedāvāt savu AI infrastruktūru kā pakalpojumu saviem klientiem.

    Citiem vārdiem sakot, AI un mašīnmācība vairs nav pieejama tikai programmatūras gigantiem, tagad jebkurš uzņēmums un izstrādātājs var piekļūt tiešsaistes AI resursiem, lai izveidotu pašmācības programmatūru (SLS).

    Mēs detalizēti apspriedīsim mākslīgā intelekta potenciālu sērijā Mākslīgā intelekta nākotne, taču šīs nodaļas kontekstā mēs teiksim, ka pašreizējie un topošie programmatūras izstrādātāji izveidos SLS, lai radītu jaunas sistēmas, kas paredz uzdevumus, kas jāveic un vienkārši automātiski aizpildiet tos jūsu vietā.

    Tas nozīmē, ka topošais AI palīgs apgūs jūsu darba stilu birojā un sāks jūsu vietā veikt pamatuzdevumus, piemēram, formatēt dokumentus tā, kā jums patīk, rakstīt e-pastus jūsu balss tonī, pārvaldīt jūsu darba kalendāru un daudz ko citu.

    Mājās tas varētu nozīmēt, ka SLS sistēma pārvalda jūsu nākotnes viedo māju, tostarp tādus uzdevumus kā mājas iepriekšēja apsildīšana pirms ierašanās vai jāiegādājas pārtikas preču uzskaite.

    Līdz 2020. gadiem un 2030. gadiem šīm SLS sistēmām būs būtiska nozīme korporatīvajos, valdības, militārajos un patērētāju tirgos, pakāpeniski palīdzot katrai uzlabot savu produktivitāti un samazināt visa veida atkritumus. Mēs sīkāk aplūkosim SLS tehnoloģiju vēlāk šajā sērijā.

    Tomēr tam visam ir savs āķis.

    Vienīgais veids, kā SaaS un SLS modeļi darbojas, ir tad, ja internets (vai infrastruktūra, kas atrodas aiz tā) turpina augt un uzlaboties, kā arī skaitļošanas un uzglabāšanas aparatūra, kas darbina "mākoni", kurā darbojas šīs SaaS/SLS sistēmas. Par laimi, tendences, kurām mēs sekojam, izskatās daudzsološas.

    Lai uzzinātu, kā internets augs un attīstīsies, izlasiet mūsu rakstu Interneta nākotne sērija. Lai uzzinātu vairāk par datora aparatūras attīstību, lasiet tālāk, izmantojot tālāk esošās saites!

    Datoru sērijas nākotne

    Jaunās lietotāja saskarnes, lai no jauna definētu cilvēci: datoru nākotne P1

    Digitālās atmiņas revolūcija: datoru nākotne P3

    Pazūdošais Mūra likums, kas rosina fundamentāli pārdomāt mikroshēmas: datoru nākotne P4

    Mākoņdatošana kļūst decentralizēta: datoru nākotne P5

    Kāpēc valstis sacenšas, lai izveidotu lielākos superdatorus? Datoru nākotne P6

    Kā kvantu datori mainīs pasauli: datoru nākotne P7    

    Nākamais plānotais šīs prognozes atjauninājums

    2023-02-08

    Prognožu atsauces

    Šai prognozei tika izmantotas šādas populāras un institucionālas saites:

    Šai prognozei tika izmantotas šādas Quantumrun saites: