Будућност развоја софтвера: Будућност рачунара П2

КРЕДИТ ЗА СЛИКУ: Куантумрун

Будућност развоја софтвера: Будућност рачунара П2

    Године 1969. Нил Армстронг и Баз Олдрин постали су међународни хероји након што су били први људи који су крочили на Месец. Али док су ови астронаути били хероји на камери, постоје хиљаде неопеваних хероја који без њиховог учешћа то прво слетање на Месец са људском посадом не би било немогуће. Неки од ових хероја били су програмери софтвера који су кодирали лет. Зашто?

    Па, компјутери који су постојали у то време били су далеко једноставнији него данас. У ствари, истрошени паметни телефон просечне особе је за неколико редова магнитуде моћнији од било чега на свемирској летелици Аполо 11 (и свих 1960-их НАСА-е). Штавише, компјутере су у то време кодирали специјализовани програмери софтвера који су програмирали софтвер на најосновнијим машинским језицима: АГЦ Ассембли Цоде или једноставно, 1с и 0с.

    За контекст, један од ових неопеваних хероја, директор одељења за софтверско инжењерство свемирског програма Аполо, Маргарет Хамилтон, а њен тим је морао да напише брдо кода (на слици испод) који би коришћењем данашњих програмских језика могао бити написан уз само делић труда.

    (На слици изнад је Маргарет Хамилтон која стоји поред хрпе папира у којој се налази софтвер Аполо 11.)

    И за разлику од данас када програмери софтвера кодирају за око 80-90 процената могућих сценарија, за мисије Аполо њихов код је морао да узме у обзир све. Да би ово ставила у перспективу, сама Маргарет је рекла:

    "Због грешке у приручнику за контролну листу, прекидач радара за састанке је постављен у погрешан положај. То је довело до тога да шаље погрешне сигнале рачунару. Резултат је био да је од рачунара тражено да изврши све своје нормалне функције за слетање док је примао додатно оптерећење лажних података који су потрошили 15% свог времена. Рачунар (или боље речено софтвер у њему) је био довољно паметан да препозна да се од њега тражи да изврши више задатака него што би требало да обавља. Затим је послао из аларма, што је за астронаута значило, ја сам преоптерећен са више задатака него што би требало да радим у овом тренутку, а ја ћу задржати само важније задатке, односно оне потребне за слетање... Заправо , рачунар је програмиран да уради више од препознавања грешака. Комплетан сет програма за опоравак је уграђен у софтвер. Акција софтвера, у овом случају, била је да елиминише задатке нижег приоритета и поново успостави оне важније ... Да компјутер нијепрепознао овај проблем и предузео мере за опоравак, сумњам да би Аполо 11 био успешно слетање на Месец."

    — Маргарет Хамилтон, директорка Аполо Флигхт Цомпутер Программинг Лаборатори МИТ Драпер Лаборатори, Цамбридге, Массацхусеттс, „Цомпутер Гот Лоадед“, Писмо за Датаматион, Март КСНУМКС, КСНУМКС

    Као што је раније наговештено, развој софтвера је еволуирао од тих раних Аполо дана. Нови програмски језици високог нивоа заменили су досадан процес кодирања са 1с и 0с кодирањем речима и симболима. Функције као што је генерисање случајног броја за које су некада били потребни дани кодирања сада су замењене писањем једне командне линије.

    Другим речима, софтверско кодирање постаје све аутоматизованије, интуитивније и људско са сваком деценијом која пролази. Ови квалитети ће се наставити само у будућности, усмеравајући еволуцију развоја софтвера на начине који ће имати дубок утицај на наш свакодневни живот. Ово је оно што ово поглавље Будућност рачунара серија ће истражити.

    Развој софтвера за масе

    Процес замене потребе за кодирањем 1с и 0с (машински језик) речима и симболима (људски језик) се назива процесом додавања слојева апстракција. Ове апстракције су дошле у облику нових програмских језика који аутоматизују сложене или уобичајене функције за област за коју су дизајнирани. Али током раних 2000-их, појавиле су се нове компаније (као што су Цаспио, КуицкБасе и Менди) које су почеле да нуде оно што се назива платформама без кода или са ниским кодом.

    Ово су онлајн контролне табле прилагођене кориснику које омогућавају нетехничким професионалцима да креирају прилагођене апликације прилагођене потребама њиховог пословања тако што спајају визуелне блокове кода (симболи/графике). Другим речима, уместо да исечете дрво и направите га у ормарић за гардеробу, правите га користећи унапред направљене делове из Икее.

    Иако коришћење ове услуге и даље захтева одређени ниво познавања рачунара, више вам није потребна диплома из рачунарства, већ је користите. Као резултат тога, овај облик апстракције омогућава пораст милиона нових „програмера софтвера“ у корпоративном свету, и омогућава много деци да науче како да кодирају у ранијем узрасту.

    Редефинисање шта значи бити програмер софтвера

    Било је времена када су пејзаж или лице особе могли бити снимљени само на платну. Сликар би морао годинама да учи и вежба као шегрт, учећи сликарски занат - како мешати боје, који алати су најбољи, исправне технике за извођење одређеног визуелног приказа. Трошкови заната и дугогодишње искуство потребно за добро обављање такође су значили да је сликара било мало.

    Тада је измишљена камера. И притиском на дугме, пејзажи и портрети су снимљени у секунди, за шта би иначе били потребни дани или недеље за сликање. А како су се камере побољшале, појефтиниле и постале у изобиљу до тачке у којој су сада укључене чак и у најосновније паметне телефоне, снимање света око нас постало је уобичајена и необавезна активност у којој сада сви учествују.

    Како апстракције напредују и нови софтверски језици аутоматизују све рутинскији рад на развоју софтвера, шта ће значити бити програмер софтвера за 10 до 20 година? Да бисмо одговорили на ово питање, хајде да прођемо кроз то како ће будући програмери софтвера вероватно радити на изградњи будућих апликација:

    *Прво, сав стандардизовани, понављајући рад кодирања ће нестати. На његовом месту ће бити огромна библиотека унапред дефинисаних понашања компоненти, корисничког интерфејса и манипулација протоком података (Икеа делови).

    *Као и данас, послодавци или предузетници ће дефинисати специфичне циљеве и резултате за програмере софтвера које ће извршити путем специјализованих софтверских апликација или платформи.

    *Ови програмери ће затим мапирати своју стратегију извршавања и почети да праве прототипове раних нацрта свог софтвера тако што ће приступити њиховој библиотеци компоненти и користећи визуелне интерфејсе да их повежу заједно – визуелни интерфејси којима се приступа преко проширене стварности (АР) или виртуелне стварности (ВР).

    *Специјализовани системи вештачке интелигенције (АИ) дизајнирани да разумеју циљеве и резултате које имплицирају почетни нацрти њиховог програмера, затим ће усавршити израђени софтверски дизајн и аутоматизовати сва тестирања обезбеђења квалитета.

    *На основу резултата, АИ ће затим поставити мноштво питања програмеру (вербално путем комуникације налик на Алека), настојећи да боље разуме и дефинише циљеве и резултате пројекта и разговара о томе како софтвер треба да делује у различитим сценаријима и окружења.

    *На основу повратних информација програмера, АИ ће постепено научити његову или њену намеру и генерисати код који ће одражавати циљеве пројекта.

    *Ова сарадња између људи и машина ће понављати верзију за верзијом софтвера све док готова верзија која се може продати не буде спремна за интерну примену или за продају јавности.

    *У ствари, ова сарадња ће се наставити након што софтвер буде изложен употреби у стварном свету. Како се пријављују једноставне грешке, АИ ће их аутоматски поправити на начин који одражава оригиналне, жељене циљеве истакнуте током процеса развоја софтвера. У међувремену, озбиљније грешке ће захтевати сарадњу човека и АИ да би се решио проблем.

    Све у свему, будући програмери софтвера ће се мање фокусирати на „како“, а више на „шта“ и „зашто“. Они ће бити мање занатлије, а више архитекти. Програмирање ће бити интелектуална вежба која ће захтевати људе који могу методично да саопштавају намеру и резултате на начин који АИ може да разуме, а затим аутоматски кодира готову дигиталну апликацију или платформу.

    Развој софтвера вођен вештачком интелигенцијом

    Имајући у виду горњи одељак, јасно је да сматрамо да ће вештачка интелигенција играти све централнију улогу у области развоја софтвера, али њено усвајање није искључиво у сврху да програмери софтвера буду ефикаснији, већ постоје и пословне снаге које стоје иза овог тренда.

    Конкуренција између компанија за развој софтвера постаје све жешћа из године у годину. Неке компаније се такмиче купујући своје конкуренте. Други се такмиче у диференцијацији софтвера. Изазов са потоњом стратегијом је у томе што је није лако одбранити. Било коју софтверску функцију или побољшање које једна компанија понуди својим клијентима, њени конкуренти могу релативно лако копирати.

    Из тог разлога, прошли су дани када компаније објављују нови софтвер сваке једне до три године. Ових дана, компаније које се фокусирају на диференцијацију имају финансијски подстицај да све редовније издају нови софтвер, софтверске исправке и софтверске функције. Што компаније брже иновирају, то више подстичу лојалност клијената и повећавају цену преласка на конкуренте. Овај помак ка редовној испоруци инкременталних ажурирања софтвера је тренд који се назива „континуирана испорука“.

    Нажалост, континуирана испорука није лака. Једва четвртина данашњих софтверских компанија може да изврши распоред издања који се захтева од овог тренда. И то је разлог зашто постоји толико интересовање за коришћење вештачке интелигенције за убрзавање ствари.

    Као што је раније наведено, АИ ће на крају играти све више колаборативну улогу у изради и развоју софтвера. Али краткорочно, компаније га користе да све више аутоматизују процесе осигурања квалитета (тестирања) за софтвер. И друге компаније експериментишу са коришћењем вештачке интелигенције за аутоматизацију софтверске документације—процес праћења објављивања нових функција и компоненти и начина на који су произведене до нивоа кода.

    Све у свему, АИ ће све више играти централну улогу у развоју софтвера. Оне софтверске компаније које рано овладају његовом употребом на крају ће уживати у експоненцијалном расту у односу на своје конкуренте. Али да би се остварила ова добит од вештачке интелигенције, индустрија ће такође морати да види напредак у хардверској страни ствари – у следећем одељку ће се елаборирати ова тачка.

    Софтвер као услуга

    Све врсте креативних професионалаца користе Адобе софтвер када креирају дигиталну уметност или дизајн. Скоро три деценије сте куповали Адобе-ов софтвер као ЦД и поседовали његову употребу у вечности, купујући будуће надограђене верзије по потреби. Али средином 2010-их, Адобе је променио своју стратегију.

    Уместо куповине ЦД-ова са софтвером са досадно разрађеним кључевима власништва, Адобе клијенти би сада морали да плаћају месечну претплату за право преузимања Адобе софтвера на своје рачунарске уређаје, софтвер који би радио само уз редовну и сталну интернет везу са Адобе серверима .

    Са овом променом, купци више нису поседовали Адобе софтвер; изнајмљивали су га по потреби. Заузврат, купци више не морају стално да купују надограђене верзије Адобе софтвера; све док су се претплатили на Адобе услугу, увек би имали најновије исправке учитане на свој уређај одмах по објављивању (често неколико пута годишње).

    Ово је само један пример једног од највећих софтверских трендова које смо видели последњих година: како софтвер прелази у услугу уместо у самостални производ. И не само мањи, специјализовани софтвер, већ и читави оперативни системи, као што смо видели са издавањем Мицрософтовог ажурирања за Виндовс 10. Другим речима, софтвер као услуга (СааС).

    Софтвер за самоучење (СЛС)

    Надовезујући се на померање индустрије ка СааС-у, појављује се нови тренд у софтверском простору који комбинује и СааС и АИ. Водеће компаније из Амазона, Гугла, Мицрософта и ИБМ-а почеле су да нуде своју АИ инфраструктуру као услугу својим клијентима.

    Другим речима, вештачка интелигенција и машинско учење више нису доступни само софтверским гигантима, сада свака компанија и програмер могу да приступе онлајн АИ ресурсима за прављење софтвера за самоучење (СЛС).

    Детаљно ћемо разговарати о потенцијалу вештачке интелигенције у нашој серији „Будућност вештачке интелигенције“, али за контекст овог поглавља, рећи ћемо да ће садашњи и будући програмери софтвера креирати СЛС да креирају нове системе који предвиђају задатке које је потребно обавити и једноставно их аутоматски допуните уместо вас.

    То значи да ће будући помоћник за вештачку интелигенцију научити ваш стил рада у канцеларији и почети да обавља основне задатке уместо вас, као што је форматирање докумената онако како вам се свиђа, писање ваших е-порука вашим тоном гласа, управљање вашим радним календаром и још много тога.

    Код куће, то би могло значити да СЛС систем управља вашом будућом паметном кућом, укључујући задатке као што су претходно загревање вашег дома пре него што стигнете или праћење намирница које треба да купите.

    До 2020-их и до 2030-их, ови СЛС системи ће играти виталну улогу на корпоративном, државном, војном и потрошачком тржишту, постепено помажући сваком да побољша своју продуктивност и смањи отпад свих врста. Касније ћемо у овој серији детаљније покрити СЛС технологију.

    Међутим, у свему овоме постоји квака.

    Једини начин на који СааС и СЛС модели функционишу је ако Интернет (или инфраструктура иза њега) настави да расте и побољшава се, заједно са рачунарским и складишним хардвером који покреће 'облак' на којем ови СааС/СЛС системи раде. Срећом, трендови које пратимо изгледају обећавајуће.

    Да бисте сазнали како ће Интернет расти и еволуирати, прочитајте наше Будућност интернета серије. Да бисте сазнали више о томе како ће рачунарски хардвер напредовати, прочитајте даље користећи везе у наставку!

    Футуре оф Цомпутерс серија

    Нови кориснички интерфејси за редефинисање човечанства: Будућност рачунара П1

    Револуција дигиталног складиштења: Будућност рачунара П3

    Бледећи Муров закон да подстакне фундаментално преиспитивање микрочипова: Будућност рачунара П4

    Рачунарство у облаку постаје децентрализовано: будућност рачунара П5

    Зашто се земље такмиче у изградњи највећих суперкомпјутера? Будућност рачунара П6

    Како ће квантни рачунари променити свет: Будућност рачунара П7    

    Следеће планирано ажурирање за ову прогнозу

    2023-02-08

    Референце прогнозе

    Следеће популарне и институционалне везе су референциране за ову прогнозу:

    ПроПублица

    Следећи Куантумрун линкови су референцирани за ову прогнозу: