Programinės įrangos kūrimo ateitis: kompiuterių ateitis P2

VAIZDO KREDITAS: Quantumrun

Programinės įrangos kūrimo ateitis: kompiuterių ateitis P2

    1969 m. Neilas Armstrongas ir Buzzas Aldrinas tapo tarptautiniais herojais po to, kai buvo pirmieji žmonės, įžengę į Mėnulį. Tačiau nors šie astronautai buvo kameros herojai, yra tūkstančiai neapdainuotų herojų, kuriems be jų dalyvavimo pirmasis pilotuojamas nusileidimas Mėnulyje nebūtų buvęs neįmanomas. Kai kurie iš šių herojų buvo programinės įrangos kūrėjai, kurie užkodavo skrydį. Kodėl?

    Na, o tuo metu egzistavę kompiuteriai buvo kur kas paprastesni nei šiandien. Tiesą sakant, vidutinio žmogaus susidėvėjęs išmanusis telefonas yra keliomis eilėmis galingesnis už bet ką, esantį erdvėlaivyje „Apollo 11“ (ir šiuo klausimu visame septintojo dešimtmečio NASA). Be to, tuo metu kompiuterius kodavo specializuoti programinės įrangos kūrėjai, programuodami programinę įrangą pačiomis paprasčiausiomis mašinų kalbomis: AGC Assembly Code arba tiesiog 1960s ir 1s.

    Kalbant apie kontekstą, vienas iš šių neapdainuotų herojų, „Apollo“ kosmoso programos Programinės įrangos inžinerijos skyriaus direktorius, Margaret Hamilton, o jos komanda turėjo parašyti kalną kodo (pavaizduota žemiau), kurį naudojant šiandienines programavimo kalbas būtų buvę galima parašyti įdedant tik dalelę pastangų.

    (Aukščiau pavaizduota Margaret Hamilton, stovinti šalia popieriaus šūsnio, kuriame yra „Apollo 11“ programinė įranga.)

    Ir skirtingai nei šiais laikais, kai programinės įrangos kūrėjai užkoduoja apie 80–90 procentų galimų scenarijų, „Apollo“ misijoms jų kodas turėjo atsižvelgti į viską. Pati Margaret, norėdama pažvelgti į tai perspektyvoje, pasakė:

    "Dėl klaidos kontrolinio sąrašo vadove pasimatymo radaro jungiklis buvo padėtas netinkamoje padėtyje. Dėl to jis siuntė klaidingus signalus į kompiuterį. Dėl to kompiuterio buvo prašoma atlikti visas įprastas nusileidimo funkcijas. gaudamas papildomą apkrovą klaidingų duomenų, kurie sunaudojo 15 % laiko. Kompiuteris (tiksliau jame esanti programinė įranga) buvo pakankamai protingas, kad atpažintų, jog jo prašoma atlikti daugiau užduočių, nei turėtų atlikti. Tada jis išsiuntė išjungti pavojaus signalą, o tai reiškė astronautui, kad esu perkrautas daugiau užduočių, nei turėčiau atlikti šiuo metu, ir pasiliksiu tik svarbesnes užduotis, ty tas, kurios reikalingos nusileidimui... Tiesą sakant, , kompiuteris buvo užprogramuotas daryti daugiau nei atpažinti klaidų sąlygas. Į programinę įrangą buvo įtrauktas visas atkūrimo programų rinkinys. Šiuo atveju programinės įrangos veiksmas buvo pašalinti žemesnio prioriteto užduotis ir iš naujo nustatyti svarbesnes... Jei kompiuteris nebūtųpripažino šią problemą ir ėmėsi atkūrimo veiksmų, abejoju, ar „Apollo 11“ būtų buvęs toks sėkmingas nusileidimas Mėnulyje.

    — Margaret Hamilton, „Apollo“ skrydžių kompiuterių programavimo MIT Draper laboratorijos direktorė, Kembridžas, Masačusetsas, „Computer Got Loaded“, laiškas adresu Duomenų apdorojimas, Kovo 1, 1971

    Kaip buvo užsiminta anksčiau, programinės įrangos kūrimas vystėsi nuo tų ankstyvųjų „Apollo“ dienų. Naujos aukšto lygio programavimo kalbos nuobodų kodavimą 1 ir 0 pakeitė kodavimu žodžiais ir simboliais. Tokios funkcijos kaip atsitiktinio skaičiaus generavimas, kurioms anksčiau reikėjo kodavimo dienų, dabar pakeičiamos vienos komandinės eilutės rašymu.

    Kitaip tariant, programinės įrangos kodavimas su kiekvienu dešimtmečiu tampa vis labiau automatizuotas, intuityvesnis ir žmogiškesnis. Šios savybės išliks tik ateityje, lemdamos programinės įrangos kūrimo raidą tokiais būdais, kurie turės didelę įtaką mūsų kasdieniam gyvenimui. Štai ką šis skyrius Kompiuterių ateitis serialas tyrinės.

    Programinės įrangos kūrimas masėms

    Poreikio koduoti 1 ir 0 (mašinų kalba) pakeitimas žodžiais ir simboliais (žmonių kalba) vadinamas abstrakcijų sluoksnių pridėjimo procesu. Šios abstrakcijos atsirado kaip naujos programavimo kalbos, kurios automatizuoja sudėtingas ar įprastas funkcijas toje srityje, kuriai jos buvo skirtos. Tačiau 2000-ųjų pradžioje atsirado naujų kompanijų (pvz., Caspio, QuickBase ir Mendi), kurios pradėjo siūlyti vadinamąsias be kodo arba žemo kodo platformas.

    Tai patogios vartotojui internetinės informacijos suvestinės, leidžiančios netechnikos specialistams kurti pritaikytas programėles, pritaikytas jų verslo poreikiams, sujungiant vaizdinius kodo blokus (simbolius / grafiką). Kitaip tariant, užuot nukirtę medį ir pavertę jį persirengimo spintele, statote jį naudodami iš anksto pagamintas Ikea dalis.

    Nors naudojantis šia paslauga vis dar reikia tam tikro kompiuterio išmanymo, jums nebereikia informatikos laipsnio, naudokite ja. Dėl šios priežasties ši abstrakcijos forma leidžia verslo pasaulyje atsirasti milijonams naujų „programinės įrangos kūrėjų“ ir daugeliui vaikų išmokti koduoti ankstyvame amžiuje.

    Iš naujo apibrėžti, ką reiškia būti programinės įrangos kūrėju

    Buvo laikas, kai peizažą ar žmogaus veidą buvo galima užfiksuoti tik drobėje. Tapytojas turėtų ilgus metus mokytis ir praktikuotis kaip mokinys, mokantis tapybos amato – kaip derinti spalvas, kokios priemonės yra geriausios, tinkamų technikų konkrečiam vaizdui atlikti. Prekybos kaina ir ilgametė patirtis, reikalinga norint ją gerai atlikti, taip pat reiškė, kad dailininkų buvo nedaug.

    Tada buvo išrastas fotoaparatas. Vienu mygtuko paspaudimu peizažai ir portretai buvo užfiksuoti per sekundę, o tai užtruktų kelias dienas ar savaites. O fotoaparatams tobulėjant, atpigus ir tapus daugybei tiek, kad jų dabar yra net į paprasčiausią išmanųjį telefoną, mus supančio pasaulio fiksavimas tapo įprasta ir atsitiktine veikla, kurioje dabar dalyvauja visi.

    Vykstant abstrakcijoms ir naujoms programinės įrangos kalboms automatizuoti vis įprastesnius programinės įrangos kūrimo darbus, ką reikš būti programinės įrangos kūrėju po 10–20 metų? Norėdami atsakyti į šį klausimą, pažiūrėkime, kaip būsimi programinės įrangos kūrėjai greičiausiai imsis kurti rytojaus programas:

    *Pirma, visi standartizuoti, pasikartojantys kodavimo darbai išnyks. Vietoje jos bus didžiulė iš anksto nustatytų komponentų elgsenos, vartotojo sąsajos ir duomenų srauto manipuliacijų biblioteka („Ikea“ dalys).

    *Kaip ir šiandien, darbdaviai ar verslininkai nustatys konkrečius tikslus ir rezultatus, kuriuos programinės įrangos kūrėjai galės įgyvendinti naudodami specializuotas programinės įrangos programas ar platformas.

    * Tada šie kūrėjai sudarys savo vykdymo strategiją ir pradės kurti pirmuosius savo programinės įrangos juodraščius, pasiekdami savo komponentų biblioteką ir naudodami vaizdines sąsajas, kad jas susietų – vaizdines sąsajas, pasiekiamas per papildytąją realybę (AR) arba virtualią realybę (VR).

    * Specializuotos dirbtinio intelekto (AI) sistemos, sukurtos suprasti tikslus ir rezultatus, numatytus jų kūrėjo pradiniuose projektuose, patobulins parengtą programinės įrangos dizainą ir automatizuos visus kokybės užtikrinimo testus.

    * Remdamasis rezultatais, dirbtinis intelektas užduos daugybę klausimų kūrėjui (greičiausiai per žodinį, į Alexa panašų bendravimą), siekdamas geriau suprasti ir apibrėžti projekto tikslus ir rezultatus bei aptarti, kaip programinė įranga turėtų veikti įvairiais scenarijais. ir aplinkos.

    *Remdamasis kūrėjo atsiliepimais, AI palaipsniui sužinos apie jo ketinimus ir sugeneruos kodą, kad atspindėtų projekto tikslus.

    *Šis pirmyn ir atgal, žmogaus ir mašinos bendradarbiavimas kartos programinės įrangos versiją, kol baigta ir tinkama versija bus paruošta vidiniam diegimui arba pardavimui visuomenei.

    *Tiesą sakant, šis bendradarbiavimas tęsis po to, kai programinė įranga bus naudojama realiame pasaulyje. Kai pranešama apie paprastas klaidas, AI automatiškai jas ištaisys taip, kad atitiktų pirminius norimus tikslus, nurodytus programinės įrangos kūrimo procese. Tuo tarpu rimtesnės klaidos reikalaus žmogaus ir AI bendradarbiavimo, kad būtų išspręsta problema.

    Apskritai būsimi programinės įrangos kūrėjai mažiau dėmesio skirs „kaip“, o daugiau – „kas“ ir „kodėl“. Jie bus mažiau amatininkai ir daugiau architektų. Programavimas bus intelektualus pratimas, kuriam prireiks žmonių, galinčių metodiškai perteikti ketinimus ir rezultatus taip, kad dirbtinis intelektas galėtų suprasti, o tada automatiškai užkoduoti baigtą skaitmeninę programą ar platformą.

    Dirbtiniu intelektu pagrįsta programinės įrangos kūrimas

    Atsižvelgiant į aukščiau pateiktą skyrių, akivaizdu, kad manome, kad dirbtinis intelektas vaidins vis svarbesnį vaidmenį programinės įrangos kūrimo srityje, tačiau jo priėmimas nėra skirtas vien programinės įrangos kūrėjų veiksmingumui – už šią tendenciją taip pat slypi verslo jėgos.

    Konkurencija tarp programinės įrangos kūrimo kompanijų kasmet vis aštrėja. Kai kurios įmonės konkuruoja išpirkdamos savo konkurentus. Kiti konkuruoja dėl programinės įrangos diferenciacijos. Pastarosios strategijos iššūkis yra tas, kad ji nėra lengvai apginta. Bet kokią programinę įrangą ar patobulinimą, kurią viena įmonė siūlo savo klientams, jos konkurentai gali gana lengvai nukopijuoti.

    Dėl šios priežasties praėjo laikai, kai įmonės išleidžia naują programinę įrangą kas vienerius ar trejus metus. Šiomis dienomis įmonės, kurios orientuojasi į diferencijavimą, turi finansinę paskatą vis dažniau išleisti naują programinę įrangą, programinės įrangos pataisymus ir programinės įrangos funkcijas. Kuo greičiau įmonės diegia naujoves, tuo labiau jos skatina klientų lojalumą ir padidina perėjimo prie konkurentų išlaidas. Šis perėjimas prie reguliaraus laipsniško programinės įrangos atnaujinimo pristatymo yra tendencija, vadinama „nuolatiniu pristatymu“.

    Deja, nuolatinis pristatymas nėra lengvas. Vos ketvirtadalis šių dienų programinės įrangos kompanijų gali įvykdyti šios tendencijos reikalaujamą išleidimo grafiką. Štai kodėl toks didelis susidomėjimas dirbtinio intelekto naudojimu, kad viskas vyktų greičiau.

    Kaip minėta anksčiau, AI ilgainiui vis labiau bendradarbiaus kuriant ir kuriant programinę įrangą. Tačiau artimiausiu metu įmonės tai naudoja siekdamos vis labiau automatizuoti programinės įrangos kokybės užtikrinimo (testavimo) procesus. Kitos įmonės eksperimentuoja naudodamos dirbtinį intelektą, kad automatizuotų programinės įrangos dokumentaciją – naujų funkcijų ir komponentų išleidimo ir jų gamybos iki kodo lygio stebėjimo procesą.

    Apskritai, dirbtinis intelektas vis labiau vaidins pagrindinį vaidmenį kuriant programinę įrangą. Tos programinės įrangos įmonės, kurios anksti įsisavins jos naudojimą, galų gale mėgausis eksponentiniu augimu, palyginti su konkurentais. Tačiau, kad suprastų šiuos AI pranašumus, pramonė taip pat turės matyti pažangą aparatinės įrangos srityje – kitame skyriuje šis klausimas bus išsamiau aptartas.

    Programinė įranga kaip paslauga

    Kurdami skaitmeninio meno ar dizaino darbus, visi kūrybingi profesionalai naudoja „Adobe“ programinę įrangą. Beveik tris dešimtmečius įsigijote „Adobe“ programinę įrangą kaip kompaktinį diską ir naudojote ją amžinai, prireikus pirkdami atnaujintas versijas. Tačiau 2010-ųjų viduryje „Adobe“ pakeitė savo strategiją.

    Užuot pirkę programinės įrangos kompaktinius diskus su erzinančiai sudėtingais nuosavybės raktais, „Adobe“ klientai dabar turės mokėti mėnesinį abonementą už teisę atsisiųsti „Adobe“ programinę įrangą į savo kompiuterių įrenginius – programinę įrangą, kuri veiktų tik kartu su įprastu ir nuolatiniu interneto ryšiu su „Adobe“ serveriais. .

    Po šio pakeitimo klientai nebeturėjo „Adobe“ programinės įrangos; jie išsinuomojo pagal poreikį. Savo ruožtu klientams nebereikia nuolat pirkti atnaujintų „Adobe“ programinės įrangos versijų; tol, kol jie užsiprenumeravo „Adobe“ paslaugą, naujausius atnaujinimus į savo įrenginį visada įkelia iš karto po išleidimo (dažnai kelis kartus per metus).

    Tai tik vienas iš vienos didžiausių programinės įrangos tendencijų, kurias matėme pastaraisiais metais, pavyzdys: kaip programinė įranga pereina į eksploataciją, o ne į atskirą produktą. Ir ne tik mažesnė, specializuota programinė įranga, bet ir visos operacinės sistemos, kaip matėme išleidus Microsoft Windows 10 naujinimą. Kitaip tariant, programinė įranga kaip paslauga (SaaS).

    Savarankiško mokymosi programinė įranga (SLS)

    Remiantis pramonės perėjimu prie SaaS, atsiranda nauja programinės įrangos erdvės tendencija, apimanti SaaS ir AI. Pirmaujančios bendrovės iš „Amazon“, „Google“, „Microsoft“ ir IBM pradėjo siūlyti savo AI infrastruktūrą kaip paslaugą savo klientams.

    Kitaip tariant, dirbtinis intelektas ir mašininis mokymasis nebėra prieinami tik programinės įrangos gigantams, bet kuri įmonė ir kūrėjas gali pasiekti internetinius AI išteklius, kad galėtų kurti savarankiško mokymosi programinę įrangą (SLS).

    Dirbtinio intelekto ateities serijoje išsamiai aptarsime AI potencialą, tačiau šio skyriaus kontekste pasakysime, kad dabartiniai ir būsimi programinės įrangos kūrėjai kurs SLS, kad sukurtų naujas sistemas, kurios numatytų užduotis, kurias reikia atlikti ir tiesiog automatiškai užpildykite juos už jus.

    Tai reiškia, kad būsimas AI padėjėjas išmoks jūsų darbo stiliaus biure ir pradės už jus atlikti pagrindines užduotis, pvz., formatuoti dokumentus taip, kaip jums patinka, rašyti el. laiškus jūsų balso tonu, tvarkyti darbo kalendorių ir dar daugiau.

    Namuose tai gali reikšti, kad SLS sistema tvarkys jūsų būsimus išmaniuosius namus, įskaitant tokias užduotis kaip išankstinis namų šildymas prieš atvykstant arba reikiamų įsigyti bakalėjos prekių stebėjimas.

    Iki 2020 m. ir 2030 m. šios SLS sistemos atliks gyvybiškai svarbų vaidmenį įmonių, vyriausybės, kariuomenės ir vartotojų rinkose, palaipsniui padėsdamos kiekvienai pagerinti našumą ir sumažinti visų rūšių atliekas. SLS technologiją išsamiau aptarsime vėliau šioje serijoje.

    Tačiau visa tai slypi.

    Vienintelis SaaS ir SLS modelių veikimo būdas yra tada, kai internetas (arba už jo esanti infrastruktūra) toliau auga ir tobulėja, kartu su skaičiavimo ir saugojimo aparatine įranga, kuri valdo „debesį“, kurioje veikia šios SaaS/SLS sistemos. Laimei, mūsų stebimos tendencijos atrodo daug žadančios.

    Norėdami sužinoti, kaip internetas augs ir vystysis, skaitykite mūsų Interneto ateitis serija. Norėdami sužinoti daugiau apie tai, kaip tobulės kompiuterio aparatinė įranga, skaitykite toliau naudodami toliau pateiktas nuorodas!

    Serialas „Kompiuterių ateitis“.

    Naujos vartotojo sąsajos, skirtos iš naujo apibrėžti žmoniją: kompiuterių ateitis P1

    Skaitmeninės saugojimo revoliucija: kompiuterių ateitis P3

    Blėstantis Moore'o dėsnis, skatinantis iš esmės permąstyti mikroschemas: kompiuterių ateitis P4

    Debesų kompiuterija tampa decentralizuota: kompiuterių ateitis P5

    Kodėl šalys konkuruoja, kad sukurtų didžiausius superkompiuterius? Kompiuterių ateitis P6

    Kaip kvantiniai kompiuteriai pakeis pasaulį: kompiuterių ateitis P7    

    Kitas suplanuotas šios prognozės atnaujinimas

    2023-02-08

    Prognozės nuorodos

    Šioje prognozėje buvo nurodytos šios populiarios ir institucinės nuorodos:

    Šioje prognozėje buvo nurodytos šios Quantumrun nuorodos: