Иднина на развој на софтвер: Иднина на компјутерите П2

КРЕДИТ НА СЛИКА: Quantumrun

Иднина на развој на софтвер: Иднина на компјутерите П2

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

    Па, компјутерите што постоеја во тоа време беа далеку поедноставни отколку денес. Всушност, истрошениот паметен телефон на просечниот човек е за неколку поредоци на големина помоќен од било што на вселенското летало Аполо 11 (и од целата НАСА од 1960-тите). Згора на тоа, компјутерите во тоа време беа кодирани од специјализирани развивачи на софтвер кои програмираа софтвер на најосновните машински јазици: AGC Assembly Code или едноставно, 1s и 0s.

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

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

    И за разлика од денешните каде што развивачите на софтвер кодираат околу 80-90 проценти од можните сценарија, за мисиите Аполо, нивниот код мораше да одговара за сè. За да го ставиме ова во перспектива, самата Маргарет рече:

    „Поради грешка во прирачникот за проверка на списокот, радарскиот прекинувач за рандеву беше поставен во погрешна положба. Ова предизвика тој да испрати погрешни сигнали до компјутерот. Резултатот беше дека од компјутерот се бараше да ги изврши сите негови нормални функции за слетување додека примаше дополнително оптоварување на лажни податоци кои потрошија 15% од неговото време. вклучи аларм, што значеше за астронаутот, преоптоварен сум со повеќе задачи отколку што треба да правам во овој момент и ќе ги задржам само поважните задачи, односно оние потребни за слетување... Всушност , компјутерот беше програмиран да прави повеќе отколку да ги препознава условите за грешка. Во софтверот беше вграден комплетен сет на програми за обновување. Дејството на софтверот, во овој случај, беше да ги елиминира задачите со помал приоритет и повторно да ги воспостави поважните ... Ако компјутерот немашего препозна овој проблем и презеде акција за опоравување, се сомневам дали Аполо 11 ќе беше успешното слетување на Месечината.

    - Маргарет Хамилтон, директор на Apollo Flight Computer Programming Laboratory MIT Draper, Кембриџ, Масачусетс, „Computer Got Loaded“, Писмо до Податоци, Март 1, 1971

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

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

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

    Процесот на замена на потребата од кодирање 1 и 0 (машински јазик) со зборови и симболи (човечки јазик) се нарекува процес на додавање слоеви на апстракции. Овие апстракции се појавија во форма на нови програмски јазици кои автоматизираат сложени или заеднички функции за полето за кое се дизајнирани. Но, во текот на раните 2000-ти, се појавија нови компании (како Caspio, QuickBase и Mendi) кои почнаа да ги нудат оние што се нарекуваат платформи без код или низок код.

    Овие се кориснички, онлајн контролни табли кои им овозможуваат на не-техничките професионалци да создаваат сопствени апликации приспособени на потребите на нивниот бизнис преку собирање визуелни блокови од код (симболи/графика). Со други зборови, наместо да исечете дрво и да го обликувате во гардероба, вие го градите користејќи претходно модни делови од Икеа.

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

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

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

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

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

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

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

    *Овие развивачи потоа ќе ја мапираат својата стратегија за извршување и ќе започнат со прототипирање на раните нацрти на нивниот софтвер со пристап до нивната компонента библиотека и користење на визуелни интерфејси за да ги поврзат заедно - визуелни интерфејси до кои се пристапува преку зголемена реалност (AR) или виртуелна реалност (VR).

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

    *Врз основа на резултатите, вештачката интелигенција потоа ќе му постави мноштво прашања на развивачот (најверојатно преку вербална комуникација слична на Alexa), барајќи подобро разбирање и дефинирање на целите и испораките на проектот и ќе разговара за тоа како софтверот треба да дејствува во различни сценарија и средини.

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

    *Оваа напред-назад, соработка човек-машина ќе ја повторува верзијата по верзијата на софтверот додека готовата и достапна верзија не биде подготвена за внатрешна имплементација или за продажба на јавноста.

    *Всушност, оваа соработка ќе продолжи откако софтверот ќе биде изложен на употреба во реалниот свет. Како што се пријавуваат едноставни грешки, вештачката интелигенција автоматски ќе ги поправи на начин што ќе ги одразува оригиналните, посакувани цели наведени во процесот на развој на софтвер. Во меѓувреме, посериозните грешки ќе бараат соработка меѓу човекот и вештачката интелигенција за да се реши проблемот.

    Генерално, идните развивачи на софтвер помалку ќе се фокусираат на „како“, а повеќе на „што“ и „зошто“. Тие ќе бидат помалку занаетчии и повеќе архитекти. Програмирањето ќе биде интелектуална вежба за која ќе бидат потребни луѓе кои можат методично да ги соопштат намерите и резултатите на начин на кој вештачката интелигенција може да разбере, а потоа автоматски да шифрира завршена дигитална апликација или платформа.

    Развој на софтвер управуван од вештачка интелигенција

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

    Конкуренцијата меѓу компаниите за развој на софтвер е се пожестока со секоја измината година. Некои компании се натпреваруваат со откупување на нивните конкуренти. Други се натпреваруваат за диференцијација на софтверот. Предизвикот со последната стратегија е што не може лесно да се одбрани. Секоја софтверска карактеристика или подобрување што една компанија им ја нуди на своите клиенти, нејзините конкуренти можат да ја копираат релативно лесно.

    Поради оваа причина, поминаа деновите кога компаниите објавуваат нов софтвер на секои една до три години. Овие денови, компаниите кои се фокусираат на диференцијација имаат финансиски поттик да објавуваат нов софтвер, поправки на софтвер и софтверски карактеристики на сè поредовна основа. Колку побрзо компаниите иновираат, толку повеќе ја поттикнуваат лојалноста на клиентите и ги зголемуваат трошоците за префрлување на конкурентите. Оваа промена кон редовна испорака на постепено ажурирање на софтверот е тренд наречен „континуирана испорака“.

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

    Како што беше наведено претходно, вештачката интелигенција на крајот ќе игра сè повеќе колаборативна улога во изготвувањето и развојот на софтверот. Но, на краток рок, компаниите го користат за сè повеќе да ги автоматизираат процесите за обезбедување квалитет (тестирање) на софтверот. И други компании експериментираат со користење на вештачка интелигенција за автоматизирање на софтверската документација - процесот на следење на објавувањето на новите функции и компоненти и како тие се произведени до ниво на код.

    Генерално, вештачката интелигенција сè повеќе ќе игра централна улога во развојот на софтверот. Оние софтверски компании кои рано ќе ја совладаат неговата употреба, на крајот ќе уживаат експоненцијален раст во однос на нивните конкуренти. Но, за да се реализираат овие придобивки од вештачката интелигенција, индустријата исто така ќе треба да види напредок во хардверската страна на нештата - следниот дел ќе ја елаборира оваа точка.

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

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

    Наместо да купуваат софтверски ЦД-а со досадно разработени сопственички клучеви, клиентите на Adobe сега ќе треба да плаќаат месечна претплата за правото да преземаат софтвер на Adobe на нивните компјутерски уреди, софтвер кој би работел само заедно со редовната до постојана интернет конекција со серверите на Adobe. .

    Со оваа промена, клиентите повеќе не го поседуваа софтверот на Adobe; го изнајмиле по потреба. За возврат, клиентите повеќе не мора постојано да купуваат надградени верзии на софтверот Adobe; сè додека се претплатиле на услугата Adobe, тие секогаш ќе ги поставуваат најновите ажурирања на нивниот уред веднаш по објавувањето (често неколку пати годишно).

    Ова е само еден пример за еден од најголемите софтверски трендови што сме ги виделе во последниве години: како софтверот преминува во употреба наместо самостоен производ. И не само помал, специјализиран софтвер, туку цели оперативни системи, како што видовме со објавувањето на ажурирањето на Windows 10 на Microsoft. Со други зборови, софтверот како услуга (SaaS).

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

    Надоврзувајќи се на промената на индустријата кон SaaS, се појавува нов тренд во софтверскиот простор кој ги комбинира и SaaS и AI. Водечките компании од Amazon, Google, Microsoft и IBM почнаа да ја нудат својата инфраструктура за вештачка интелигенција како услуга на своите клиенти.

    Со други зборови, вештачката интелигенција и машинското учење повеќе не се достапни само за софтверски гиганти, сега секоја компанија и развивач може да пристапи до онлајн ресурсите на вештачката интелигенција за да изгради софтвер за самостојно учење (SLS).

    Детално ќе разговараме за потенцијалот на вештачката интелигенција во нашата серија „Иднина на вештачка интелигенција“, но во контекст на ова поглавје, ќе кажеме дека сегашните и идните развивачи на софтвер ќе создадат SLS за да создадат нови системи кои предвидуваат задачи што треба да се направат и едноставно автоматски пополнете ги за вас.

    Ова значи дека идниот асистент со вештачка интелигенција ќе го научи вашиот стил на работа во канцеларијата и ќе започне да ги завршува основните задачи за вас, како што се форматирање документи исто како што сакате, изготвување на вашите е-пошта со вашиот тон на глас, управување со вашиот работен календар и друго.

    Дома, ова може да значи да имате SLS систем да управува со вашиот иден паметен дом, вклучувајќи задачи како што се претходно загревање на вашиот дом пред да пристигнете или следење на намирниците што треба да ги купите.

    До 2020-тите и до 2030-тите, овие SLS системи ќе играат витална улога на корпоративниот, владиниот, воениот и потрошувачки пазар, постепено помагајќи им на секој да ја подобри својата продуктивност и да го намали отпадот од секаков вид. Ќе ја покриеме технологијата SLS подетално подоцна во оваа серија.

    Сепак, има финта за сето ова.

    Единствениот начин на кој функционираат моделите SaaS и SLS е доколку Интернетот (или инфраструктурата зад него) продолжи да расте и да се подобрува, заедно со компјутерскиот и хардверот за складирање што работи на „облакот“ на кој работат овие SaaS/SLS системи. За среќа, трендовите што ги следиме изгледаат ветувачки.

    За да дознаете како интернетот ќе расте и се развива, прочитајте го нашиот Иднината на Интернетот серија. За да дознаете повеќе за тоа како компјутерскиот хардвер ќе напредува, потоа прочитајте со користење на линковите подолу!

    Серијата Future of Computers

    Нови кориснички интерфејси за редефинирање на човештвото: Иднината на компјутерите P1

    Револуција за дигитално складирање: Иднината на компјутерите P3

    Избледениот закон на Мур за да поттикне фундаментално преиспитување на микрочиповите: Иднината на компјутерите P4

    Cloud computing станува децентрализирано: Иднината на компјутерите P5

    Зошто земјите се натпреваруваат за изградба на најголеми суперкомпјутери? Иднината на компјутерите P6

    Како квантните компјутери ќе го променат светот: Иднината на компјутерите P7    

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

    2023-02-08

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

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

    Следниве Quantumrun врски беа референцирани за оваа прогноза: