E ardhmja e zhvillimit të softuerit: E ardhmja e kompjuterëve P2

KREDI I IMAZHIT: Kuantumrun

E ardhmja e zhvillimit të softuerit: E ardhmja e kompjuterëve P2

    Në vitin 1969, Neil Armstrong dhe Buzz Aldrin u bënë heronj ndërkombëtarë pasi ishin njerëzit e parë që shkelën në Hënë. Por ndërsa këta astronautë ishin heronjtë në kamera, ka mijëra heronj të pakënduar, të cilët pa përfshirjen e tyre, ulja e parë në Hënë me njerëz nuk do të ishte e pamundur. Disa nga këta heronj ishin zhvilluesit e softuerit që koduan fluturimin. Pse?

    Epo, kompjuterët që ekzistonin në atë kohë ishin shumë më të thjeshtë se sa janë sot. Në fakt, smartfoni i konsumuar i një personi mesatar është disa gradë më i fuqishëm se çdo gjë në bordin e anijes kozmike Apollo 11 (dhe të gjithë NASA-n e viteve 1960 për këtë çështje). Për më tepër, kompjuterët në atë kohë ishin të koduar nga zhvillues të specializuar softuerësh që programonin softuer në gjuhët më themelore të makinerisë: AGC Assembly Code ose thjesht, 1 dhe 0.

    Për kontekstin, një nga këta heronj të pakënduar, Drejtori i Divizionit të Inxhinierisë Softuerike i programit hapësinor Apollo, Margaret Hamilton, dhe ekipi i saj duhej të shkruante një kod kodi (foto më poshtë) që përdorimi i gjuhëve të programimit të sotëm mund të ishte shkruar duke përdorur një pjesë të përpjekjes.

    (Foto më lart është Margaret Hamilton duke qëndruar pranë një pirg letre që përmban softuerin Apollo 11.)

    Dhe ndryshe nga ditët e sotme ku zhvilluesit e programeve kompjuterike kodojnë për rreth 80-90 për qind të skenarëve të mundshëm, për misionet Apollo, kodi i tyre duhej të llogariste gjithçka. Për ta vënë këtë në perspektivë, vetë Margaret tha:

    "Për shkak të një gabimi në manualin e listës së kontrollit, çelësi i radarit të takimit u vendos në pozicionin e gabuar. Kjo bëri që ai të dërgonte sinjale të gabuara në kompjuter. Rezultati ishte se kompjuterit iu kërkua të kryente të gjitha funksionet e tij normale për ulje ndërsa merrte një ngarkesë shtesë të dhënash të rreme, të cilat shpenzonin 15% të kohës së tij. Kompjuteri (ose më mirë softueri në të) ishte mjaftueshëm i zgjuar për të kuptuar se po i kërkohej të kryente më shumë detyra sesa duhej të kryente. Më pas ai dërgoi nxjerr një alarm, që do të thoshte për astronautin, unë jam i mbingarkuar me më shumë detyra sesa duhet të bëja në këtë kohë dhe do të mbaj vetëm detyrat më të rëndësishme; dmth ato që nevojiten për ulje ... Në fakt , kompjuteri ishte programuar që të bënte më shumë sesa të njihte kushtet e gabimit. Një grup i plotë programesh rikuperimi u inkorporua në softuer. Veprimi i softuerit, në këtë rast, ishte të eliminonte detyrat me prioritet më të ulët dhe të rivendoste ato më të rëndësishmet ... Nëse kompjuteri nuk do të kishtee njohu këtë problem dhe ndërmori masa rikuperimi, dyshoj nëse Apollo 11 do të kishte qenë ulja e suksesshme në Hënë”.

    - Margaret Hamilton, Drejtore e Apollo Flight Programming Computer Laboratory MIT Draper, Cambridge, Massachusetts, "Computer Got Loaded", Letër për Datamation, Mars 1, 1971

    Siç u la të kuptohet më herët, zhvillimi i softuerit ka evoluar që nga ato ditët e hershme të Apollo. Gjuhët e reja të programimit të nivelit të lartë zëvendësuan procesin e lodhshëm të kodimit me 1 dhe 0 në kodimin me fjalë dhe simbole. Funksionet si gjenerimi i një numri të rastësishëm që dikur kërkonte ditë kodimi, tani zëvendësohen me shkrimin e një linje komande të vetme.

    Me fjalë të tjera, kodimi i softuerit është bërë gjithnjë e më i automatizuar, intuitiv dhe njerëzor me çdo dekadë që kalon. Këto cilësi do të vazhdojnë vetëm në të ardhmen, duke udhëhequr evolucionin e zhvillimit të softuerit në mënyra që do të kenë një ndikim të thellë në jetën tonë të përditshme. Kjo është ajo që ky kapitull i E ardhmja e kompjuterëve seritë do të eksplorojnë.

    Zhvillimi i softuerit për masat

    Procesi i zëvendësimit të nevojës për të koduar 1-të dhe 0-të (gjuha e makinerisë) me fjalë dhe simbole (gjuha njerëzore) quhet procesi i shtimit të shtresave të abstraksioneve. Këto abstraksione kanë ardhur në formën e gjuhëve të reja programimi që automatizojnë funksione komplekse ose të zakonshme për fushën për të cilën janë krijuar. Por gjatë fillimit të viteve 2000, u shfaqën kompani të reja (si Caspio, QuickBase dhe Mendi) që filluan të ofrojnë ato që quhen platforma pa kod ose me kod të ulët.

    Këto janë tabela kompjuterike të përshtatshme për përdoruesit, të cilat u mundësojnë profesionistëve jo teknikë të krijojnë aplikacione të personalizuara të përshtatura për nevojat e biznesit të tyre duke bashkuar blloqet vizuale të kodit (simbolet/grafika). Me fjalë të tjera, në vend që të prisni një pemë dhe ta bëni atë në një dollap veshjeje, ju e ndërtoni atë duke përdorur pjesë të para-modës nga Ikea.

    Ndërsa përdorimi i këtij shërbimi kërkon ende një nivel të caktuar njohurie kompjuterike, nuk keni më nevojë për një diplomë të shkencave kompjuterike ta përdorni atë. Si rezultat, kjo formë e abstraksionit po mundëson rritjen e miliona "zhvilluesve të softuerit" të rinj në botën e korporatave dhe po u mundëson shumë fëmijëve të mësojnë se si të kodojnë në një moshë më të hershme.

    Ripërcaktimi i asaj që do të thotë të jesh një zhvillues softuerësh

    Ishte një kohë kur një peizazh ose fytyra e një personi mund të kapej vetëm në një kanavacë. Një piktor duhet të studiojë dhe të praktikojë për vite si praktikant, duke mësuar zanatin e pikturës - si të përziejë ngjyrat, cilat mjete janë më të mira, teknikat e duhura për të ekzekutuar një pamje specifike. Kostoja e tregtisë dhe përvoja shumëvjeçare që nevojitej për ta kryer atë mirë nënkuptonin gjithashtu se piktorët ishin të paktë.

    Pastaj u shpik kamera. Dhe me klikimin e një butoni, peizazhe dhe portrete u kapën në një sekondë që përndryshe do të duheshin ditë deri në javë për t'u pikturuar. Dhe ndërsa kamerat u përmirësuan, u bënë më të lira dhe u bënë të bollshme në një pikë ku ato tani përfshihen edhe në smartfonët më themelorë, kapja e botës rreth nesh u bë një aktivitet i zakonshëm dhe i rastësishëm në të cilin marrin pjesë të gjithë tani.

    Ndërsa abstraksionet përparojnë dhe gjuhët e reja të softuerit automatizojnë punën gjithnjë e më rutinore të zhvillimit të softuerit, çfarë do të thotë të jesh një zhvillues softuerësh në 10 deri në 20 vjet? Për t'iu përgjigjur kësaj pyetjeje, le të shohim se si zhvilluesit e ardhshëm të softuerit ka të ngjarë të shkojnë në ndërtimin e aplikacioneve të së nesërmes:

    *Së pari, e gjithë puna e kodimit e standardizuar dhe e përsëritur do të zhduket. Në vend të saj do të jetë një bibliotekë e gjerë me sjellje të paracaktuara të komponentëve, UI dhe manipulime të rrjedhës së të dhënave (pjesë Ikea).

    *Si sot, punëdhënësit ose sipërmarrësit do të përcaktojnë qëllime dhe rezultate specifike për zhvilluesit e programeve kompjuterike për t'i ekzekutuar përmes aplikacioneve ose platformave të specializuara softuerike.

    *Këta zhvillues më pas do të hartojnë strategjinë e tyre të ekzekutimit dhe do të fillojnë të prototipizojnë draftet e hershme të softuerit të tyre duke hyrë në bibliotekën e tyre përbërës dhe duke përdorur ndërfaqe vizuale për t'i lidhur ato së bashku - ndërfaqe vizuale të aksesuara përmes realitetit të shtuar (AR) ose realitetit virtual (VR).

    *Sistemet e specializuara të inteligjencës artificiale (AI) të dizajnuara për të kuptuar qëllimet dhe rezultatet e nënkuptuara nga draftet fillestare të zhvilluesit të tyre, më pas do të rafinojnë dizajnin e hartuar të softuerit dhe do të automatizojnë të gjitha testimet e sigurimit të cilësisë.

    *Bazuar në rezultatet, AI më pas do t'i bëjë një mori pyetjesh zhvilluesit (me gjasë përmes komunikimit verbal, të ngjashëm me Alexa), duke kërkuar të kuptojë dhe përcaktojë më mirë qëllimet dhe rezultatet e projektit dhe të diskutojë se si duhet të veprojë softueri në skenarë të ndryshëm dhe mjediset.

    *Bazuar në reagimet e zhvilluesit, AI gradualisht do të mësojë qëllimin e tij ose të saj dhe do të gjenerojë kodin për të pasqyruar qëllimet e projektit.

    *Ky bashkëpunim njerëzor-makinë do të përsërisë version pas versioni të softuerit derisa një version i përfunduar dhe i tregtueshëm të jetë gati për zbatim të brendshëm ose për shitje për publikun.

    *Në fakt, ky bashkëpunim do të vazhdojë pasi softueri të jetë i ekspozuar ndaj përdorimit të botës reale. Ndërsa raportohen gabime të thjeshta, AI do t'i rregullojë ato automatikisht në një mënyrë që pasqyron qëllimet origjinale dhe të dëshiruara të përshkruara gjatë procesit të zhvillimit të softuerit. Ndërkohë, defektet më serioze do të kërkojnë një bashkëpunim njeri-AI për të zgjidhur problemin.

    Në përgjithësi, zhvilluesit e ardhshëm të softuerit do të fokusohen më pak në 'si' dhe më shumë në 'çfarë' dhe 'pse'. Ata do të jenë më pak zejtarë dhe më shumë arkitektë. Programimi do të jetë një ushtrim intelektual që do të kërkojë njerëz që mund të komunikojnë metodikisht qëllimin dhe rezultatet në një mënyrë që një AI të mund ta kuptojë dhe më pas të kodojë automatikisht një aplikacion apo platformë dixhitale të përfunduar.

    Zhvillimi i softuerit të drejtuar nga inteligjenca artificiale

    Duke pasur parasysh seksionin e mësipërm, është e qartë se ne mendojmë se AI do të luajë një rol gjithnjë e më qendror në fushën e zhvillimit të softuerit, por miratimi i tij nuk është thjesht për qëllimin për t'i bërë zhvilluesit e softuerit më efektivë, ka edhe forca biznesi pas kësaj tendence.

    Konkurrenca midis kompanive të zhvillimit të softuerit po bëhet më e ashpër çdo vit që kalon. Disa kompani konkurrojnë duke blerë konkurrentët e tyre. Të tjerët konkurrojnë në diferencimin e softuerit. Sfida me strategjinë e fundit është se ajo nuk mund të mbrohet lehtë. Çdo veçori ose përmirësim të softuerit që një kompani ofron për klientët e saj, konkurrentët e saj mund ta kopjojnë me lehtësi relative.

    Për këtë arsye, kohët kur kompanitë lëshojnë softuer të rinj çdo një deri në tre vjet kanë ikur. Këto ditë, kompanitë që fokusohen në diferencimin kanë një nxitje financiare për të lëshuar softuer të ri, rregullime softuerësh dhe veçori të softuerit në një bazë gjithnjë e më të rregullt. Sa më shpejt që kompanitë të inovojnë, aq më shumë nxisin besnikërinë e klientit dhe rrisin koston e kalimit te konkurrentët. Ky ndryshim drejt shpërndarjes së rregullt të përditësimeve shtesë të softuerit është një prirje e quajtur "dorëzimi i vazhdueshëm".

    Për fat të keq, dorëzimi i vazhdueshëm nuk është i lehtë. Mezi një e katërta e kompanive të sotme të softuerit mund të ekzekutojnë planin e lëshimit të kërkuar nga kjo prirje. Dhe kjo është arsyeja pse ka kaq shumë interes për të përdorur AI për të shpejtuar gjërat.

    Siç u përshkrua më herët, AI përfundimisht do të luajë një rol gjithnjë e më bashkëpunues në hartimin dhe zhvillimin e softuerit. Por në afat të shkurtër, kompanitë po e përdorin atë për të automatizuar gjithnjë e më shumë proceset e sigurimit të cilësisë (testimit) për softuerin. Dhe kompani të tjera po eksperimentojnë me përdorimin e AI për të automatizuar dokumentacionin e softuerit - procesin e gjurmimit të lëshimit të veçorive dhe komponentëve të rinj dhe se si ato janë prodhuar deri në nivelin e kodit.

    Në përgjithësi, AI do të luajë gjithnjë e më shumë një rol qendror në zhvillimin e softuerit. Ato kompani softuerësh që zotërojnë përdorimin e tij herët do të gëzojnë përfundimisht rritje eksponenciale ndaj konkurrentëve të tyre. Por për të realizuar këto përfitime të AI, industria do të duhet gjithashtu të shohë përparime në anën harduerike të gjërave - seksioni tjetër do të shtjellojë këtë pikë.

    Softueri si shërbim

    Të gjitha llojet e profesionistëve krijues përdorin softuerin Adobe kur krijojnë art dixhital ose punë dizajni. Për gati tre dekada, ju keni blerë softuerin e Adobe si një CD dhe e keni përdorur atë në përjetësi, duke blerë versione të përmirësuara të ardhshme sipas nevojës. Por në mesin e viteve 2010, Adobe ndryshoi strategjinë e saj.

    Në vend që të blejnë CD softuerësh me çelësa pronësie të bezdisshme të përpunuara, klientët e Adobe tani do të duhet të paguajnë një abonim mujor për të drejtën për të shkarkuar softuerin Adobe në pajisjet e tyre kompjuterike, softuer që do të funksiononte vetëm së bashku me një lidhje interneti të rregullt në konstante me serverët e Adobe .

    Me këtë ndryshim, klientët nuk zotëronin më softuer Adobe; e kanë marrë me qira sipas nevojës. Në këmbim, klientët nuk duhet të blejnë vazhdimisht versione të përmirësuara të softuerit Adobe; për sa kohë që ata janë abonuar në shërbimin Adobe, ata gjithmonë do të kenë përditësimet më të fundit të ngarkuara në pajisjen e tyre menjëherë pas lëshimit (shpesh disa herë në vit).

    Ky është vetëm një shembull i një prej tendencave më të mëdha të softuerit që kemi parë vitet e fundit: se si softueri po kalon në shërbim në vend të një produkti të pavarur. Dhe jo vetëm softuer më të vogël, të specializuar, por sisteme të tëra operative, siç e kemi parë me lëshimin e përditësimit të Windows 10 të Microsoft. Me fjalë të tjera, softueri si shërbim (SaaS).

    Softuer vetë-mësues (SLS)

    Duke u mbështetur në zhvendosjen e industrisë drejt SaaS, po shfaqet një prirje e re në hapësirën e softuerit që kombinon SaaS dhe AI. Kompanitë kryesore nga Amazon, Google, Microsoft dhe IBM kanë filluar të ofrojnë infrastrukturën e tyre të AI si një shërbim për klientët e tyre.

    Me fjalë të tjera, nuk është më AI dhe mësimi i makinerive të aksesueshme vetëm për gjigantët e softuerit, tani çdo kompani dhe zhvillues mund të ketë akses në burimet e AI në internet për të ndërtuar softuer vetë-mësues (SLS).

    Ne do të diskutojmë potencialin e AI në detaje në serinë tonë Future of Artificial Intelligence, por për kontekstin e këtij kapitulli, do të themi se zhvilluesit aktualë dhe të ardhshëm të softuerit do të krijojnë SLS për të krijuar sisteme të reja që parashikojnë detyra që duhen bërë dhe thjesht plotësoni ato automatikisht për ju.

    Kjo do të thotë që një asistent i ardhshëm i AI do të mësojë stilin tuaj të punës në zyrë dhe do të fillojë të kryejë detyrat bazë për ju, si formatimi i dokumenteve ashtu si ju pëlqen, hartimi i emaileve tuaja me tonin e zërit, menaxhimi i kalendarit tuaj të punës dhe më shumë.

    Në shtëpi, kjo mund të nënkuptojë që një sistem SLS të menaxhojë shtëpinë tuaj inteligjente të ardhshme, duke përfshirë detyra si ngrohja paraprake e shtëpisë tuaj përpara se të mbërrini ose mbajtja e gjurmëve të sendeve ushqimore që duhet të blini.

    Deri në vitet 2020 dhe në vitet 2030, këto sisteme SLS do të luajnë një rol jetik në tregjet e korporatave, qeverisë, ushtrisë dhe konsumit, duke ndihmuar gradualisht secilin të përmirësojë produktivitetin e tyre dhe të reduktojë mbeturinat e të gjitha llojeve. Ne do të mbulojmë teknologjinë SLS në më shumë detaje më vonë në këtë seri.

    Megjithatë, e gjithë kjo ka një kapje.

    Mënyra e vetme se si funksionojnë modelet SaaS dhe SLS është nëse Interneti (ose infrastruktura pas tij) vazhdon të rritet dhe të përmirësohet, krahas harduerit kompjuterik dhe ruajtjes që drejton 'cloud' ku funksionojnë këto sisteme SaaS/SLS. Fatmirësisht, tendencat që po ndjekim duken premtuese.

    Për të mësuar se si do të rritet dhe zhvillohet interneti, lexoni tonë E ardhmja e internetit seri. Për të mësuar më shumë se si do të avancojë hardueri i kompjuterit, atëherë lexoni duke përdorur lidhjet më poshtë!

    Seria Future of Computers

    Ndërfaqet e përdoruesve në zhvillim për të ripërcaktuar njerëzimin: E ardhmja e kompjuterëve P1

    Revolucioni i ruajtjes dixhitale: E ardhmja e kompjuterëve P3

    Një ligj i Moore-it në zbehje për të nxitur një rimendim themelor të mikroçipëve: E ardhmja e kompjuterëve P4

    Cloud computing bëhet i decentralizuar: E ardhmja e kompjuterëve P5

    Pse vendet po konkurrojnë për të ndërtuar superkompjuterët më të mëdhenj? E ardhmja e kompjuterëve P6

    Si do ta ndryshojnë botën kompjuterët kuantikë: E ardhmja e kompjuterëve P7    

    Përditësimi tjetër i planifikuar për këtë parashikim

    2023-02-08

    Referencat e parashikimit

    Lidhjet e mëposhtme popullore dhe institucionale u referuan për këtë parashikim:

    Lidhjet e mëposhtme Quantumrun u referuan për këtë parashikim: