Takomst fan softwareûntwikkeling: takomst fan kompjûters P2

Ofbyldingskredyt: Quantumrun

Takomst fan softwareûntwikkeling: takomst fan kompjûters P2

    Yn 1969 waarden Neil Armstrong en Buzz Aldrin ynternasjonale helden nei't se de earste minsken wiene dy't op 'e Moanne stapten. Mar wylst dizze astronauten de helden op 'e kamera wiene, binne d'r tûzenen ûnbesjoene helden dy't sûnder har belutsenens de earste bemande moannelanding net ûnmooglik wêze soe. In pear fan dizze helden wiene de software-ûntwikkelders dy't de flecht kodearren. Wêrom?

    No, de kompjûters dy't yn dy tiid bestien wiene folle ienfâldiger as hjoed. Yn feite is de fersliten smartphone fan 'e gemiddelde persoan ferskate oarders fan grutte machtiger dan alles oan board fan' e Apollo 11 romtesonde (en de hiele 1960 NASA foar dy saak). Boppedat, kompjûters yn dy tiid waarden kodearre troch spesjalisearre software-ûntwikkelders dy't programmearre software yn de meast basale fan masine talen: AGC Assembly Code of gewoan, 1s en 0s.

    Foar kontekst, ien fan dizze ûnbekinde helden, de direkteur fan it Apollo romteprogramma fan 'e Software Engineering Division, Margaret Hamilton, en har team moast in berch koade skriuwe (foto hjirûnder) dat it brûken fan hjoeddeiske programmeartalen koe wurde skreaun mei in fraksje fan 'e ynspanning.

    (Ofbylding hjirboppe is Margaret Hamilton dy't njonken in stapel papier stiet mei de Apollo 11-software.)

    En oars as tsjintwurdich wêr't software-ûntwikkelders koade foar sawat 80-90 prosint fan mooglike senario's, foar de Apollo-missys, moasten har koade alles ferantwurdzje. Om dit yn perspektyf te setten, sei Margaret sels:

    "Troch in flater yn it hantlieding fan 'e checklist waard de rendezvous-radar-skeakel yn' e ferkearde posysje pleatst. Dit soarge foar it stjoeren fan ferkearde sinjalen nei de kompjûter. It resultaat wie dat de kompjûter frege waard om al syn normale funksjes út te fieren foar de lâning. wylst er in ekstra lading fan falske gegevens ûntfong dy't 15% fan syn tiid brûkte. De kompjûter (of leaver de software dêryn) wie tûk genôch om te erkennen dat er frege waard om mear taken út te fieren dan it soe moatte útfiere. It stjoerde doe in alarm út, wat betsjutte foar de astronaut, ik bin oerladen mei mear taken dan ik op dit stuit dwaan moat, en ik sil allinich de wichtigere taken hâlde; dws dejingen dy't nedich binne foar de lâning ... Eigentlik , de kompjûter waard programmearre om mear te dwaan dan flaterbetingsten te erkennen. In folsleine set herstelprogramma's waard yn 'e software opnommen. De aksje fan' e software, yn dit gefal, wie om taken mei legere prioriteit te eliminearjen en de wichtichsten opnij te fêstigjen ... As de kompjûter net hieerkende dit probleem en naam herstelaksje, ik betwifelje oft Apollo 11 de suksesfolle moannelâning soe west hawwe.

    - Margaret Hamilton, direkteur fan Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Brief oan Dataation, Maart 1, 1971

    Lykas earder oanjûn, is softwareûntwikkeling evoluearre sûnt dy iere Apollo-dagen. Nije programmeartalen op heech nivo ferfongen it saai proses fan kodearring mei 1's en 0's foar kodearring mei wurden en symboalen. Funksjes lykas it generearjen fan in willekeurich getal dat eartiids dagen fan kodearring easke, wurde no ferfongen troch it skriuwen fan ien kommandorigel.

    Mei oare wurden, softwarekodearjen is mei elk desennia hieltyd mear automatisearre, yntuïtyf en minsklik wurden. Dizze kwaliteiten sille allinich trochgean yn 'e takomst, en liede de evolúsje fan softwareûntwikkeling op manieren dy't in djippe ynfloed hawwe op ús deistich libben. Dit is wat dit haadstik fan 'e De takomst fan kompjûters rige sil ferkenne.

    Softwareûntwikkeling foar de massa

    It proses fan it ferfangen fan de needsaak om 1s en 0s (masinetaal) te koade troch wurden en symboalen (minsklike taal) wurdt oantsjut as it proses fan it tafoegjen fan lagen fan abstraksjes. Dizze abstraksjes binne kommen yn 'e foarm fan nije programmeartalen dy't komplekse of mienskiplike funksjes automatisearje foar it fjild wêrfoar se binne ûntworpen. Mar yn 'e iere 2000's ûntstiene nije bedriuwen (lykas Caspio, QuickBase, en Mendi) dy't begon te bieden wat platfoarms sûnder koade of leechkoade neamd wurde.

    Dit binne brûkerfreonlike, online dashboards dy't net-technyske professionals ynskeakelje om oanpaste apps te meitsjen dy't oanpast binne oan 'e behoeften fan har bedriuw troch fisuele blokken koade (symboalen / grafiken) byinoar te snapjen. Mei oare wurden, yn stee fan in beam om te kapjen en it yn in klaaikast te meitsjen, bouwe jo it mei foarmakke dielen fan Ikea.

    Wylst it brûken fan dizze tsjinst noch in bepaald nivo fan komputerfeardigens fereasket, hawwe jo gjin kompjûterwittenskip mear nedich, brûk it. As resultaat makket dizze foarm fan abstraksje de opkomst fan miljoenen nije "software-ûntwikkelders" yn 'e bedriuwswrâld mooglik, en it stelt in protte bern yn steat om te learen hoe't se op in earder leeftyd koade kinne.

    Op 'e nij definiearje wat it betsjut om in softwareûntwikkelder te wêzen

    Der wie in tiid dat in lânskip of in gesicht fan in persoan allinnich op in doek fêstlein wurde koe. In skilder soe jierrenlang as learling studearje en oefenje moatte, it ambacht fan skilderjen leare - hoe kleuren te mingjen, hokker ark it bêste binne, de juste techniken om in spesifike fisuele út te fieren. De kosten fan 'e hannel en de jierrenlange ûnderfining dy't nedich wie om it goed út te fieren, makken ek dat skilders net folle wiene.

    Doe waard de kamera útfûn. En mei de klik op in knop waarden lânskippen en portretten fêstlein yn in sekonde dy't oars dagen oant wiken duorje soe om te skilderjen. En doe't kamera's ferbettere, goedkeaper waarden en oerfloedich waarden oant in punt wêr't se no binne opnommen yn sels de meast basale smartphone, waard it fêstlizzen fan 'e wrâld om ús hinne in gewoane en casual aktiviteit wêr't elkenien no oan meidocht.

    As abstraksjes foarútgong en nije softwaretalen hieltyd mear routine softwareûntwikkelingswurk automatisearje, wat sil it betsjutte om in softwareûntwikkelder te wêzen oer 10 oant 20 jier tiid? Om dizze fraach te beantwurdzjen, litte wy trochrinne hoe't takomstige software-ûntwikkelders wierskynlik de applikaasjes fan moarn sille bouwe:

    * As earste sil alle standerdisearre, repetitive kodearringswurk ferdwine. Op it plak sil in grutte bibleteek wêze fan foarôf definieare komponintgedrach, UI's en gegevensstreammanipulaasjes (Ikea-dielen).

    * Lykas hjoed sille wurkjouwers as ûndernimmers spesifike doelen en leveringen definiearje foar software-ûntwikkelders om út te fieren fia spesjale softwareapplikaasjes of platfoarms.

    *Dizze ûntwikkelders sille dan har útfieringsstrategy yn kaart bringe en begjinne prototypjen fan iere konsepten fan har software troch tagong te krijen ta har komponintbibleteek en fisuele ynterfaces te brûken om se mei-inoar te keppeljen - fisuele ynterfaces tagonklik fia augmented reality (AR) of firtuele werklikheid (VR).

    * Spesjalisearre systemen foar keunstmjittige yntelliginsje (AI) ûntworpen om de doelen en leveringen te begripen dy't ymplisearre wurde troch de earste ûntwerpen fan har ûntwikkelders, sille dan it opstelde softwareûntwerp ferfine en alle testen foar kwaliteitsfersekering automatisearje.

    *Op grûn fan 'e resultaten sil de AI dan in mannichte fragen stelle oan' e ûntwikkelder (wierskynlik fia mûnlinge, Alexa-like kommunikaasje), op syk nei de doelen en resultaten fan it projekt better te begripen en te definiearjen en te besprekken hoe't de software moat hannelje yn ferskate senario's en omjouwings.

    *Op grûn fan de feedback fan 'e ûntwikkelders sil de AI stadichoan syn of har yntinsje leare en de koade generearje om de projektdoelen te reflektearjen.

    *Dizze hinne en wer, minske-masine-gearwurking sil ferzje nei ferzje fan 'e software iterearje oant in klear en merkbere ferzje klear is foar ynterne ymplemintaasje of te keap oan it publyk.

    * Yn feite sil dizze gearwurking trochgean nei't de software is bleatsteld oan gebrûk yn 'e echte wrâld. As ienfâldige bugs wurde rapporteare, sil de AI se automatysk reparearje op in manier dy't de orizjinele, winske doelen reflekteart dy't skreaun binne tidens it softwareûntwikkelingsproses. Underwilens sille mear serieuze bugs in minske-AI-gearwurking roppe om it probleem op te lossen.

    Oer it algemien sille takomstige software-ûntwikkelders minder rjochtsje op 'hoe' en mear op 'wat' en 'wêrom'. Se wurde minder ambachtsman en mear arsjitekt. Programmearring sil in yntellektuele oefening wêze dy't minsken fereaskje dy't yntinsje en resultaten metodysk kinne kommunisearje op in manier dy't in AI kin begripe en dan in ôfmakke digitale applikaasje of platfoarm automatysk koade.

    Keunstmjittige yntelliginsje oandreaune softwareûntwikkeling

    Sjoen de boppesteande seksje, is it dúdlik dat wy fiele dat AI in hieltyd mear sintrale rol sil spylje op it mêd fan softwareûntwikkeling, mar de oanname is net allinich foar it doel om software-ûntwikkelders effektiver te meitsjen, d'r binne ek saaklike krêften efter dizze trend.

    Konkurrinsje tusken bedriuwen foar softwareûntwikkeling wurdt mei elk jier hurder. Guon bedriuwen konkurrearje troch har konkurrinten út te keapjen. Oaren konkurrearje op softwaredifferinsjaasje. De útdaging mei de lêste strategy is dat it net maklik te ferdigenjen is. Elke softwarefunksje of ferbettering dy't ien bedriuw oan har kliïnten biedt, kinne har konkurrinten mei relatyf maklik kopiearje.

    Om dizze reden binne de dagen foarby dat bedriuwen elke ien oant trije jier nije software frijlitte. Dizze dagen hawwe bedriuwen dy't har rjochtsje op differinsjaasje in finansjele stimulâns om nije software, softwarefixes en softwarefunksjes op in hieltyd reguliere basis frij te litten. Hoe rapper bedriuwen ynnovearje, hoe mear se klantloyaliteit driuwe en de kosten ferheegje fan oerstap nei konkurrinten. Dizze ferskowing nei de reguliere levering fan ynkrementele software-updates is in trend neamd "trochgeande levering."

    Spitigernôch is trochgeande levering net maklik. Amper in kwart fan 'e hjoeddeiske softwarebedriuwen kin it releaseskema útfiere dat easke is fan dizze trend. En dit is wêrom d'r safolle belangstelling is foar it brûken fan AI om dingen te fersnellen.

    Lykas earder sketst, sil AI úteinlik in hieltyd mear gearwurkjende rol spylje yn it opstellen en ûntwikkeljen fan software. Mar op koarte termyn brûke bedriuwen it om kwaliteitsfersekering (testen) prosessen foar software hieltyd mear te automatisearjen. En oare bedriuwen eksperimintearje mei it brûken fan AI om softwaredokumintaasje te automatisearjen - it proses fan it folgjen fan de frijlitting fan nije funksjes en komponinten en hoe't se waarden produsearre oant it koadenivo.

    Oer it algemien sil AI hieltyd mear in sintrale rol spylje yn softwareûntwikkeling. Dy softwarebedriuwen dy't it gebrûk betiid behearskje, sille úteinlik genietsje fan eksponinsjele groei oer har konkurrinten. Mar om dizze AI-winsten te realisearjen, sil de yndustry ek foarútgong moatte sjen yn 'e hardwarekant fan' e dingen - de folgjende seksje sil op dit punt útwurkje.

    Software as tsjinst

    Allerlei kreative professionals brûke Adobe-software by it meitsjen fan digitale keunst of ûntwerpwurk. Foar hast trije desennia hawwe jo de software fan Adobe kocht as in cd en hawwe it gebrûk foar ivich eigendom, en kocht takomstige opwurdearre ferzjes as nedich. Mar yn 'e midden fan' e 2010's feroare Adobe har strategy.

    Ynstee fan software-cd's te keapjen mei ferfelend útwurke eigendomskaaien, soene Adobe-klanten no in moanliks abonnemint moatte betelje foar it rjocht om Adobe-software op har kompjûterapparaten te downloaden, software dy't allinich soe wurkje neist in reguliere oant konstante ynternetferbining mei Adobe-servers .

    Mei dizze feroaring, klanten net mear eigendom Adobe software; se hierden it as nedich. Yn ruil hoege klanten net langer hieltyd opwurdearre ferzjes fan Adobe-software te keapjen; salang't se har abonnearre hawwe op 'e Adobe-tsjinst, soene se altyd de lêste updates hawwe opladen nei har apparaat direkt by frijlitting (faak ferskate kearen yn't jier).

    Dit is mar ien foarbyld fan ien fan 'e grutste softwaretrends dy't wy yn' e ôfrûne jierren hawwe sjoen: hoe't software oergiet yn tsjinst ynstee fan in standalone produkt. En net allinich lytsere, spesjalisearre software, mar hiele bestjoeringssystemen, lykas wy hawwe sjoen mei de frijlitting fan Microsoft's Windows 10 update. Mei oare wurden, software as in tsjinst (SaaS).

    Self-Learning Software (SLS)

    Troch te bouwen op 'e sektorferskowing nei SaaS, ûntstiet in nije trend yn' e softwareromte dy't sawol SaaS as AI kombineart. Leadende bedriuwen fan Amazon, Google, Microsoft en IBM binne begon mei it oanbieden fan har AI-ynfrastruktuer as in tsjinst oan har kliïnten.

    Mei oare wurden, AI en masine learen is net langer tagonklik foar allinich foar softwaregiganten, no kin elk bedriuw en ûntwikkelder tagong krije ta online AI-boarnen om selslearende software (SLS) te bouwen.

    Wy sille it potensjeel fan AI yn detail besprekke yn ús Future of Artificial Intelligence-searje, mar foar de kontekst fan dit haadstik sille wy sizze dat hjoeddeistige en takomstige software-ûntwikkelders SLS sille oanmeitsje om nije systemen te meitsjen dy't antisipearje op taken dy't moatte dwaan en folje se gewoan automatysk foar jo yn.

    Dit betsjut dat in takomstige AI-assistint jo wurkstyl sil leare op it kantoar en begjinne mei it foltôgjen fan basistaken foar jo, lykas opmaak fan dokuminten krekt sa't jo se wolle, jo e-mails opstelle yn jo stimming, jo wurkkalinder beheare en mear.

    Thús kin dit betsjutte dat in SLS-systeem jo takomstige tûke hûs beheart, ynklusyf taken lykas jo hûs foarferwaarmje foardat jo oankomme of byhâlde fan boadskippen dy't jo moatte keapje.

    Tsjin 'e 2020's en yn 'e 2030's sille dizze SLS-systemen in fitale rol spylje yn 'e bedriuws-, regearings-, militêre- en konsumintemerken, en sille elk stadichoan helpe om har produktiviteit te ferbetterjen en ôffal fan alle soarten te ferminderjen. Wy sille letter yn dizze searje SLS-tech yn mear detail dekke.

    D'r is lykwols in fangen oan dit alles.

    De ienige manier wêrop de SaaS- en SLS-modellen wurkje is as it ynternet (of de ynfrastruktuer der efter) trochgiet te groeien en te ferbetterjen, neist de kompjûter- en opslachhardware dy't de 'wolk' rint dy't dizze SaaS/SLS-systemen operearje. Gelokkich lykje de trends dy't wy folgje, kânsryk.

    Om te learen oer hoe't it ynternet sil groeie en evoluearje, lês ús Takomst fan it ynternet searje. Om mear te learen oer hoe't kompjûterhardware sil foarútgean, lês dan troch mei de ûndersteande keppelings!

    Future of Computers rige

    Opkommende brûkersynterfaces om it minskdom op 'e nij te definiearjen: takomst fan kompjûters P1

    De digitale opslachrevolúsje: Future of Computers P3

    In fading Moore's Law om fûnemintele opnij te tinken oer mikrochips: Future of Computers P4

    Cloud Computing wurdt desintralisearre: Future of Computers P5

    Wêrom konkurrearje lannen om de grutste supercomputers te bouwen? Future of Computers P6

    Hoe Quantum-kompjûters de wrâld sille feroarje: Future of Computers P7    

    Folgjende plande update foar dizze prognose

    2023-02-08

    Forecast referinsjes

    De folgjende populêre en ynstitúsjonele keppelings waarden ferwiisd foar dizze prognose:

    ProPublica

    De folgjende Quantumrun-keppelings waarden ferwiisd foar dizze prognose: