Будучыня распрацоўкі праграмнага забеспячэння: Будучыня кампутараў P2

КРЭДЫТ ВЫЯВЫ: Quantumrun

Будучыня распрацоўкі праграмнага забеспячэння: Будучыня кампутараў P2

    У 1969 годзе Ніл Армстронг і Базз Олдрын сталі героямі міжнароднага свету пасля таго, як першымі людзьмі ступілі на Месяц. Але хоць гэтыя касманаўты былі героямі перад камерай, ёсць тысячы неапетых герояў, без іх удзелу першая пасадка чалавека на Месяц была б немагчымай. Некаторыя з гэтых герояў былі распрацоўшчыкамі праграмнага забеспячэння, якія закадзіравалі палёт. чаму?

    Што ж, кампутары, якія існавалі ў той час, былі значна прасцейшымі, чым яны ёсць сёння. Фактычна, зношаны смартфон звычайнага чалавека на некалькі парадкаў больш магутны, чым што-небудзь на борце касмічнага карабля "Апалон-11" (і ўсяго НАСА 1960-х гадоў, калі на тое пайшло). Больш за тое, кампутары ў той час кадзіраваліся спецыялізаванымі распрацоўшчыкамі праграмнага забеспячэння, якія праграмавалі праграмнае забеспячэнне на самых базавых машынных мовах: код зборкі AGC або проста 1s і 0s.

    Для кантэксту, адзін з гэтых неапетых герояў, дырэктар аддзела распрацоўкі праграмнага забеспячэння касмічнай праграмы "Апалон", Маргарэт Хэмілтан, і яе камандзе прыйшлося напісаць гару кода (на фота ніжэй), які можна было б напісаць з выкарыстаннем сучасных моў праграмавання, прыклаўшы невялікія намаганні.

    (На фота вышэй Маргарэт Гамільтан, якая стаіць побач са стосам паперы з праграмным забеспячэннем Apollo 11.)

    І ў адрозненне ад сучаснасці, калі распрацоўшчыкі праграмнага забеспячэння кадзіруюць прыкладна 80-90 працэнтаў магчымых сцэнарыяў, для місій Apollo іх код павінен быў улічваць усё. Каб паставіць гэта ў перспектыву, сама Маргарэт сказала:

    «З-за памылкі ў кіраўніцтве па кантрольным спісе перамыкач радара сустрэчы быў пастаўлены ў няправільнае становішча. Гэта прывяло да таго, што ён пасылаў памылковыя сігналы на камп'ютар. У выніку камп'ютэру было прапанавана выканаць усе яго звычайныя функцыі для пасадкі. атрымліваючы дадатковую нагрузку ілжывых даных, якія затрачвалі 15% часу. Кампутар (ці, дакладней, праграмнае забеспячэнне ў ім) быў дастаткова разумны, каб распазнаць, што яго просяць выканаць больш задач, чым ён павінен выконваць. Затым ён адправіў загучаў сігнал трывогі, што для касманаўта азначала, што я перагружаны большай колькасцю задач, чым я павінен быў выконваць у гэты час, і я збіраюся пакінуць толькі больш важныя задачы; г.зн. тыя, якія неабходныя для прызямлення ... На самай справе , камп'ютар быў запраграмаваны не толькі на распазнаванне памылак. Поўны набор праграм аднаўлення быў уключаны ў праграмнае забеспячэнне. Дзеянне праграмнага забеспячэння ў дадзеным выпадку заключалася ў ліквідацыі менш прыярытэтных задач і аднаўленні больш важных ... Калі б не кампутарпрызнаўшы гэтую праблему і прыняўшы меры па аднаўленні, я сумняваюся, што "Апалон-11" быў бы такой паспяховай пасадкай на Месяц".

    — Маргарэт Гамільтан, дырэктар Лабараторыі Дрэйпера Масачусецкага тэхналагічнага інстытута, Кембрыдж, штат Масачусэтс, «Камп'ютар загружаны», ліст да Дадзеныя, Сакавік 1, 1971

    Як было сказана раней, распрацоўка праграмнага забеспячэння развівалася з часоў Apollo. Новыя мовы праграмавання высокага ўзроўню замянілі стомны працэс кадавання з дапамогай 1 і 0 на кадаванне са словамі і сімваламі. Такія функцыі, як генерацыя выпадковага ліку, якія раней патрабавалі дзён кадавання, цяпер заменены напісаннем аднаго каманднага радка.

    Іншымі словамі, з кожным дзесяцігоддзем праграмнае кадаванне становіцца ўсё больш аўтаматызаваным, інтуітыўна зразумелым і чалавечым. Гэтыя якасці захаваюцца толькі ў будучыні, накіроўваючы эвалюцыю распрацоўкі праграмнага забеспячэння такім чынам, што акажа глыбокі ўплыў на наша паўсядзённае жыццё. Вось што гэты кіраўнік Будучыня кампутараў серыя будзе даследаваць.

    Распрацоўка праграмнага забеспячэння для мас

    Працэс замены неабходнасці кадавання 1 і 0 (машынная мова) словамі і сімваламі (чалавечая мова) называецца працэсам дадання слаёў абстракцый. Гэтыя абстракцыі прыйшлі ў выглядзе новых моў праграмавання, якія аўтаматызуюць складаныя або агульныя функцыі для вобласці, для якой яны былі распрацаваны. Але ў пачатку 2000-х з'явіліся новыя кампаніі (напрыклад, Caspio, QuickBase і Mendi), якія пачалі прапаноўваць так званыя платформы без кода або з нізкім кодам.

    Гэта зручныя інтэрнэт-панэлі, якія дазваляюць нетэхнічным спецыялістам ствараць індывідуальныя прыкладанні, адаптаваныя да патрэбаў іх бізнесу, злучаючы візуальныя блокі кода (сімвалы/графікі). Іншымі словамі, замест таго, каб спілаваць дрэва і зрабіць з яго гардэробную шафу, вы будуеце яго з гатовых дэталяў з Ikea.

    Нягледзячы на ​​тое, што карыстанне гэтай паслугай патрабуе пэўнага ўзроўню камп'ютэрных ведаў, вам больш не патрэбна ступень інфарматыкі, але карыстайцеся ёю. У выніку гэтая форма абстракцыі дазваляе з'яўляцца мільёнам новых «распрацоўшчыкаў праграмнага забеспячэння» ў карпаратыўным свеце і дазваляе многім дзецям навучыцца праграмаваць у больш раннім узросце.

    Пераасэнсаванне таго, што значыць быць распрацоўшчыкам праграмнага забеспячэння

    Быў час, калі пейзаж ці твар чалавека можна было адлюстраваць толькі на палатне. Мастак мусіць гадамі вучыцца і практыкавацца ў якасці вучня, вывучаючы майстэрства жывапісу — як змешваць колеры, якія інструменты лепш за ўсё падыходзяць, правільныя прыёмы для выканання канкрэтнага малюнка. Кошт гандлю і шматгадовы вопыт, неабходны для яго добрага выканання, таксама азначалі, што мастакоў было мала.

    Потым быў вынайдзены фотаапарат. І адным націскам кнопкі пейзажы і партрэты былі зафіксаваны за секунду, на маляванне якіх у адваротным выпадку спатрэбіліся б некалькі дзён ці тыдняў. І калі камеры ўдасканальваліся, станавіліся танней і іх стала так шмат, што цяпер яны ўваходзяць у склад нават самых простых смартфонаў, здымка свету вакол нас стала звычайнай і нязмушанай дзейнасцю, у якой зараз удзельнічаюць усе.

    Паколькі абстракцыі прагрэсуюць і новыя мовы праграмнага забеспячэння аўтаматызуюць усё больш руцінную працу па распрацоўцы праграмнага забеспячэння, што будзе значыць быць распрацоўшчыкам праграмнага забеспячэння праз 10-20 гадоў? Каб адказаць на гэтае пытанне, давайце паглядзім, як будучыя распрацоўшчыкі праграмнага забеспячэння, хутчэй за ўсё, будуць займацца стварэннем прыкладанняў заўтрашняга дня:

    *Па-першае, уся стандартызаваная, паўтаральная праца па кадаванні знікне. На яго месцы будзе велізарная бібліятэка загадзя вызначаных паводзін кампанентаў, карыстальніцкага інтэрфейсу і маніпуляцый патокам даных (часткі Ikea).

    *Як і сёння, працадаўцы або прадпрымальнікі будуць вызначаць канкрэтныя мэты і вынікі для распрацоўшчыкаў праграмнага забеспячэння для выканання праз спецыялізаваныя праграмныя прыкладанні або платформы.

    * Затым гэтыя распрацоўшчыкі намецяць сваю стратэгію выканання і пачнуць ствараць прататыпы ранніх чарнавікоў свайго праграмнага забеспячэння, атрымаўшы доступ да сваёй бібліятэкі кампанентаў і выкарыстоўваючы візуальныя інтэрфейсы для іх звязвання — візуальныя інтэрфейсы, да якіх можна атрымаць доступ праз дапоўненую рэальнасць (AR) або віртуальную рэальнасць (VR).

    *Спецыялізаваныя сістэмы штучнага інтэлекту (AI), распрацаваныя для разумення мэтаў і вынікаў, прадугледжаных першапачатковымі чарнавікамі іх распрацоўшчыкаў, затым удасканаляць спраектаваны дызайн праграмнага забеспячэння і аўтаматызуюць усё тэсціраванне якасці.

    *Зыходзячы з вынікаў, штучны інтэлект задасць распрацоўніку мноства пытанняў (верагодна, з дапамогай вуснай камунікацыі, падобнай да Alexa), каб лепш зразумець і вызначыць мэты і вынікі праекта і абмеркаваць, як праграмнае забеспячэнне павінна дзейнічаць у розных сцэнарыях. і асяроддзяў.

    *На аснове водгукаў распрацоўшчыка штучны інтэлект паступова даведаецца пра яго ці яе намер і згенеруе код, які адлюстроўвае мэты праекта.

    *Гэта ўзаемадзеянне паміж чалавекам і машынай будзе паўтараць версію за версіяй праграмнага забеспячэння, пакуль гатовая і таварная версія не будзе гатовая для ўнутранага ўкаранення або для продажу грамадскасці.

    * Фактычна, гэта супрацоўніцтва працягнецца пасля таго, як праграмнае забеспячэнне пачне працаваць у рэальным свеце. Па меры паведамлення аб простых памылках штучны інтэлект аўтаматычна выпраўляе іх у адпаведнасці з першапачатковымі жаданымі мэтамі, акрэсленымі ў працэсе распрацоўкі праграмнага забеспячэння. Між тым, больш сур'ёзныя памылкі патрабуюць супрацоўніцтва чалавека і штучнага інтэлекту для вырашэння праблемы.

    У цэлым, будучыя распрацоўшчыкі праграмнага забеспячэння будуць менш засяроджвацца на "як", а больш на "што" і "чаму". Яны будуць менш майстрамі, а больш архітэктарамі. Праграмаванне будзе інтэлектуальным практыкаваннем, якое запатрабуе людзей, якія могуць метадычна паведамляць пра намеры і вынікі так, каб іх зразумеў ІІ, а затым аўтаматычна кадзіраваць гатовае лічбавае прыкладанне або платформу.

    Распрацоўка праграмнага забеспячэння на аснове штучнага інтэлекту

    Улічваючы прыведзены вышэй раздзел, відавочна, што мы лічым, што штучны інтэлект будзе адыгрываць усё большую цэнтральную ролю ў галіне распрацоўкі праграмнага забеспячэння, але яго прыняцце прызначана не толькі для павышэння эфектыўнасці распрацоўшчыкаў праграмнага забеспячэння, за гэтай тэндэнцыяй таксама стаяць бізнес-сілы.

    Канкурэнцыя паміж кампаніямі, якія распрацоўваюць праграмнае забеспячэнне, з кожным годам становіцца ўсё больш жорсткай. Некаторыя кампаніі канкуруюць, выкупляючы сваіх канкурэнтаў. Іншыя спаборнічаюць па дыферэнцыяцыі праграмнага забеспячэння. Праблема апошняй стратэгіі ў тым, што яе нялёгка абараніць. Любую функцыю або ўдасканаленне праграмнага забеспячэння, якія адна кампанія прапануе сваім кліентам, яе канкурэнты могуць скапіяваць з адноснай лёгкасцю.

    Па гэтай прычыне прайшлі тыя часы, калі кампаніі выпускалі новае праграмнае забеспячэнне кожныя адзін-тры гады. У нашы дні кампаніі, якія засяроджваюцца на дыферэнцыяцыі, маюць фінансавы стымул выпускаць новае праграмнае забеспячэнне, выпраўленні праграмнага забеспячэння і функцыі праграмнага забеспячэння на ўсё больш рэгулярнай аснове. Чым хутчэй кампаніі ўводзяць інавацыі, тым больш яны спрыяюць лаяльнасці кліентаў і павялічваюць кошт пераходу да канкурэнтаў. Гэты пераход да рэгулярнай дастаўкі паступовых абнаўленняў праграмнага забеспячэння з'яўляецца тэндэнцыяй, якая называецца «пастаяннай дастаўкай».

    На жаль, бесперапынная дастаўка - справа няпростая. Ледзь чвэрць сучасных праграмных кампаній можа выканаць графік выпуску, які патрабуе гэтая тэндэнцыя. І вось чаму такая вялікая цікавасць да выкарыстання штучнага інтэлекту для паскарэння працы.

    Як адзначалася раней, штучны інтэлект у канчатковым выніку будзе адыгрываць усё больш сумесную ролю ў распрацоўцы і распрацоўцы праграмнага забеспячэння. Але ў кароткатэрміновай перспектыве кампаніі выкарыстоўваюць яго для ўсё большай аўтаматызацыі працэсаў забеспячэння якасці (тэсціравання) праграмнага забеспячэння. А іншыя кампаніі эксперыментуюць з выкарыстаннем штучнага інтэлекту для аўтаматызацыі дакументацыі праграмнага забеспячэння — працэсу адсочвання выпуску новых функцый і кампанентаў і таго, як яны ствараліся аж да ўзроўню кода.

    У цэлым штучны інтэлект будзе ўсё больш адыгрываць цэнтральную ролю ў распрацоўцы праграмнага забеспячэння. Тыя кампаніі-праграмшчыкі, якія рана асвоілі яго выкарыстанне, у канчатковым выніку будуць атрымліваць асалоду ад экспанентнага росту ў параўнанні са сваімі канкурэнтамі. Але каб рэалізаваць гэтыя перавагі штучнага інтэлекту, індустрыі таксама трэба будзе ўбачыць прагрэс у апаратным баку рэчаў - у наступным раздзеле мы раскажам пра гэта больш падрабязна.

    Праграмнае забеспячэнне як паслуга

    Разнастайныя творчыя прафесіяналы выкарыстоўваюць праграмнае забеспячэнне Adobe пры стварэнні лічбавага мастацтва або дызайну. На працягу амаль трох дзесяцігоддзяў вы набывалі праграмнае забеспячэнне Adobe у выглядзе кампакт-дыска і карысталіся ім назаўсёды, купляючы будучыя мадэрнізаваныя версіі па меры неабходнасці. Але ў сярэдзіне 2010-х Adobe змяніла стратэгію.

    Замест таго, каб купляць кампакт-дыскі з праграмным забеспячэннем з раздражняльна прапрацаванымі ключамі ўласнасці, кліенты Adobe цяпер павінны будуць плаціць штомесячную падпіску за права спампоўваць праграмнае забеспячэнне Adobe на свае камп'ютарныя прылады, праграмнае забеспячэнне, якое будзе працаваць толькі разам з звычайным і пастаянным інтэрнэт-злучэннем з серверамі Adobe. .

    З гэтай зменай кліенты больш не валодаюць праграмным забеспячэннем Adobe; арандавалі па меры патрэбы. Узамен кліентам больш не трэба пастаянна купляць абноўленыя версіі праграмнага забеспячэння Adobe; пакуль яны падпісаліся на паслугу Adobe, яны заўсёды будуць мець апошнія абнаўленні, загружаныя на іх прылады адразу пасля выпуску (часта некалькі разоў на год).

    Гэта толькі адзін прыклад адной з найбуйнейшых тэндэнцый праграмнага забеспячэння, якія мы бачылі за апошнія гады: як праграмнае забеспячэнне пераходзіць у службу, а не ў асобны прадукт. І не толькі меншае спецыялізаванае праграмнае забеспячэнне, але і цэлыя аперацыйныя сістэмы, як мы бачылі з выпускам абнаўлення Windows 10 ад Microsoft. Іншымі словамі, праграмнае забеспячэнне як паслуга (SaaS).

    Праграмнае забеспячэнне для саманавучання (SLS)

    Абапіраючыся на зрух галіны ў бок SaaS, з'яўляецца новая тэндэнцыя ў прасторы праграмнага забеспячэння, якая спалучае як SaaS, так і штучны інтэлект. Вядучыя кампаніі Amazon, Google, Microsoft і IBM пачалі прапаноўваць сваю інфраструктуру штучнага інтэлекту ў якасці паслугі сваім кліентам.

    Іншымі словамі, AI і машыннае навучанне больш не даступныя толькі гігантам праграмнага забеспячэння, цяпер любая кампанія і распрацоўшчык можа атрымаць доступ да інтэрнэт-рэсурсаў AI для стварэння саманавучальнага праграмнага забеспячэння (SLS).

    Мы падрабязна абмяркуем патэнцыял штучнага інтэлекту ў нашай серыі "Будучыня штучнага інтэлекту", але ў кантэксце гэтай главы мы скажам, што цяперашнія і будучыя распрацоўшчыкі праграмнага забеспячэння будуць ствараць SLS для стварэння новых сістэм, якія прадугледжваюць задачы, якія трэба выконваць і проста аўтаматычна запоўніць іх для вас.

    Гэта азначае, што будучы памочнік штучнага інтэлекту навучыцца вашаму стылю працы ў офісе і пачне выконваць асноўныя задачы за вас, напрыклад, фарматаваць дакументы так, як вам падабаецца, складаць электронныя лісты вашым тонам голасу, кіраваць вашым працоўным календаром і многае іншае.

    Дома гэта можа азначаць, што сістэма SLS будзе кіраваць вашым будучым разумным домам, уключаючы такія задачы, як папярэдні нагрэў вашага дома перад вашым прыбыццём або адсочванне прадуктаў, якія вам трэба купіць.

    Да 2020-х і да 2030-х гадоў гэтыя сістэмы SLS будуць адыгрываць важную ролю на карпаратыўных, дзяржаўных, ваенных і спажывецкіх рынках, паступова дапамагаючы кожнаму з іх павышаць прадукцыйнасць і скарачаць адходы ўсіх відаў. Мы разгледзім тэхналогію SLS больш падрабязна пазней у гэтай серыі.

    Аднак ва ўсім гэтым ёсць падвох.

    Адзіны спосаб працы мадэляў SaaS і SLS - гэта калі Інтэрнэт (або інфраструктура, якая стаіць за ім) працягвае расці і ўдасканальвацца разам з вылічальным абсталяваннем і абсталяваннем для захоўвання дадзеных, якое працуе ў «воблаку», у якім працуюць гэтыя сістэмы SaaS / SLS. На шчасце, тэндэнцыі, якія мы адсочваем, выглядаюць шматспадзеўна.

    Каб даведацца пра тое, як будзе расці і развівацца Інтэрнэт, прачытайце наш Будучыня Інтэрнэту серыял. Каб даведацца больш пра развіццё камп'ютэрнага абсталявання, чытайце далей па спасылках ніжэй!

    Серыял будучыня кампутараў

    Новыя карыстальніцкія інтэрфейсы для пераасэнсавання чалавецтва: будучыня кампутараў P1

    Рэвалюцыя лічбавага захоўвання дадзеных: будучыня кампутараў P3

    Знікаючы закон Мура, які выклікае фундаментальнае пераасэнсаванне мікрачыпаў: будучыня кампутараў P4

    Воблачныя вылічэнні становяцца дэцэнтралізаванымі: будучыня кампутараў P5

    Чаму краіны змагаюцца за стварэнне самых вялікіх суперкампутараў? Будучыня кампутараў P6

    Як квантавыя кампутары зменяць свет: будучыня кампутараў P7    

    Наступнае запланаванае абнаўленне для гэтага прагнозу

    2023-02-08

    Прагнозныя даведкі

    Для гэтага прагнозу спасылаліся на наступныя папулярныя і інстытуцыйныя спасылкі:

    Для гэтага прагнозу спасылаліся на наступныя спасылкі Quantumrun: