Estonteco de programaro: Estonteco de komputiloj P2

BILDA KREDITO: Quantumrun

Estonteco de programaro: Estonteco de komputiloj P2

    En 1969, Neil Armstrong kaj Buzz Aldrin iĝis internaciaj herooj post esti la unuaj homoj se temas pri paŝi sur la Lunon. Sed dum ĉi tiuj astronaŭtoj estis la herooj ĉe fotilo, ekzistas miloj da nekantitaj herooj, kiuj sen ilia implikiĝo, tiu unua pilotata surluniĝo ne estus malebla. Kelkaj el ĉi tiuj herooj estis la programistoj, kiuj kodis la flugon. Kial?

    Nu, la komputiloj kiuj ekzistis en tiu tempo estis multe pli simplaj ol ili estas hodiaŭ. Fakte, la eluzita inteligenta telefono de la averaĝa persono estas plurajn grandordojn pli potenca ol io ajn sur la kosmoŝipo Apollo 11 (kaj la tuta NASA de la 1960-aj jaroj). Krome, komputiloj en tiu tempo estis koditaj fare de specialigitaj programistoj kiuj programis programaron en la plej baza el maŝinlingvoj: AGC Assembly Code aŭ simple, 1s kaj 0s.

    Por kunteksto, unu el ĉi tiuj nekonataj herooj, la Direktoro de la Programaro-Inĝenieristiko-Dividado de la Apollo-kosmoprogramo, Margaret Hamilton, kaj ŝia teamo devis skribi monton da kodo (bildigita malsupre) ke uzante la hodiaŭajn programlingvojn povus esti skribita uzante frakcion de la fortostreĉo.

    (Sur la bildo supre estas Margaret Hamilton staranta apud stako da papero enhavanta la Apollo 11 programaron.)

    Kaj malkiel nuntempe kie programistoj kodas por ĉirkaŭ 80-90 procentoj de eblaj scenaroj, por la Apollo-misioj, ilia kodo devis respondeci pri ĉio. Por meti tion en perspektivo, Margareta mem diris:

    "Pro eraro en la manlibro de kontrolo, la rendevua radarŝaltilo estis metita en malĝustan pozicion. Ĉi tio igis ĝin sendi erarajn signalojn al la komputilo. La rezulto estis, ke la komputilo estis petita plenumi ĉiujn siajn normalajn funkciojn por surteriĝo. dum ĝi ricevis ekstran ŝarĝon da falsaj datumoj, kiuj uzis 15% de sia tempo.La komputilo (aŭ pli ĝuste la programaro en ĝi) estis sufiĉe lerta por rekoni, ke oni petis ĝin plenumi pli da taskoj ol ĝi devus plenumi. Ĝi tiam sendis. elŝaltis alarmon, kio signifis por la astronaŭto, ke mi estas troŝarĝita de pli da taskoj ol mi devus fari ĉi-momente, kaj mi konservos nur la pli gravajn taskojn, t.e., tiujn necesajn por surteriĝo... Efektive , la komputilo estis programita por fari pli ol rekoni erarkondiĉojn. Kompleta aro da reakiro programoj estis korpigita en la programaro. La ago de la programaro, en ĉi tiu kazo, estis forigi pli malaltajn prioritatajn taskojn kaj restarigi la pli gravajn... Se la komputilo ne havisrekonis ĉi tiun problemon kaj faris reakigan agon, mi dubas ĉu Apolono 11 estus la sukcesa surluniĝo kiun ĝi estis."

    - Margaret Hamilton, Direktoro de Apollo Flight Computer Programming MIT Draper Laboratory, Kembriĝo, Masaĉuseco, "Computer Got Loaded", Letero al Datamation, Marto 1, 1971

    Kiel aludite antaŭe, programaro evoluis ekde tiuj fruaj Apollo-tagoj. Novaj altnivelaj programlingvoj anstataŭigis la tedan procezon de kodigo per 1s kaj 0s al kodigo per vortoj kaj simboloj. Funkcioj kiel generi hazardan nombron, kiu kutimis postuli tagojn da kodigo, nun estas anstataŭigitaj per skribado de ununura komandlinio.

    Alivorte, programara kodigo fariĝis ĉiam pli aŭtomatigita, intuicia kaj homa kun ĉiu pasinta jardeko. Ĉi tiuj kvalitoj daŭros nur en la estonteco, gvidante la evoluon de programaro en manieroj kiuj havos profundan efikon al niaj ĉiutagaj vivoj. Jen kio ĉi tiu ĉapitro de la Estonteco de Komputiloj serio esploros.

    Disvolviĝo de programaro por la amasoj

    La procezo de anstataŭigi la bezonon kodi 1s kaj 0s (maŝinlingvo) kun vortoj kaj simboloj (homa lingvo) estas referita kiel la procezo de aldonado de tavoloj de abstraktaĵoj. Tiuj abstraktaĵoj venis en la formo de novaj programlingvoj kiuj aŭtomatigas kompleksajn aŭ komunajn funkciojn por la kampo por kiu ili estis dizajnitaj. Sed dum la fruaj 2000-aj jaroj, novaj kompanioj aperis (kiel Caspio, QuickBase kaj Mendi) kiuj komencis proponi tion, kio estas nomataj senkodaj aŭ malaltkodaj platformoj.

    Ĉi tiuj estas afablaj, interretaj paneloj, kiuj ebligas al ne-teknikaj profesiuloj krei specialadaptitajn programojn adaptitajn al la bezonoj de sia komerco per kunigado de vidaj kodblokoj (simboloj/grafikoj). Alivorte, anstataŭ dehaki arbon kaj formi ĝin en vestoŝrankon, vi konstruas ĝin uzante antaŭmodajn partojn de Ikea.

    Dum uzado de ĉi tiu servo ankoraŭ postulas certan nivelon de komputila scipovo, vi ne plu bezonas komputikan gradon, ja uzi ĝin. Kiel rezulto, ĉi tiu formo de abstraktado ebligas la pliiĝon de milionoj da novaj "programaraj programistoj" en la kompania mondo, kaj ĝi ebligas multajn infanojn lerni kiel kodigi en pli frua aĝo.

    Redifinante kion signifas esti programaro

    Estis tempo, kiam pejzaĝo aŭ vizaĝo de persono nur povis esti kaptitaj sur kanvaso. Farbisto devus studi kaj praktiki dum jaroj kiel metilernanto, lernante la metion de pentrado - kiel miksi kolorojn, kiuj iloj estas plej bonaj, la ĝustaj teknikoj por efektivigi specifan vidaĵon. La kosto de la komerco kaj la multjara sperto bezonata por plenumi ĝin bone ankaŭ signifis ke farbistoj estis malmultaj kaj malproksime.

    Tiam la fotilo estis inventita. Kaj per la klako de butono, pejzaĝoj kaj portretoj estis kaptitaj en sekundo, kiu alie bezonus tagojn ĝis semajnoj por pentri. Kaj ĉar fotiloj pliboniĝis, iĝis pli malmultekostaj kaj iĝis abundaj ĝis punkto kie ili nun estas inkluzivitaj en eĉ la plej baza inteligenta telefono, kapti la mondon ĉirkaŭ ni fariĝis ofta kaj hazarda agado, kiun ĉiuj nun partoprenas.

    Dum abstraktaĵoj progresas kaj novaj softvarlingvoj aŭtomatigas ĉiam pli rutinan programaran disvolvan laboron, kion signifos esti programaro post 10 ĝis 20 jaroj? Por respondi ĉi tiun demandon, ni trarigardu kiel estontaj programistoj verŝajne konstruos la morgaŭajn aplikojn:

    *Unue, ĉiuj normigitaj, ripetemaj kodaj laboroj malaperos. En ĝia loko estos vasta biblioteko de antaŭdifinitaj komponentkondutoj, UI-oj kaj datumfluaj manipuladoj (Ikea-partoj).

    *Kiel hodiaŭ, dungantoj aŭ entreprenistoj difinos specifajn celojn kaj liverojn por ke programistoj plenumu per specialigitaj programaroj aŭ platformoj.

    *Ĉi tiuj programistoj tiam mapos sian ekzekutstrategion kaj komencos prototipi fruajn skizojn de sia programaro alirante sian komponan bibliotekon kaj uzante vidajn interfacojn por interligi ilin - vidajn interfacojn alireblajn per pliigita realeco (AR) aŭ virtuala realeco (VR).

    *Specialigitaj sistemoj de artefarita inteligenteco (AI) dizajnitaj por kompreni la celojn kaj liverojn implicitajn de la komencaj skizoj de sia programisto, tiam rafinos la redaktitan programaron kaj aŭtomatigos ĉiujn provojn pri kvalito.

    * Surbaze de la rezultoj, la AI tiam demandos multajn demandojn al la programisto (verŝajne per parola, Alexa-simila komunikado), serĉante pli bone kompreni kaj difini la celojn kaj liverojn de la projekto kaj diskuti kiel la programaro devus agi en diversaj scenaroj. kaj medioj.

    * Surbaze de la sugestoj de la programisto, la AI iom post iom lernos sian intencon kaj generos la kodon por reflekti la projektcelojn.

    *Ĉi tiu tien kaj reen, homa-maŝina kunlaboro ripetos version post versio de la programaro ĝis finita kaj vendebla versio estas preta por interna efektivigo aŭ por vendo al publiko.

    *Fakte, ĉi tiu kunlaboro daŭros post kiam la programaro estas elmontrita al reala uzado. Ĉar simplaj cimoj estas raportitaj, la AI aŭtomate riparos ilin en maniero kiu reflektas la originalajn, deziratajn celojn skizitajn dum la programaro-procezo. Dume, pli gravaj cimoj postulos kunlaboron de homa-AI por solvi la problemon.

    Ĝenerale, estontaj programistoj fokusos malpli pri la 'kiel' kaj pli pri la 'kio' kaj 'kial'. Ili estos malpli metiistoj kaj pli arkitektoj. Programado estos intelekta ekzerco, kiu postulos homojn, kiuj povas metodike komuniki intencon kaj rezultojn tiel, ke AI povas kompreni kaj poste aŭtomate kodi finitan ciferecan aplikaĵon aŭ platformon.

    Disvolviĝo de programaro pelita de artefarita inteligenteco

    Konsiderante la supran sekcion, estas klare, ke ni sentas, ke AI ludos ĉiam pli centran rolon en la kampo de programaro, sed ĝia adopto ne estas nur por efikigi programistojn, ankaŭ estas komercaj fortoj malantaŭ ĉi tiu tendenco.

    Konkurado inter programaraj kompanioj pliiĝas kun ĉiu jaro. Iuj kompanioj konkuras aĉetante siajn konkurantojn. Aliaj konkuras pri programara diferencigo. La defio kun ĉi-lasta strategio estas ke ĝi ne estas facile defendebla. Ajna programara funkcio aŭ plibonigo kiun unu kompanio proponas al siaj klientoj, ĝiaj konkurantoj povas kopii kun relativa facileco.

    Tial, for estas la tagoj, kiam kompanioj publikigas novajn programojn ĉiujn unu ĝis tri jarojn. Nuntempe, kompanioj, kiuj fokusiĝas al diferencigo, havas financan instigon publikigi novajn programojn, programajn korektojn kaj programajn funkciojn ĉiam pli regula. Ju pli rapide firmaoj novigas, des pli ili kondukas klientlojalecon kaj pliigas la koston de ŝanĝado al konkurantoj. Ĉi tiu ŝanĝo al la regula livero de pliigaj programaj ĝisdatigoj estas tendenco nomata "kontinua livero".

    Bedaŭrinde, kontinua liverado ne estas facila. Apenaŭ kvarono de la hodiaŭaj programaraj kompanioj povas plenumi la eldonan horaron postulitan de ĉi tiu tendenco. Kaj jen kial estas tiom da intereso uzi AI por rapidigi aferojn.

    Kiel skizite antaŭe, AI poste ludos ĉiam pli kunlaboran rolon en programaro redaktado kaj disvolviĝo. Sed baldaŭ, kompanioj uzas ĝin por ĉiam pli aŭtomatigi kvalitajn (testajn) procezojn por programaro. Kaj aliaj kompanioj eksperimentas per uzado de AI por aŭtomatigi programaran dokumentadon - la procezon spuri la liberigon de novaj funkcioj kaj komponantoj kaj kiel ili estis produktitaj ĝis la kodnivelo.

    Ĝenerale, AI ĉiam pli ludos centran rolon en programaro. Tiuj softvarfirmaoj, kiuj regas ĝian uzon frue, finfine ĝuos eksponencan kreskon super siaj konkurantoj. Sed por realigi ĉi tiujn AI-gajnojn, la industrio ankaŭ devos vidi progresojn en la aparataro-flanko de aferoj - la sekva sekcio pliprofundigos ĉi tiun punkton.

    Programaro kiel servo

    Ĉiaj kreaj profesiuloj uzas Adobe-programaron dum kreado de cifereca arto aŭ desegna laboro. Dum preskaŭ tri jardekoj, vi aĉetis la programaron de Adobe kiel KD kaj posedis ĝian uzon por ĉiam, aĉetante estontajn ĝisdatigitajn versiojn laŭbezone. Sed meze de la 2010-aj jaroj, Adobe ŝanĝis sian strategion.

    Anstataŭ aĉeti programarajn KD kun ĝene ellaboritaj posedŝlosiloj, Adobe-klientoj nun devus pagi monatan abonon por la rajto elŝuti Adobe-programaron sur siaj komputikaj aparatoj, programaro kiu nur funkcius kune kun regula ĝis konstanta interreta konekto al Adobe-serviloj. .

    Kun ĉi tiu ŝanĝo, klientoj ne plu posedis Adobe-programaron; ili luis ĝin laŭbezone. Kontraŭe, klientoj ne plu devas konstante aĉeti ĝisdatigitajn versiojn de Adobe-programaro; kondiĉe ke ili abonus la Adobe-servon, ili ĉiam havus la plej novajn ĝisdatigojn alŝutitajn al sia aparato tuj post liberigo (ofte plurfoje jare).

    Ĉi tio estas nur unu ekzemplo de unu el la plej grandaj softvartendencoj, kiujn ni vidis en la lastaj jaroj: kiel programaro transiras al servo anstataŭ memstara produkto. Kaj ne nur pli malgranda, speciala programaro, sed tutaj operaciumoj, kiel ni vidis per la ĵeto de la ĝisdatigo de Microsoft Windows 10. Alivorte, programaro kiel servo (SaaS).

    Memlerna programaro (SLS)

    Bazante sur la industrioŝanĝo al SaaS, aperas nova tendenco en la programaro, kiu kombinas kaj SaaS kaj AI. Ĉefaj kompanioj de Amazon, Google, Microsoft kaj IBM komencis oferti sian AI-infrastrukturon kiel servon al siaj klientoj.

    Alivorte, AI kaj maŝinlernado ne plu estas alireblaj al nur por softvargigantoj, nun ajna firmao kaj programisto povas aliri interretajn AI-resursojn por konstrui memlernantan programaron (SLS).

    Ni diskutos la potencialon de AI detale en nia serio Estonteco de Artefarita Inteligenteco, sed por la kunteksto de ĉi tiu ĉapitro, ni diros, ke nunaj kaj estontaj programistoj kreos SLS por krei novajn sistemojn, kiuj antaŭvidas taskojn, kiuj bezonas fari kaj fari. simple aŭtomate kompletigu ilin por vi.

    Ĉi tio signifas, ke estonta AI-asistanto lernos vian laborstilon ĉe la oficejo kaj komencos plenumi bazajn taskojn por vi, kiel formati dokumentojn kiel vi ŝatas ilin, redakti viajn retpoŝtojn laŭ via voĉo, administri vian laborkalendaron kaj pli.

    Hejme, ĉi tio povus signifi havi SLS-sistemon administri vian estontan inteligentan hejmon, inkluzive de taskoj kiel antaŭvarmigi vian hejmon antaŭ ol vi alvenos aŭ konservi trakon de nutraĵoj, kiujn vi bezonas aĉeti.

    De la 2020-aj jaroj kaj en la 2030-aj jaroj, ĉi tiuj SLS-sistemoj ludos esencan rolon en la kompania, registara, militistaro kaj konsumantmerkatoj, iom post iom helpante ĉiun plibonigi sian produktivecon kaj redukti malŝparon de ĉiuj specoj. Ni kovros SLS-teknologion pli detale poste en ĉi tiu serio.

    Tamen, estas kaptilo al ĉio ĉi.

    La nura maniero kiel la SaaS kaj SLS-modeloj funkcias estas se la Interreto (aŭ la infrastrukturo malantaŭ ĝi) daŭre kreskas kaj pliboniĝas, kune kun la komputiko kaj stokado-aparataro, kiu prizorgas la "nubon" sur kiuj funkcias ĉi tiuj SaaS/SLS-sistemoj. Feliĉe, la tendencoj, kiujn ni sekvas, aspektas promesplenaj.

    Por lerni pri kiel interreto kreskos kaj evoluos, legu nian Estonteco de la Interreto serio. Por lerni pli pri kiel komputila aparataro antaŭeniĝos, tiam legu plu uzante la subajn ligilojn!

    Serio Future of Computers

    Emerĝantaj uzantinterfacoj por redifini la homaron: Estonteco de komputiloj P1

    La cifereca stokado-revolucio: Estonteco de Komputiloj P3

    Forvelkanta Leĝo de Moore por ekfunkciigi fundamentan repripenson de mikroĉipoj: Estonteco de Komputiloj P4

    Nuba komputado fariĝas malcentralizita: Estonteco de Komputiloj P5

    Kial landoj konkuras por konstrui la plej grandajn superkomputilojn? Estonteco de Komputiloj P6

    Kiel Kvantumaj komputiloj ŝanĝos la mondon: Estonteco de Komputiloj P7    

    Venonta planita ĝisdatigo por ĉi tiu prognozo

    2023-02-08

    Prognozaj referencoj

    La sekvaj popularaj kaj instituciaj ligiloj estis referenceitaj por ĉi tiu prognozo:

    ProPublica

    La sekvaj Quantumrun-ligiloj estis referencitaj por ĉi tiu prognozo: