Budúcnosť vývoja softvéru: Budúcnosť počítačov P2

OBRÁZOK PRE OBRÁZOK: Quantumrun

Budúcnosť vývoja softvéru: Budúcnosť počítačov P2

    V roku 1969 sa Neil Armstrong a Buzz Aldrin stali medzinárodnými hrdinami po tom, čo ako prví ľudia vstúpili na Mesiac. Ale zatiaľ čo títo astronauti boli hrdinami pred kamerou, existujú tisíce neospevovaných hrdinov, ktorí bez ich účasti by prvé pristátie na Mesiaci s ľudskou posádkou nebolo nemožné. Niektorí z týchto hrdinov boli vývojári softvéru, ktorí naprogramovali let. prečo?

    Počítače, ktoré vtedy existovali, boli oveľa jednoduchšie ako dnes. V skutočnosti je opotrebovaný smartfón priemerného človeka o niekoľko rádov výkonnejší ako čokoľvek na palube kozmickej lode Apollo 11 (a celej NASA zo 1960. rokov minulého storočia). Navyše, počítače boli v tom čase kódované špecializovanými softvérovými vývojármi, ktorí programovali softvér v najzákladnejších strojových jazykoch: AGC Assembly Code alebo jednoducho 1s a 0s.

    Pre kontext, jeden z týchto neospevovaných hrdinov, riaditeľ divízie softvérového inžinierstva vesmírneho programu Apollo, Margaret Hamiltonováa jej tím musel napísať kopec kódu (na obrázku nižšie), ktorý by sa pomocou dnešných programovacích jazykov dal napísať za zlomok úsilia.

    (Na obrázku vyššie je Margaret Hamiltonová stojaca vedľa stohu papiera so softvérom Apollo 11.)

    A na rozdiel od súčasnosti, keď vývojári softvéru kódujú asi 80 až 90 percent možných scenárov, pri misiách Apollo musel ich kód počítať so všetkým. Aby som to uviedla na správnu mieru, samotná Margaret povedala:

    "Kvôli chybe v manuáli kontrolného zoznamu bol radarový spínač stretnutia umiestnený v nesprávnej polohe. To spôsobilo, že vysielal chybné signály do počítača. Výsledkom bolo, že počítač bol požiadaný, aby vykonal všetky svoje normálne funkcie na pristátie." pri prijímaní dodatočnej záťaže falošných údajov, ktoré zaberali 15 % svojho času. Počítač (alebo skôr softvér v ňom) bol dostatočne inteligentný na to, aby rozpoznal, že sa od neho vyžaduje viac úloh, ako by mal. Potom odoslal poplach, čo pre astronauta znamenalo, že som preťažený viacerými úlohami, ako by som mal v tejto chvíli robiť, a nechám si len tie dôležitejšie, teda tie, ktoré sú potrebné na pristátie... , počítač bol naprogramovaný tak, aby dokázal viac než len rozpoznať chybové stavy. Do softvéru bola začlenená kompletná sada programov na obnovu. Úlohou softvéru v tomto prípade bolo odstrániť úlohy s nižšou prioritou a obnoviť tie dôležitejšie ... Ak by počítač nemalrozpoznal tento problém a podnikol nápravné opatrenia, pochybujem, že by Apollo 11 bolo také úspešné pristátie na Mesiaci."

    — Margaret Hamiltonová, riaditeľka Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, „Computer Got Loaded“, List to Datamácia, Marca 1, 1971

    Ako už bolo naznačené vyššie, vývoj softvéru sa od tých prvých dní Apollo vyvinul. Nové programovacie jazyky na vysokej úrovni nahradili únavný proces kódovania s 1 a 0 na kódovanie so slovami a symbolmi. Funkcie ako generovanie náhodného čísla, ktoré si vyžadovalo niekoľko dní kódovania, sú teraz nahradené písaním jedného príkazového riadku.

    Inými slovami, softvérové ​​kódovanie sa s každým ďalším desaťročím stáva čoraz automatizovanejším, intuitívnejším a ľudským. Tieto vlastnosti budú pokračovať len v budúcnosti a budú viesť vývoj softvéru spôsobmi, ktoré budú mať hlboký vplyv na náš každodenný život. Toto je táto kapitola Budúcnosť počítačov séria preskúma.

    Vývoj softvéru pre masy

    Proces nahradenia potreby kódovania 1 a 0 (strojový jazyk) slovami a symbolmi (ľudský jazyk) sa označuje ako proces pridávania vrstiev abstrakcií. Tieto abstrakcie prišli vo forme nových programovacích jazykov, ktoré automatizujú zložité alebo bežné funkcie pre oblasť, pre ktorú boli navrhnuté. Začiatkom 2000. storočia sa však objavili nové spoločnosti (ako Caspio, QuickBase a Mendi), ktoré začali ponúkať platformy, ktoré sa nazývajú bez kódu alebo platformy s nízkym kódom.

    Ide o užívateľsky prívetivé, online dashboardy, ktoré umožňujú netechnickým profesionálom vytvárať vlastné aplikácie prispôsobené potrebám ich podnikania prostredníctvom spájania vizuálnych blokov kódu (symboly/grafika). Inými slovami, namiesto toho, aby ste vyrúbali strom a vyrobili z neho šatníkovú skriňu, postavíte ho pomocou moderných dielov z Ikea.

    Aj keď používanie tejto služby stále vyžaduje určitú úroveň počítačových znalostí, už nepotrebujete titul z informatiky, ale používajte ju. Výsledkom je, že táto forma abstrakcie umožňuje vzostup miliónov nových „vývojárov softvéru“ v podnikovom svete a mnohým deťom umožňuje naučiť sa kódovať v skoršom veku.

    Predefinovanie toho, čo znamená byť vývojárom softvéru

    Boli časy, keď sa krajina alebo tvár človeka dali zachytiť len na plátno. Maliar by musel roky študovať a praxovať ako učeň, učiť sa maliarskemu remeslu – ako miešať farby, aké nástroje sú najlepšie, správne techniky na vytvorenie konkrétneho vizuálu. Náklady na obchod a dlhoročné skúsenosti potrebné na jeho dobré vykonávanie tiež znamenali, že maliarov bolo málo.

    Potom bol vynájdený fotoaparát. A kliknutím na tlačidlo boli krajiny a portréty zachytené za sekundu, ktorých maľovanie by inak trvalo dni až týždne. A ako sa fotoaparáty zdokonaľovali, zlacňovali a rozmnožovali sa do takej miery, že sú teraz súčasťou aj tých najzákladnejších smartfónov, snímanie sveta okolo nás sa stalo bežnou a príležitostnou činnosťou, ktorej sa teraz zúčastňuje každý.

    Keďže abstrakcie postupujú a nové softvérové ​​jazyky automatizujú čoraz rutinnejšiu prácu na vývoji softvéru, čo to bude znamenať byť vývojárom softvéru o 10 až 20 rokov? Aby sme odpovedali na túto otázku, prejdime si, ako budú budúci vývojári softvéru pravdepodobne postupovať pri vytváraní aplikácií zajtrajška:

    *Po prvé, všetka štandardizovaná, opakujúca sa kódovacia práca zmizne. Na jej mieste bude rozsiahla knižnica preddefinovaných správaní komponentov, používateľských rozhraní a manipulácií s dátovým tokom (časti Ikea).

    *Podobne ako dnes, zamestnávatelia alebo podnikatelia definujú špecifické ciele a výstupy pre vývojárov softvéru, ktoré budú realizovať prostredníctvom špecializovaných softvérových aplikácií alebo platforiem.

    *Títo vývojári potom zmapujú svoju stratégiu vykonávania a začnú prototypovať prvé návrhy svojho softvéru prístupom k ich knižnici komponentov a pomocou vizuálnych rozhraní na ich prepojenie – vizuálnych rozhraní, ku ktorým sa pristupuje prostredníctvom rozšírenej reality (AR) alebo virtuálnej reality (VR).

    *Špecializované systémy umelej inteligencie (AI) navrhnuté tak, aby porozumeli cieľom a výstupom vyplývajúcim z počiatočných návrhov ich vývojárov, následne vylepšia navrhnutý softvérový dizajn a zautomatizujú všetky testy zabezpečenia kvality.

    *Na základe výsledkov potom AI položí vývojárovi množstvo otázok (pravdepodobne prostredníctvom verbálnej komunikácie podobnej Alexa), v snahe lepšie pochopiť a definovať ciele a výstupy projektu a diskutovať o tom, ako by mal softvér konať v rôznych scenároch. a prostrediach.

    *Na základe spätnej väzby vývojára sa AI postupne naučí svoj zámer a vygeneruje kód, ktorý bude odrážať ciele projektu.

    *Táto spolupráca medzi človekom a strojom bude opakovať verziu po verzii softvéru, až kým nebude hotová a predajná verzia pripravená na internú implementáciu alebo na predaj verejnosti.

    *V skutočnosti bude táto spolupráca pokračovať aj po tom, čo bude softvér vystavený reálnemu používaniu. Keď sú hlásené jednoduché chyby, AI ich automaticky opraví spôsobom, ktorý odráža pôvodné, požadované ciele načrtnuté počas procesu vývoja softvéru. Medzitým si závažnejšie chyby budú vyžadovať spoluprácu človeka a AI na vyriešenie problému.

    Celkovo sa budúci vývojári softvéru budú menej zameriavať na „ako“ a viac na „čo“ a „prečo“. Budú menej remeselníci a viac architekti. Programovanie bude intelektuálnym cvičením, ktoré si bude vyžadovať ľudí, ktorí dokážu metodicky komunikovať zámery a výsledky spôsobom, ktorému AI porozumie, a potom automaticky nakódovať hotovú digitálnu aplikáciu alebo platformu.

    Vývoj softvéru riadený umelou inteligenciou

    Vzhľadom na vyššie uvedenú časť je jasné, že máme pocit, že AI bude zohrávať čoraz ústrednejšiu úlohu v oblasti vývoja softvéru, ale jej prijatie nie je čisto za účelom zefektívnenia vývojárov softvéru, za týmto trendom sú aj obchodné sily.

    Konkurencia medzi spoločnosťami zaoberajúcimi sa vývojom softvéru je každým rokom tvrdšia. Niektoré spoločnosti súťažia tak, že kupujú svojich konkurentov. Iní súťažia v oblasti softvérovej diferenciácie. Problém s druhou stratégiou je, že nie je ľahko obhájiteľná. Akékoľvek softvérové ​​funkcie alebo vylepšenia, ktoré jedna spoločnosť ponúka svojim klientom, môžu jej konkurenti relatívne ľahko skopírovať.

    Z tohto dôvodu sú preč časy, keď spoločnosti vydávajú nový softvér každý jeden až tri roky. Spoločnosti, ktoré sa zameriavajú na diferenciáciu, sú v súčasnosti finančne motivované k tomu, aby čoraz pravidelnejšie vydávali nový softvér, opravy softvéru a softvérové ​​funkcie. Čím rýchlejšie spoločnosti inovujú, tým viac podporujú lojalitu klientov a zvyšujú náklady na prechod ku konkurencii. Tento posun smerom k pravidelnému dodávaniu prírastkových aktualizácií softvéru je trend nazývaný „nepretržité doručovanie“.

    Bohužiaľ, nepretržité doručovanie nie je jednoduché. Sotva štvrtina súčasných softvérových spoločností dokáže realizovať plán vydania požadovaný týmto trendom. A to je dôvod, prečo je taký záujem o používanie AI na urýchlenie vecí.

    Ako už bolo načrtnuté vyššie, AI bude v konečnom dôsledku zohrávať čoraz väčšiu úlohu spolupráce pri navrhovaní a vývoji softvéru. Z krátkodobého hľadiska ho však spoločnosti využívajú na čoraz väčšiu automatizáciu procesov zabezpečenia kvality (testovania) softvéru. A ďalšie spoločnosti experimentujú s použitím AI na automatizáciu softvérovej dokumentácie – procesu sledovania vydania nových funkcií a komponentov a spôsobu ich výroby až po úroveň kódu.

    Celkovo bude AI čoraz viac zohrávať ústrednú úlohu pri vývoji softvéru. Softvérové ​​spoločnosti, ktoré si jeho používanie osvoja skoro, sa nakoniec budú tešiť z exponenciálneho rastu oproti svojim konkurentom. Aby si však uvedomili tieto zisky AI, priemysel bude musieť vidieť pokroky aj v hardvérovej stránke vecí – nasledujúca časť sa bude venovať tomuto bodu.

    Softvér ako služba

    Všetci kreatívni profesionáli používajú softvér Adobe pri vytváraní digitálneho umenia alebo dizajnérskych prác. Takmer tri desaťročia ste si zakúpili softvér Adobe ako CD a vlastnili ste jeho používanie natrvalo, pričom ste si podľa potreby kupovali budúce aktualizované verzie. V polovici roku 2010 však spoločnosť Adobe zmenila svoju stratégiu.

    Namiesto kupovania softvérových CD s nepríjemne prepracovanými vlastníckymi kľúčmi by teraz zákazníci Adobe museli platiť mesačné predplatné za právo stiahnuť si softvér Adobe do svojich výpočtových zariadení, softvér, ktorý by fungoval len spolu s pravidelným až stálym internetovým pripojením k serverom Adobe. .

    Vďaka tejto zmene už zákazníci nevlastnia softvér Adobe; prenajímali podľa potreby. Na oplátku už zákazníci nemusia neustále kupovať aktualizované verzie softvéru Adobe; pokiaľ by si predplatili službu Adobe, vždy by mali najnovšie aktualizácie nahrané do svojho zariadenia ihneď po vydaní (často niekoľkokrát do roka).

    Toto je len jeden príklad jedného z najväčších softvérových trendov, ktoré sme v posledných rokoch videli: ako softvér prechádza do služby namiesto samostatného produktu. A nielen menší, špecializovaný softvér, ale celé operačné systémy, ako sme videli pri vydaní aktualizácie Windows 10 od Microsoftu. Inými slovami, softvér ako služba (SaaS).

    Samoučiaci sa softvér (SLS)

    Vychádzajúc z prechodu odvetvia smerom k SaaS sa objavuje nový trend v softvérovom priestore, ktorý kombinuje SaaS aj AI. Popredné spoločnosti z Amazonu, Google, Microsoftu a IBM začali ponúkať svoju infraštruktúru AI ako službu svojim klientom.

    Inými slovami, AI a strojové učenie už nie sú prístupné len pre softvérových gigantov, teraz má každá spoločnosť a vývojár prístup k online zdrojom AI na vytváranie samoučiaceho sa softvéru (SLS).

    O potenciáli AI budeme podrobne diskutovať v našej sérii Future of Artificial Intelligence, ale pre kontext tejto kapitoly povieme, že súčasní a budúci vývojári softvéru vytvoria SLS, aby vytvorili nové systémy, ktoré predvídajú úlohy, ktoré je potrebné vykonať a jednoducho ich automaticky doplňte za vás.

    To znamená, že budúci asistent AI sa naučí váš pracovný štýl v kancelárii a začne za vás vykonávať základné úlohy, ako je formátovanie dokumentov podľa vašich predstáv, vytváranie e-mailov podľa vášho tónu hlasu, správa pracovného kalendára a ďalšie.

    Doma to môže znamenať, že systém SLS bude spravovať váš budúci inteligentný dom vrátane úloh, ako je predhrievanie domu pred príchodom alebo sledovanie potravín, ktoré potrebujete nakúpiť.

    Do roku 2020 a do 2030. rokov XNUMX. storočia budú tieto systémy SLS hrať zásadnú úlohu na podnikových, vládnych, vojenských a spotrebiteľských trhoch, pričom postupne každému pomôžu zlepšiť ich produktivitu a znížiť množstvo odpadu všetkého druhu. Technológii SLS sa budeme podrobnejšie venovať neskôr v tejto sérii.

    Všetko to má však háčik.

    Jediný spôsob, ako modely SaaS a SLS fungujú, je, ak bude internet (alebo infraštruktúra za ním) naďalej rásť a zlepšovať sa spolu s výpočtovým a úložným hardvérom, ktorý prevádzkuje „cloud“, na ktorom tieto systémy SaaS/SLS fungujú. Našťastie, trendy, ktoré sledujeme, vyzerajú sľubne.

    Ak sa chcete dozvedieť, ako bude internet rásť a vyvíjať sa, prečítajte si naše Budúcnosť internetu séria. Ak sa chcete dozvedieť viac o tom, ako napreduje počítačový hardvér, čítajte ďalej pomocou odkazov nižšie!

    Séria Budúcnosť počítačov

    Vznikajúce používateľské rozhrania na predefinovanie ľudstva: Budúcnosť počítačov P1

    Revolúcia digitálnych úložísk: Budúcnosť počítačov P3

    Miznúci Mooreov zákon, ktorý podnietil zásadné prehodnotenie mikročipov: Budúcnosť počítačov P4

    Cloud computing sa stáva decentralizovaným: Budúcnosť počítačov P5

    Prečo krajiny súťažia o výrobu najväčších superpočítačov? Budúcnosť počítačov P6

    Ako kvantové počítače zmenia svet: Budúcnosť počítačov P7    

    Ďalšia plánovaná aktualizácia tejto prognózy

    2023-02-08

    Referencie predpovede

    Pre túto prognózu sa odkazovalo na nasledujúce populárne a inštitucionálne odkazy:

    Pre túto predpoveď sa odkazovalo na nasledujúce odkazy Quantumrun: