Ծրագրային ապահովման մշակման ապագան. Համակարգիչների ապագան P2

ՊԱՏԿԵՐԻ ՎԱՐԿ. Quantumrun

Ծրագրային ապահովման մշակման ապագան. Համակարգիչների ապագան P2

    1969թ.-ին Նիլ Արմսթրոնգը և Բազ Օլդրինը դարձան միջազգային հերոսներ այն բանից հետո, երբ առաջին մարդիկ ոտք դրեցին Լուսնի վրա: Բայց թեև այս տիեզերագնացները տեսախցիկի հերոսներն էին, կան հազարավոր անհայտ հերոսներ, ովքեր առանց իրենց մասնակցության, Լուսնի վրա կառավարվող առաջին վայրէջքը անհնարին չէր լինի: Այս հերոսներից մի քանիսն էին ծրագրային ապահովման մշակողները, ովքեր կոդավորեցին թռիչքը: Ինչո՞ւ։

    Դե, այն ժամանակ գոյություն ունեցող համակարգիչները շատ ավելի պարզ էին, քան այսօր: Իրականում, սովորական մարդու մաշված սմարթֆոնը մի քանի աստիճանով ավելի հզոր է, քան «Ապոլոն 11» տիեզերանավի վրա գտնվող որևէ այլ բան (և 1960-ականների NASA-ի բոլոր այդ հարցում): Ավելին, այն ժամանակ համակարգիչները կոդավորվում էին մասնագիտացված ծրագրաշար մշակողների կողմից, ովքեր ծրագրավորում էին ծրագրակազմը մեքենայական լեզուներից ամենահիմնականով՝ AGC Assembly Code կամ պարզապես, 1s և 0s:

    Համատեքստի համար, այս անհայտ հերոսներից մեկը՝ Apollo տիեզերական ծրագրի Ծրագրային ճարտարագիտության բաժնի տնօրենը, Մարգարեթ Հեմիլթոն, և նրա թիմը ստիպված էր գրել կոդի մի սար (ներքևում պատկերված), որ օգտագործելով այսօրվա ծրագրավորման լեզուները կարող էին գրվել՝ օգտագործելով ջանքերի մի մասը:

    (Վերևում պատկերված է Մարգարեթ Համիլթոնը, որը կանգնած է Apollo 11 ծրագրակազմ պարունակող թղթի կույտի կողքին):

    Եվ ի տարբերություն մեր օրերի, որտեղ ծրագրային ապահովման մշակողները կոդավորում են հնարավոր սցենարների մոտ 80-90 տոկոսը, «Ապոլոն» առաքելությունների համար նրանց կոդը պետք է հաշվի առներ ամեն ինչ: Սա հասկանալու համար Մարգարիտն ինքը ասաց.

    «Չեկի ձեռնարկի սխալի պատճառով ռադարային ռադարային անջատիչը սխալ դիրքում է տեղադրվել: Դա հանգեցրել է նրան, որ այն սխալ ազդանշաններ է ուղարկել համակարգչին: Արդյունքն այն է, որ համակարգչին խնդրել են կատարել իր բոլոր նորմալ գործառույթները վայրէջքի համար: Ստանալով կեղծ տվյալների լրացուցիչ բեռ, որը սպառում էր իր ժամանակի 15%-ը: Համակարգիչը (ավելի ճիշտ՝ դրա մեջ գտնվող ծրագրաշարը) բավականաչափ խելացի էր՝ հասկանալու, որ իրենից պահանջվում էր կատարել ավելի շատ առաջադրանքներ, քան պետք է կատարեր: Այնուհետև ուղարկվեց տագնապ, որը նշանակում էր տիեզերագնացին, ես ծանրաբեռնված եմ ավելի շատ առաջադրանքներով, քան պետք է անեի այս պահին, և ես պատրաստվում եմ պահպանել միայն ավելի կարևոր առաջադրանքները, այսինքն՝ նրանք, որոնք անհրաժեշտ են վայրէջքի համար... Իրականում: , համակարգիչը ծրագրավորվել էր ավելին անել, քան սխալի պայմանները ճանաչելը: Վերականգնման ծրագրերի ամբողջական փաթեթը ներառված էր ծրագրային ապահովման մեջ: Ծրագրաշարի գործողությունը, այս դեպքում, ավելի ցածր առաջնահերթ առաջադրանքների վերացումն ու ավելի կարևոր առաջադրանքների վերահաստատումն էր… Եթե ​​համակարգիչը չունենարճանաչեց այս խնդիրը և ձեռնարկեց վերականգնման միջոցառումներ, ես կասկածում եմ, որ Apollo 11-ը հաջողությամբ վայրէջք կատարեր լուսնի վրա»:

    — Մարգարեթ Հեմիլթոն, Apollo Flight Computer Programming MIT Draper Laboratory-ի տնօրեն, Քեմբրիջ, Մասաչուսեթս, «Computer Got Loaded», Նամակ՝ Տվյալների հաշվառում, Մարտի 1, 1971

    Ինչպես նշվեց ավելի վաղ, ծրագրային ապահովման մշակումը զարգացել է Ապոլոնի այդ վաղ օրերից: Նոր բարձր մակարդակի ծրագրավորման լեզուները 1-ով և 0-ով կոդավորման հոգնեցուցիչ գործընթացը փոխարինեցին բառերով և նշաններով կոդավորմանը: Գործառույթները, ինչպիսիք են պատահական թվի ստեղծումը, որը նախկինում պահանջում էր կոդավորման օրեր, այժմ փոխարինվում են մեկ հրամանի տողով:

    Այլ կերպ ասած, ծրագրային ապահովման կոդավորումը յուրաքանչյուր տասնամյակի ընթացքում դառնում է ավելի ավտոմատացված, ինտուիտիվ և մարդկային: Այս հատկությունները կշարունակվեն միայն ապագայում՝ առաջնորդելով ծրագրային ապահովման մշակման զարգացումը այնպիսի ձևերով, որոնք խոր ազդեցություն կունենան մեր առօրյա կյանքի վրա: Սա այն է, ինչ այս գլուխը Համակարգիչների ապագան շարքը կուսումնասիրվի:

    Ծրագրային ապահովման մշակում լայն զանգվածների համար

    1-երը և 0-երը (մեքենայական լեզու) կոդավորման անհրաժեշտությունը բառերով և նշաններով (մարդկային լեզու) փոխարինելու գործընթացը կոչվում է վերացականության շերտերի ավելացման գործընթաց: Այս աբստրակցիաները եկել են նոր ծրագրավորման լեզուների տեսքով, որոնք ավտոմատացնում են բարդ կամ ընդհանուր գործառույթներն այն ոլորտի համար, որի համար նախատեսված են: Սակայն 2000-ականների սկզբին ի հայտ եկան նոր ընկերություններ (ինչպես Caspio-ն, QuickBase-ը և Mendi-ն), որոնք սկսեցին առաջարկել այն, ինչ կոչվում է առանց կոդերի կամ ցածր կոդերի հարթակներ:

    Սրանք օգտատերերի համար հարմար առցանց վահանակներ են, որոնք թույլ են տալիս ոչ տեխնիկական մասնագետներին ստեղծել իրենց բիզնեսի կարիքներին հարմարեցված հատուկ հավելվածներ՝ կոդի տեսողական բլոկները (նշաններ/գրաֆիկա) միավորելու միջոցով: Այլ կերպ ասած, ծառը կտրելու և այն հագնվելու պահարան դարձնելու փոխարեն, դուք այն կառուցում եք՝ օգտագործելով Ikea-ի նախամոդայիկ մասերը:

    Թեև այս ծառայությունից օգտվելը դեռևս պահանջում է համակարգչային գիտելիքների որոշակի մակարդակ, ձեզ այլևս համակարգչային գիտության աստիճանի կարիք չկա, այն օգտագործեք: Արդյունքում, աբստրակցիայի այս ձևը հնարավորություն է տալիս կորպորատիվ աշխարհում միլիոնավոր նոր «ծրագրային ապահովման մշակողների» առաջացմանը, և այն շատ երեխաների հնարավորություն է տալիս ավելի վաղ տարիքում սովորել կոդավորել:

    Վերասահմանում, թե ինչ է նշանակում լինել ծրագրավորող

    Կար ժամանակ, երբ բնապատկերը կամ մարդու դեմքը կարելի էր նկարել միայն կտավի վրա: Նկարիչը պետք է տարիներ շարունակ սովորի և պարապի որպես աշակերտ՝ սովորելով նկարչության արհեստը՝ ինչպես խառնել գույները, ինչ գործիքներն են լավագույնը, ճիշտ տեխնիկան՝ հատուկ տեսողական պատկերը կատարելու համար: Առևտրի արժեքը և այն լավ կատարելու համար անհրաժեշտ երկար տարիների փորձը նույնպես նշանակում էին, որ նկարիչները շատ քիչ էին:

    Հետո տեսախցիկը հայտնագործվեց։ Եվ կոճակի սեղմումով մեկ վայրկյանում նկարահանվեցին բնապատկերներ և դիմանկարներ, որոնք այլապես նկարելու համար կպահանջվեին օրերից շաբաթներ: Եվ քանի որ տեսախցիկները բարելավվել են, էժանացել և դարձել են առատ, այն աստիճանի, որ դրանք այժմ ներառված են նույնիսկ ամենատարրական սմարթֆոնների մեջ, մեզ շրջապատող աշխարհը գրավելը դարձել է սովորական և պատահական գործունեություն, որին այժմ մասնակցում են բոլորը:

    Քանի որ աբստրակցիաները առաջ են գնում, և ծրագրային ապահովման նոր լեզուները ավտոմատացնում են ավելի ու ավելի սովորական ծրագրային ապահովման մշակման աշխատանքը, ի՞նչ կնշանակի լինել ծրագրակազմ մշակող 10-20 տարի հետո: Այս հարցին պատասխանելու համար եկեք տեսնենք, թե ինչպես են ապագա ծրագրակազմ մշակողները, հավանաբար, պատրաստվում են կառուցել վաղվա հավելվածները.

    *Նախ, բոլոր ստանդարտացված, կրկնվող կոդավորման աշխատանքները կվերանան: Իր տեղում կլինի նախապես սահմանված բաղադրիչների վարքագծի, UI-ների և տվյալների հոսքի մանիպուլյացիաների հսկայական գրադարան (Ikea մասեր):

    *Ինչպես այսօր, գործատուները կամ ձեռնարկատերերը ծրագրային ապահովման մշակողների համար կսահմանեն հատուկ նպատակներ և արդյունքներ՝ դրանք իրականացնելու մասնագիտացված ծրագրային հավելվածների կամ հարթակների միջոցով:

    *Այս ծրագրավորողները այնուհետև կկազմեն իրենց կատարման ռազմավարությունը և կսկսեն նախատիպել իրենց ծրագրաշարի վաղ նախագծերը՝ մուտք գործելով իրենց բաղադրիչ գրադարան և օգտագործելով տեսողական միջերեսներ՝ դրանք միմյանց կապելու համար.

    *Արհեստական ​​ինտելեկտի (AI) մասնագիտացված համակարգերը, որոնք նախագծված են հասկանալու նպատակներն ու արդյունքները, որոնք ենթադրվում են իրենց մշակողի սկզբնական նախագծերով, այնուհետև կմշակեն մշակված ծրագրային դիզայնը և կավտոմատացնեն որակի ապահովման բոլոր փորձարկումները:

    *Արդյունքների հիման վրա AI-ն այնուհետև բազմաթիվ հարցեր կտա մշակողին (հավանաբար բանավոր, Alexa-ի նման հաղորդակցության միջոցով)՝ ձգտելով ավելի լավ հասկանալ և սահմանել նախագծի նպատակներն ու արդյունքները և քննարկել, թե ինչպես պետք է գործի ծրագրաշարը տարբեր սցենարներում։ և միջավայրեր։

    *Հիմնվելով ծրագրավորողի հետադարձ կապի վրա՝ AI-ն աստիճանաբար կսովորի իր մտադրությունը և կստեղծի կոդը՝ արտացոլելու ծրագրի նպատակները:

    *Մարդ-մեքենայի այս ետ ու առաջ համագործակցությունը կկրկնվի ծրագրաշարի տարբերակից տարբերակ, մինչև որ պատրաստի և շուկայական տարբերակը պատրաստ լինի ներքին ներդրման կամ վաճառքի հանրությանը:

    *Փաստորեն, այս համագործակցությունը կշարունակվի այն բանից հետո, երբ ծրագրաշարը կհայտնվի իրական աշխարհում: Քանի որ պարզ վրիպակներ են հաղորդվում, AI-ն դրանք ինքնաբերաբար կուղղի այնպես, որ արտացոլի ծրագրային ապահովման մշակման գործընթացում ուրվագծված սկզբնական, ցանկալի նպատակները: Միևնույն ժամանակ, ավելի լուրջ վրիպակներ կպահանջեն մարդու և արհեստական ​​ինտելեկտի համագործակցություն՝ խնդիրը լուծելու համար:

    Ընդհանուր առմամբ, ապագա ծրագրային ապահովման մշակողները ավելի քիչ կկենտրոնանան «ինչպես»-ի և ավելի շատ «ինչ»-ի և «ինչու»-ի վրա: Նրանք կլինեն ավելի քիչ արհեստավոր և ավելի շատ ճարտարապետ: Ծրագրավորումը կլինի ինտելեկտուալ վարժություն, որը կպահանջի մարդկանց, ովքեր կարող են մեթոդական կերպով հաղորդակցվել մտադրությունների և արդյունքների մասին այնպես, որ AI-ն կարողանա հասկանալ, և այնուհետև ավտոմատ կերպով կոդավորել պատրաստի թվային հավելվածը կամ հարթակը:

    Արհեստական ​​ինտելեկտի վրա հիմնված ծրագրային ապահովման մշակում

    Հաշվի առնելով վերը նշված բաժինը, պարզ է, որ մենք զգում ենք, որ AI-ն ավելի ու ավելի կենտրոնական դեր կխաղա ծրագրային ապահովման մշակման ոլորտում, բայց դրա ընդունումը զուտ ծրագրային ապահովման մշակողներին ավելի արդյունավետ դարձնելու նպատակով չէ, կան նաև բիզնես ուժեր այս միտումի հետևում:

    Ծրագրային ապահովման մշակող ընկերությունների միջև մրցակցությունը տարեցտարի ավելի է սրվում: Որոշ ընկերություններ մրցակցում են՝ գնելով իրենց մրցակիցներին: Մյուսները մրցում են ծրագրային ապահովման տարբերակման հարցում: Վերջին ռազմավարության խնդիրն այն է, որ այն հեշտությամբ պաշտպանելի չէ: Ծրագրային ապահովման ցանկացած առանձնահատկություն կամ բարելավում, որն առաջարկում է ընկերությունն իր հաճախորդներին, նրա մրցակիցները կարող են համեմատաբար հեշտությամբ պատճենել:

    Այդ իսկ պատճառով, անցել են այն ժամանակները, երբ ընկերությունները թողարկում են նոր ծրագրակազմ յուրաքանչյուր մեկից երեք տարին մեկ: Այս օրերին, այն ընկերությունները, որոնք կենտրոնանում են տարբերակման վրա, ֆինանսական խթան ունեն նոր ծրագրային ապահովման, ծրագրային ապահովման ուղղումների և ծրագրային ապահովման առանձնահատկությունների թողարկման ավելի կանոնավոր հիմունքներով: Որքան արագ են ընկերությունները նորարարություններ անում, այնքան ավելի շատ են նրանք խթանում հաճախորդների հավատարմությունը և մեծացնում մրցակիցներին անցնելու ծախսերը: Այս տեղաշարժը դեպի ծրագրային ապահովման հավելյալ թարմացումների կանոնավոր առաքում միտում է, որը կոչվում է «շարունակական առաքում»:

    Ցավոք, շարունակական առաքումը հեշտ չէ: Այսօրվա ծրագրային ապահովման ընկերությունների հազիվ մեկ քառորդը կարող է կատարել այս միտումից պահանջվող թողարկման ժամանակացույցը: Եվ սա է պատճառը, որ այդքան մեծ հետաքրքրություն կա արհեստական ​​ինտելեկտի օգտագործման նկատմամբ՝ արագացնելու համար:

    Ինչպես նշվեց ավելի վաղ, AI-ն, ի վերջո, ավելի ու ավելի համագործակցային դեր կխաղա ծրագրային ապահովման մշակման և զարգացման գործում: Սակայն կարճաժամկետ հեռանկարում ընկերություններն օգտագործում են այն ծրագրային ապահովման որակի ապահովման (փորձարկման) գործընթացներն ավելի ու ավելի ավտոմատացնելու համար: Եվ այլ ընկերություններ փորձարկում են արհեստական ​​ինտելեկտի օգտագործումը ծրագրային ապահովման փաստաթղթերի ավտոմատացման համար՝ նոր հնարավորությունների և բաղադրիչների թողարկմանը հետևելու գործընթացին և ինչպես են դրանք արտադրվել մինչև կոդի մակարդակը:

    Ընդհանուր առմամբ, AI-ն ավելի ու ավելի մեծ դեր կխաղա ծրագրային ապահովման մշակման գործում: Ծրագրային ապահովման այն ընկերությունները, որոնք վաղ տիրապետում են դրա օգտագործմանը, ի վերջո կվայելեն էքսպոնենտալ աճ իրենց մրցակիցների նկատմամբ: Սակայն AI-ի այս ձեռքբերումները գիտակցելու համար արդյունաբերությունը պետք է նաև առաջընթաց տեսնի իրերի ապարատային կողմում. հաջորդ բաժինը կմանրամասնի այս կետը:

    Ծրագիրը որպես ծառայություն

    Բոլոր տեսակի ստեղծագործ մասնագետները օգտագործում են Adobe ծրագրակազմը թվային արվեստի կամ դիզայնի աշխատանք ստեղծելիս: Մոտ երեք տասնամյակ դուք գնում էիք Adobe-ի ծրագրակազմը որպես CD և ունեին դրա հավերժ օգտագործումը՝ անհրաժեշտության դեպքում գնելով ապագա արդիականացված տարբերակները: Սակայն 2010-ականների կեսերին Adobe-ը փոխեց իր ռազմավարությունը:

    Անհանգստացնող մշակված սեփականության բանալիներով ծրագրային ձայնասկավառակներ գնելու փոխարեն, Adobe-ի հաճախորդներն այժմ ստիպված կլինեն ամսական բաժանորդագրություն վճարել Adobe ծրագրակազմն իրենց հաշվողական սարքերում ներբեռնելու իրավունքի համար, ծրագրային ապահովում, որը կաշխատի միայն Adobe սերվերների հետ սովորականից մշտական ​​ինտերնետ կապի կողքին: .

    Այս փոփոխությամբ հաճախորդներն այլևս չունեին Adobe ծրագրային ապահովում. ըստ անհրաժեշտության վարձակալել են։ Դրա դիմաց հաճախորդներն այլևս ստիպված չեն լինի անընդհատ գնել Adobe ծրագրաշարի արդիականացված տարբերակները. քանի դեռ նրանք բաժանորդագրվել են Adobe ծառայությանը, նրանք միշտ կունենան վերջին թարմացումները բեռնված իրենց սարքում անմիջապես թողարկումից հետո (հաճախ տարին մի քանի անգամ):

    Սա ծրագրային ապահովման ամենամեծ միտումներից մեկի միայն մեկ օրինակն է, որը մենք տեսել ենք վերջին տարիներին. ինչպես է ծրագրակազմն անցնում ծառայության՝ անկախ արտադրանքի փոխարեն: Եվ ոչ միայն ավելի փոքր, մասնագիտացված ծրագրակազմ, այլ ամբողջ օպերացիոն համակարգեր, ինչպես մենք տեսանք Microsoft-ի Windows 10 թարմացման թողարկման ժամանակ: Այլ կերպ ասած, ծրագրակազմը որպես ծառայություն (SaaS):

    Ինքնուսուցման ծրագրակազմ (SLS)

    Հիմնվելով դեպի SaaS արդյունաբերության տեղաշարժի վրա՝ ծրագրային ապահովման ոլորտում նոր միտում է ի հայտ գալիս, որը համատեղում է և՛ SaaS-ը, և՛ AI-ն: Amazon-ի, Google-ի, Microsoft-ի և IBM-ի առաջատար ընկերությունները սկսել են իրենց AI ենթակառուցվածքն առաջարկել որպես ծառայություն իրենց հաճախորդներին:

    Այլ կերպ ասած, AI-ն և մեքենայական ուսուցումն այլևս հասանելի չեն միայն ծրագրային ապահովման հսկաներին, այժմ ցանկացած ընկերություն և մշակող կարող է մուտք գործել AI առցանց ռեսուրսներ՝ ինքնուրույն ուսուցման ծրագրակազմ (SLS) ստեղծելու համար:

    Մենք մանրամասնորեն կքննարկենք AI-ի ներուժը Արհեստական ​​ինտելեկտի ապագայի մեր շարքում, սակայն այս գլխի համատեքստում կասենք, որ ընթացիկ և ապագա ծրագրային ապահովման մշակողները կստեղծեն SLS՝ ստեղծելու նոր համակարգեր, որոնք կանխատեսում են առաջադրանքներ, որոնք պետք է կատարվեն և պարզապես ավտոմատ կերպով լրացրեք դրանք ձեզ համար:

    Սա նշանակում է, որ ապագա արհեստական ​​ինտելեկտի օգնականը կսովորի ձեր աշխատաոճը գրասենյակում և կսկսի կատարել ձեզ համար հիմնական առաջադրանքները, օրինակ՝ փաստաթղթերի ձևաչափումը ձեր ուզածի պես, ձեր էլ. նամակների ձևավորումը ձեր ձայնի տոնով, կառավարելու ձեր աշխատանքային օրացույցը և այլն:

    Սա կարող է նշանակել, որ ձեր ապագա խելացի տունը կառավարի SLS համակարգ, ներառյալ այնպիսի առաջադրանքներ, ինչպիսիք են՝ նախքան ձեր տունը նախապես տաքացնելը կամ հետևել մթերային ապրանքներին, որոնք դուք պետք է գնեք:

    Մինչև 2020-ականները և մինչև 2030-ականները, այս SLS համակարգերը կենսական դեր կխաղան կորպորատիվ, պետական, ռազմական և սպառողական շուկաներում՝ աստիճանաբար օգնելով յուրաքանչյուրին բարելավել իրենց արտադրողականությունը և նվազեցնել բոլոր տեսակի թափոնները: Մենք ավելի մանրամասն կանդրադառնանք SLS տեխնոլոգիային ավելի ուշ այս շարքում:

    Այնուամենայնիվ, այս ամենին մի որսորդություն կա.

    SaaS-ի և SLS մոդելների աշխատանքի միակ ձևն այն է, որ ինտերնետը (կամ դրա հետևում գտնվող ենթակառուցվածքը) շարունակի զարգանալ և կատարելագործվել, ինչպես նաև համակարգչային և պահեստավորման սարքաշարը, որն աշխատում է «ամպի» վրա այս SaaS/SLS համակարգերի վրա: Բարեբախտաբար, միտումները, որոնք մենք հետևում ենք, խոստումնալից են թվում:

    Իմանալու համար, թե ինչպես է ինտերնետը զարգանալու և զարգանալու, կարդացեք մեր Ինտերնետի ապագան շարքը. Համակարգչային սարքավորումների առաջընթացի մասին ավելին իմանալու համար կարդացեք՝ օգտագործելով ստորև նշված հղումները:

    Համակարգիչների ապագան շարք

    Մարդկությունը վերասահմանելու համար առաջացող օգտատերերի միջերեսներ. Համակարգիչների ապագան P1

    Թվային պահեստավորման հեղափոխություն. Համակարգիչների ապագան P3

    Մուրի օրենք, որը կհանգեցնի միկրոչիպերի հիմնարար վերանայմանը. Համակարգիչների ապագան P4

    Cloud computing-ը դառնում է ապակենտրոն. Համակարգիչների ապագան P5

    Ինչո՞ւ են երկրները մրցում ամենամեծ սուպերհամակարգիչները ստեղծելու համար: Համակարգիչների ապագան P6

    Ինչպես քվանտային համակարգիչները կփոխեն աշխարհը. Համակարգիչների ապագան P7    

    Այս կանխատեսման հաջորդ պլանավորված թարմացումը

    2023-02-08

    Կանխատեսման հղումներ

    Այս կանխատեսման համար հղում են արվել հետևյալ հանրաճանաչ և ինստիտուցիոնալ հղումներին.

    Այս կանխատեսման համար հղում են արվել հետևյալ Quantumrun հղումներին.