Бағдарламалық жасақтаманың дамуының болашағы: Компьютерлердің болашағы Р2

Кредит суреті: Квантумрун

Бағдарламалық жасақтаманың дамуының болашағы: Компьютерлердің болашағы Р2

    1969 жылы Нил Армстронг пен Базз Олдрин Айға аяқ басқан алғашқы адамдар болған соң халықаралық қаһарман атанды. Бірақ бұл ғарышкерлер камераның кейіпкерлері болғанымен, олардың қатысуынсыз Айға бірінші рет қонуы мүмкін болмайтын мыңдаған аталмаған батырлар бар. Бұл кейіпкерлердің бірнешеуі ұшуды кодтаған бағдарламалық жасақтаманы әзірлеушілер болды. Неліктен?

    Ол кездегі компьютерлер қазіргіден әлдеқайда қарапайым болды. Шындығында, қарапайым адамның тозған смартфоны Аполлон 11 ғарыш кемесінен (және осыған байланысты 1960-шы жылдардағы барлық NASA) барлығынан бірнеше рет күштірек. Сонымен қатар, сол кездегі компьютерлерді ең қарапайым машина тілдерінде бағдарламалық қамтамасыз етуді бағдарламалаған арнайы бағдарламалық жасақтама жасаушылар кодтаған: AGC Ассамблея коды немесе жай ғана, 1s және 0s.

    Контекстке келсек, осы жасырын кейіпкерлердің бірі, «Аполлон» ғарыш бағдарламасының бағдарламалық қамтамасыз ету инженерия бөлімінің директоры, Маргарет Гамильтон, және оның командасы бүгінгі бағдарламалау тілдерін пайдаланып, күш-жігердің бір бөлігін пайдаланып жазылуы мүмкін болатын тау кодтарын (төмендегі суретте) жазуға мәжбүр болды.

    (Жоғарыдағы суретте Маргарет Гамильтон Apollo 11 бағдарламалық құралы бар қағаз дестесінің жанында тұр.)

    Бағдарламалық жасақтаманы әзірлеушілер ықтимал сценарийлердің шамамен 80-90 пайызын кодтайтын қазіргі уақыттан айырмашылығы, Аполлон миссиялары үшін олардың коды барлығын есепке алуы керек еді. Мұны перспективаға қою үшін Маргареттің өзі былай деді:

    "Бақылау тізімі нұсқаулығындағы қатеге байланысты кездесу радарын ауыстырып-қосқышы дұрыс емес орынға қойылды. Бұл оның компьютерге қате сигналдар жіберуіне себеп болды. Нәтижесінде компьютерден қону үшін өзінің барлық қалыпты функцияларын орындау сұралды. уақытының 15%-ын пайдаланатын жалған деректердің қосымша жүктемесін алу кезінде.Компьютер (дәлірек айтсақ, ондағы бағдарламалық жасақтама) одан орындауға тиіс тапсырмадан көбірек тапсырмаларды орындау сұралып жатқанын түсіну үшін жеткілікті ақылды болды. Содан кейін ол жіберіледі. Ғарышкерге қатысты дабыл шықса, мен осы уақытта орындауым керектен көп тапсырмаларды орындап жатырмын, мен тек маңыздырақ тапсырмаларды ғана қалдырамын, яғни қону үшін қажет... , компьютер қате жағдайларын танудан көп нәрсе істеуге бағдарламаланған.Қалпына келтіру бағдарламаларының толық жиынтығы бағдарламалық құралға енгізілген. Бағдарламалық құралдың әрекеті, бұл жағдайда, төменірек басымдылық тапсырмаларды жою және неғұрлым маңыздыларын қайта орнату болды ... Егер компьютер болмасабұл мәселені мойындады және қалпына келтіру шараларын қабылдады, мен Аполлон 11 айдың сәтті қонуы болар ма еді деп күмәнданамын ».

    — Маргарет Гамильтон, Apollo Flight компьютерлік бағдарламалау MIT Draper зертханасының директоры, Кембридж, Массачусетс, «Компьютер жүктелді», хат Деректермен қамтамасыз ету, Наурыз, 1, 1971

    Жоғарыда айтылғандай, бағдарламалық жасақтаманы әзірлеу сол алғашқы Аполлон күндерінен бастап дамыды. Жаңа жоғары деңгейлі бағдарламалау тілдері 1 және 0-мен кодтаудың жалықтыру процесін сөздер мен таңбалармен кодтауға ауыстырды. Бұрын бірнеше күн кодтауды қажет ететін кездейсоқ санды генерациялау сияқты функциялар енді бір пәрмен жолын жазу арқылы ауыстырылады.

    Басқаша айтқанда, бағдарламалық кодтау онжылдық өткен сайын автоматтандырылған, интуитивті және адамға айналды. Бұл қасиеттер біздің күнделікті өмірімізге терең әсер ететін бағдарламалық қамтамасыз етуді әзірлеу эволюциясын басқара отырып, болашақта ғана жалғасады. Бұл тараудың осы тарауы Компьютерлердің болашағы сериясы зерттеледі.

    Көпшілік үшін бағдарламалық жасақтаманы әзірлеу

    1 және 0 кодтау қажеттілігін (машина тілі) сөздермен және таңбалармен (адам тілі) ауыстыру процесі абстракциялардың қабаттарын қосу процесі деп аталады. Бұл абстракциялар өздері жобаланған өріс үшін күрделі немесе жалпы функцияларды автоматтандыратын жаңа бағдарламалау тілдері түрінде келді. Бірақ 2000 жылдардың басында жаңа компаниялар пайда болды (мысалы, Caspio, QuickBase және Mendi), олар кодсыз немесе төмен кодты платформалар деп аталатындарды ұсына бастады.

    Бұл техникалық емес мамандарға кодтың көрнекі блоктарын (таңбалар/графика) біріктіру арқылы өз бизнесінің қажеттіліктеріне бейімделген пайдаланушы қолданбаларын жасауға мүмкіндік беретін пайдаланушыға ыңғайлы, онлайн бақылау тақталары. Басқаша айтқанда, ағашты кесіп, оны киім-кешек шкафына айналдырудың орнына, сіз оны Ikea-дан алдын ала жасалған бөлшектерді пайдаланасыз.

    Бұл қызметті пайдалану әлі де белгілі бір деңгейдегі компьютерді білуді талап етеді, бірақ оны пайдалану үшін сізге информатика дәрежесі қажет емес. Нәтижесінде, абстракцияның бұл түрі корпоративтік әлемде миллиондаған жаңа «бағдарламалық жасақтама әзірлеушілерінің» өсуіне мүмкіндік береді және бұл көптеген балаларға ерте жаста кодтауды үйренуге мүмкіндік береді.

    Бағдарламалық жасақтаманы әзірлеуші ​​болу дегенді қайта анықтау

    Пейзажды немесе адамның бетін тек кенепке түсіруге болатын уақыт болды. Кескіндемеші жылдар бойы шәкірт ретінде оқып, машықтануы керек, кескіндеме өнерін - түстерді қалай араластыру керектігін, қандай құралдар жақсы екенін, нақты бейнені орындаудың дұрыс әдістерін үйренуі керек. Сауда құны мен оны жақсы орындау үшін қажет көп жылдық тәжірибе сонымен қатар суретшілердің аз және алыс екенін білдірді.

    Содан кейін камера ойлап табылды. Бір түймені басу арқылы пейзаждар мен портреттер бір секундта түсірілді, әйтпесе бояуға бірнеше күн қажет болатын. Камералар жетілдіріліп, арзандады және тіпті ең қарапайым смартфонға қосылатын деңгейге дейін мол болды, айналамыздағы әлемді түсіру қазір барлығы қатысатын қарапайым және кездейсоқ әрекетке айналды.

    Абстракциялар ілгерілеген сайын және жаңа бағдарламалық жасақтама тілдері бағдарламалық жасақтаманы әзірлеу жұмысын үнемі автоматтандыратындықтан, 10-20 жылдан кейін бағдарламалық жасақтаманы әзірлеуші ​​болу нені білдіреді? Бұл сұраққа жауап беру үшін болашақ бағдарламалық жасақтаманы әзірлеушілер ертеңгі қосымшаларды қалай құруға болатынын қарастырайық:

    *Біріншіден, барлық стандартталған, қайталанатын кодтау жұмыстары жойылады. Оның орнында алдын ала анықталған құрамдас әрекеттердің, пайдаланушы интерфейсінің және деректер ағынының манипуляцияларының (Ikea бөліктері) кең кітапханасы болады.

    *Бүгінгідей, жұмыс берушілер немесе кәсіпкерлер бағдарламалық жасақтаманы әзірлеушілерге арнайы бағдарламалық қосымшалар немесе платформалар арқылы орындау үшін нақты мақсаттар мен нәтижелерді анықтайды.

    *Содан кейін бұл әзірлеушілер өздерінің құрамдас кітапханасына кіру және оларды біріктіру үшін көрнекі интерфейстерді пайдалану арқылы өздерінің орындау стратегиясын анықтайды және бағдарламалық жасақтаманың бастапқы жобаларының прототипін жасауға кіріседі — кеңейтілген шындық (AR) немесе виртуалды шындық (VR) арқылы қол жетімді визуалды интерфейстер.

    *Арнайы жасанды интеллект (AI) жүйелері әзірлеушінің бастапқы жобаларында көзделген мақсаттар мен нәтижелерді түсінуге арналған, содан кейін жобаланған бағдарламалық жасақтама дизайнын нақтылайды және сапаны қамтамасыз етудің барлық сынақтарын автоматтандырады.

    * Нәтижелерге сүйене отырып, AI әзірлеушіге көптеген сұрақтар қояды (мүмкін, ауызша, Alexa тәрізді байланыс арқылы), жобаның мақсаттары мен нәтижелерін жақсырақ түсінуге және анықтауға және бағдарламалық жасақтаманың әртүрлі сценарийлерде қалай әрекет ету керектігін талқылауға тырысады. және орталар.

    *Әзірлеушінің пікіріне сүйене отырып, AI бірте-бірте оның ниетін біліп, жоба мақсаттарын көрсету үшін кодты жасайды.

    *Адам мен машинаның бұл ынтымақтастығы дайын және сатылатын нұсқасы ішкі енгізуге немесе көпшілікке сатуға дайын болғанша бағдарламалық жасақтаманың нұсқасынан кейін нұсқасын қайталайды.

    *Шын мәнінде, бұл ынтымақтастық бағдарламалық жасақтама нақты әлемде пайдалануға ұшырағаннан кейін жалғасады. Қарапайым қателер туралы хабарланғандықтан, AI бағдарламалық жасақтаманы әзірлеу процесінде көрсетілген бастапқы, қалаған мақсаттарды көрсететін етіп автоматты түрде түзетеді. Сонымен қатар, күрделі қателер мәселені шешу үшін адам мен AI ынтымақтастығын талап етеді.

    Тұтастай алғанда, болашақ бағдарламалық жасақтаманы әзірлеушілер «қалай» дегенге азырақ назар аударып, «не» және «неге» деген сұрақтарға көбірек көңіл бөледі. Олар азырақ қолөнерші және көбірек сәулетші болады. Бағдарламалау AI түсінетіндей ниет пен нәтижелерді әдістемелік түрде жеткізе алатын, содан кейін аяқталған цифрлық қолданбаны немесе платформаны автоматты түрде кодтай алатын адамдарды талап ететін интеллектуалды жаттығу болады.

    Жасанды интеллектке негізделген бағдарламалық жасақтаманы әзірлеу

    Жоғарыдағы бөлімді ескере отырып, біз AI бағдарламалық жасақтаманы әзірлеу саласында барған сайын орталық рөл атқаратыны анық, бірақ оны қабылдау бағдарламалық жасақтаманы әзірлеушілерді тиімдірек ету мақсатында ғана емес, бұл үрдістің артында да іскерлік күштер бар.

    Бағдарламалық жасақтаманы әзірлеуші ​​компаниялар арасындағы бәсекелестік жыл өткен сайын күшейе түсуде. Кейбір компаниялар бәсекелестерін сатып алу арқылы бәсекеге түседі. Басқалары бағдарламалық жасақтаманы саралау бойынша бәсекелеседі. Соңғы стратегияның қиындығы - оны оңай қорғауға болмайды. Бір компания өз клиенттеріне ұсынатын кез келген бағдарламалық құрал мүмкіндігі немесе жақсарту, оның бәсекелестері салыстырмалы түрде оңай көшіре алады.

    Осы себепті компаниялар әр үш жыл сайын жаңа бағдарламалық жасақтаманы шығаратын күндер артта қалды. Бұл күндері дифференциацияға назар аударатын компаниялар жаңа бағдарламалық жасақтаманы, бағдарламалық құралды түзетуді және бағдарламалық құрал мүмкіндіктерін тұрақты түрде шығаруға қаржылық ынталандыруға ие. Компаниялар инновацияларды неғұрлым жылдам енгізсе, соғұрлым олар клиенттердің адалдығын арттырады және бәсекелестерге ауысу құнын арттырады. Бағдарламалық жасақтаманың қосымша жаңартуларын жүйелі түрде жеткізуге қарай бұл ауысу «үздіксіз жеткізу» деп аталатын тренд болып табылады.

    Өкінішке орай, үздіксіз жеткізу оңай емес. Бүгінгі бағдарламалық жасақтама компанияларының төрттен бір бөлігі ғана осы тренд талап етілген шығару кестесін орындай алады. Міне, сондықтан AI-ны жылдамдату үшін қолдануға қызығушылық көп.

    Жоғарыда айтылғандай, AI, сайып келгенде, бағдарламалық жасақтаманы жасауда және әзірлеуде барған сайын бірлескен рөл атқарады. Бірақ қысқа мерзімді перспективада компаниялар оны бағдарламалық қамтамасыз ету сапасын қамтамасыз ету (тестілеу) процестерін автоматтандыру үшін пайдаланады. Ал басқа компаниялар бағдарламалық жасақтама құжаттамасын автоматтандыру үшін AI-ны пайдалануды - жаңа мүмкіндіктер мен құрамдас бөліктердің шығарылуын және олардың код деңгейіне дейін қалай жасалғанын қадағалау процесі арқылы тәжірибе жасауда.

    Тұтастай алғанда, AI бағдарламалық жасақтаманы әзірлеуде барған сайын орталық рөл атқаратын болады. Оны пайдалануды ерте игерген бағдарламалық жасақтама компаниялары, сайып келгенде, бәсекелестеріне қарағанда экспоненциалды өсімге ие болады. Бірақ бұл AI жетістіктерін жүзеге асыру үшін сала заттардың аппараттық жағындағы жетістіктерді көруі керек - келесі бөлімде осы мәселе егжей-тегжейлі қарастырылады.

    Бағдарламалық қамтамасыз ету ретінде қызмет

    Шығармашылық кәсіпқойлардың барлық түрлері сандық өнер немесе дизайн жұмыстарын жасау кезінде Adobe бағдарламалық құралын пайдаланады. Сіз шамамен отыз жыл бойы Adobe бағдарламалық құралын ықшам дискі ретінде сатып алдыңыз және оны мәңгілік пайдалануды иемдендіңіз, қажет болған жағдайда болашақ жаңартылған нұсқаларын сатып алдыңыз. Бірақ 2010 жылдардың ортасында Adobe өзінің стратегиясын өзгертті.

    Тітіркендірмейтін иелік кілттері бар бағдарламалық жасақтама ықшам дискілерін сатып алудың орнына, Adobe тұтынушылары енді Adobe серверлеріне тұрақты интернет қосылымымен қатар жұмыс істейтін Adobe бағдарламалық құралын компьютерлік құрылғыларына жүктеп алу құқығы үшін ай сайынғы жазылымды төлеуі керек еді. .

    Бұл өзгеріспен тұтынушылар енді Adobe бағдарламалық құралына иелік етпеді; олар оны қажетінше жалға алды. Өз кезегінде тұтынушыларға Adobe бағдарламалық құралының жаңартылған нұсқаларын үнемі сатып алудың қажеті жоқ; олар Adobe қызметіне жазылған кезде, олар әрқашан шығарылғаннан кейін (жиі жылына бірнеше рет) құрылғыларына ең соңғы жаңартуларды жүктеп алатын болады.

    Бұл соңғы жылдары біз көрген бағдарламалық қамтамасыз етудің ең үлкен тенденцияларының бірінің мысалы: бағдарламалық құралдың дербес өнімнің орнына қызметке қалай ауысатыны. Microsoft корпорациясының Windows 10 жаңартуының шығарылымынан көргеніміздей, кішірек, арнайы бағдарламалық жасақтаманы ғана емес, бүкіл операциялық жүйелерді де көрдік. Басқаша айтқанда, бағдарламалық қамтамасыз ету қызмет ретінде (SaaS).

    Өздігінен білім алатын бағдарламалық құрал (SLS)

    SaaS-ке саланың ауысуына сүйене отырып, SaaS және AI-ді біріктіретін бағдарламалық қамтамасыз ету кеңістігінде жаңа тренд пайда болуда. Amazon, Google, Microsoft және IBM жетекші компаниялары AI инфрақұрылымын өз клиенттеріне қызмет ретінде ұсына бастады.

    Басқаша айтқанда, енді AI және машиналық оқыту тек бағдарламалық жасақтама алыптары үшін қол жетімді емес, енді кез келген компания мен әзірлеуші ​​​​өзін-өзі оқыту бағдарламалық құралын (SLS) құру үшін AI онлайн ресурстарына қол жеткізе алады.

    Біз «Жасанды интеллекттің болашағы» сериямызда AI әлеуетін егжей-тегжейлі талқылайтын боламыз, бірақ осы тараудың контекстінде қазіргі және болашақ бағдарламалық жасақтаманы әзірлеушілер орындауды қажет ететін тапсырмаларды болжайтын жаңа жүйелерді жасау үшін SLS жасайды деп айтамыз. жай ғана сіз үшін оларды автоматты түрде толтырыңыз.

    Бұл болашақ AI көмекшісі кеңседегі жұмыс мәнеріңізді үйреніп, құжаттарды өзіңіз қалағандай пішімдеу, электрондық хаттарыңызды дауыс ырғағымен жазу, жұмыс күнтізбесін басқару және т.б. сияқты негізгі тапсырмаларды орындай бастайтынын білдіреді.

    Үйде бұл SLS жүйесі болашақ смарт үйіңізді, соның ішінде сіз келгенге дейін үйіңізді алдын ала жылыту немесе сатып алуыңыз керек азық-түліктерді қадағалау сияқты тапсырмаларды басқаруды білдіреді.

    2020 және 2030 жылдарға қарай бұл SLS жүйелері корпоративтік, үкіметтік, әскери және тұтынушылық нарықтарда маңызды рөл атқарып, әрқайсысына бірте-бірте өнімділігін арттыруға және барлық түрдегі қалдықтарды азайтуға көмектесетін болады. SLS технологиясын кейінірек осы серияда толығырақ қарастырамыз.

    Дегенмен, мұның бәрінің бір ізі бар.

    SaaS және SLS үлгілерінің жұмыс істеуінің жалғыз жолы - бұл SaaS/SLS жүйелері жұмыс істейтін «бұлтты» басқаратын есептеу және сақтау жабдығымен қатар Интернет (немесе оның артындағы инфрақұрылым) өсіп, жетілдірілсе. Бақытымызға орай, біз бақылап отырған трендтер перспективалы болып көрінеді.

    Интернеттің қалай өсіп, дамитындығы туралы білу үшін біздің мақаланы оқыңыз Интернеттің болашағы сериясы. Компьютерлік жабдықтың қалай жететіні туралы көбірек білу үшін төмендегі сілтемелерді пайдаланып оқыңыз!

    «Компьютерлердің болашағы» сериясы

    Адамзатты қайта анықтау үшін пайда болатын пайдаланушы интерфейстері: компьютерлердің болашағы P1

    Сандық сақтау революциясы: компьютерлердің болашағы P3

    Мур заңы микрочиптерді түбегейлі қайта қарауға себепші болады: компьютерлердің болашағы P4

    Бұлтты есептеулер орталықтандырылмаған болады: Компьютерлердің болашағы P5

    Неліктен елдер ең үлкен суперкомпьютерлерді жасау үшін бәсекелеседі? Компьютерлердің болашағы Б6

    Кванттық компьютерлер әлемді қалай өзгертеді: Компьютерлердің болашағы P7    

    Осы болжам үшін келесі жоспарланған жаңарту

    2023-02-08

    Болжам анықтамалары

    Бұл болжам үшін келесі танымал және институционалдық сілтемелерге сілтеме жасалды:

    Бұл болжам үшін келесі Quantumrun сілтемелеріне сілтеме жасалды: