A szoftverfejlesztés jövője: A számítógépek jövője P2

KÉP HITEL: Quantumrun

A szoftverfejlesztés jövője: A számítógépek jövője P2

    1969-ben Neil Armstrong és Buzz Aldrin nemzetközi hősökké váltak, miután első emberként léptek a Holdra. De míg ezek az űrhajósok voltak a kamera hősei, több ezer énekelt hős van, akiknek részvételük nélkül az első emberes Holdraszállás nem lett volna lehetetlen. E hősök közül néhányan a repülést kódoló szoftverfejlesztők voltak. Miért?

    Nos, az akkori számítógépek sokkal egyszerűbbek voltak, mint manapság. Valójában az átlagember elhasználódott okostelefonja több nagyságrenddel erősebb, mint bármi, ami az Apollo 11 űrszondán (és az 1960-as évek NASA-ján) található. Ráadásul a számítógépeket akkoriban speciális szoftverfejlesztők kódolták, akik a legalapvetőbb gépi nyelveken programoztak szoftvereket: AGC Assembly Code vagy egyszerűen csak 1-es és 0-s kóddal.

    A szövegkörnyezetben az egyik meg nem énekelt hős, az Apollo űrprogram szoftvermérnöki részlegének igazgatója, Margaret Hamilton, és csapatának egy hegynyi kódot kellett megírnia (az alábbi képen), amelyet a mai programozási nyelvek használatával az erőfeszítés töredékével meg lehetett volna írni.

    (A fenti képen Margaret Hamilton az Apollo 11 szoftvert tartalmazó papírköteg mellett áll.)

    És ellentétben manapság, ahol a szoftverfejlesztők a lehetséges forgatókönyvek mintegy 80-90 százalékát kódolják, az Apollo-küldetéseknél az ő kódjuknak kellett mindent figyelembe vennie. Hogy ezt perspektívába helyezze, maga Margaret mondta:

    "Az ellenőrzőlista kézikönyvének hibája miatt a találkozási radar kapcsolója rossz pozícióba került. Emiatt hibás jeleket küldött a számítógépnek. Ennek eredményeként a számítógépet arra kérték, hogy hajtsa végre az összes normál funkcióját a leszálláshoz. miközben több hamis adatot kapott, ami az idejének 15%-át használta fel. A számítógép (vagy inkább a benne lévő szoftver) elég okos volt ahhoz, hogy felismerje, hogy több feladat elvégzésére kérik, mint amennyit el kellett volna végeznie. riaszt, ami az űrhajósnak azt jelentette, hogy több feladattal vagyok túlterhelve, mint amennyit jelenleg kellene, és csak a fontosabb feladatokat fogom megtartani, azaz a leszálláshoz szükségeseket... , a számítógépet többre programozták, mint a hibaállapotok felismerését. A helyreállítási programok teljes készletét beépítették a szoftverbe. A szoftver tevékenysége ebben az esetben az alacsonyabb prioritású feladatok kiküszöbölése és a fontosabbak visszaállítása volt... Ha a számítógép nem tette volnafelismerte ezt a problémát, és helyreállítási lépéseket tett, kétlem, hogy az Apollo 11 lett volna a sikeres holdraszállás."

    – Margaret Hamilton, az Apollo Repülési Számítógép-programozási MIT Draper Laboratory igazgatója, Cambridge, Massachusetts, "Computer Got Loaded", levél Datamálás, Március 1, 1971

    Amint arra korábban utaltunk, a szoftverfejlesztés az Apollo korai napjai óta fejlődött. Az új, magas szintű programozási nyelvek az 1-esekkel és 0-sokkal való unalmas kódolási folyamatot felváltották a szavakkal és szimbólumokkal történő kódolásra. Az olyan funkciókat, mint például egy véletlen szám generálása, amely korábban több napos kódolást igényelt, most egyetlen parancssor írásával váltja fel.

    Más szavakkal, a szoftverek kódolása minden évtizeddel egyre automatizáltabbá, intuitívabbá és emberibbé vált. Ezek a tulajdonságok a jövőben is megmaradnak, és olyan módon irányítják a szoftverfejlesztés fejlődését, amely mélyreható hatással lesz mindennapi életünkre. Ez az, amit ez a fejezet a A számítógépek jövője sorozat fogja feltárni.

    Szoftverfejlesztés tömegek számára

    Az 1-esek és 0-k kódolásának szükségességét (gépi nyelv) szavakkal és szimbólumokkal helyettesítik (emberi nyelv) absztrakciós rétegek hozzáadásának folyamataként. Ezek az absztrakciók új programozási nyelvek formájában jelentek meg, amelyek automatizálják az összetett vagy közös funkciókat azon a területen, amelyre tervezték őket. A 2000-es évek elején azonban új cégek jelentek meg (például a Caspio, a QuickBase és a Mendi), amelyek elkezdték kínálni az úgynevezett kód nélküli vagy alacsony kódú platformokat.

    Ezek felhasználóbarát, online irányítópultok, amelyek lehetővé teszik a nem műszaki szakemberek számára, hogy egyedi alkalmazásokat hozzanak létre üzleti igényeikhez igazodva vizuális kódblokkok (szimbólumok/grafikák) összeillesztésével. Más szóval, ahelyett, hogy kivágnál egy fát, és öltözőszekrényré alakítanád, inkább az Ikeából származó előregyártott alkatrészekből építed meg.

    Bár ennek a szolgáltatásnak a használata továbbra is bizonyos szintű számítógépes hozzáértést igényel, már nincs szükség számítástechnikai végzettségre, használja azt. Ennek eredményeként az absztrakciónak ez a formája több millió új "szoftverfejlesztő" felemelkedését teszi lehetővé a vállalati világban, és sok gyermek számára lehetővé teszi, hogy már korábban megtanulják a kódolást.

    Újradefiniálni, hogy mit jelent szoftverfejlesztőnek lenni

    Volt idő, amikor egy tájat vagy egy ember arcát csak vászonra lehetett megörökíteni. A festőnek évekig tanulnia és gyakorolnia kellene a festészet mesterségét – hogyan keverje össze a színeket, milyen eszközök a legjobbak, milyen technikák alkalmasak egy adott látvány megvalósítására. A szakma költsége és a jó elvégzéséhez szükséges sokéves tapasztalat azt is jelentette, hogy kevés volt a festő.

    Aztán feltalálták a kamerát. Egy gombnyomással pedig pillanatok alatt készültek tájképek és portrék, amelyek megfestése egyébként napokig-hetekig tartana. És ahogy a kamerák javultak, olcsóbbak lettek és egyre bőségesebbek lettek olyan mértékben, hogy már a legalapvetőbb okostelefonokban is megtalálhatóak, a körülöttünk lévő világ megörökítése általános és hétköznapi tevékenységgé vált, amelyben ma már mindenki részt vesz.

    Ahogy az absztrakciók fejlődnek, és az új szoftvernyelvek egyre több rutin szoftverfejlesztési munkát automatizálnak, mit fog jelenteni szoftverfejlesztőnek lenni 10-20 év múlva? A kérdés megválaszolásához nézzük meg, hogyan fognak a jövőbeli szoftverfejlesztők valószínűleg a holnap alkalmazásait elkészíteni:

    *Először is, minden szabványosított, ismétlődő kódolási munka eltűnik. Helyette előre definiált összetevő-viselkedések, felhasználói felületek és adatfolyam-manipulációk (Ikea-alkatrészek) hatalmas könyvtára lesz.

    *A maihoz hasonlóan a munkaadók vagy a vállalkozók konkrét célokat és teljesítéseket határoznak meg a szoftverfejlesztők számára, amelyeket speciális szoftveralkalmazásokon vagy platformokon keresztül hajthatnak végre.

    *Ezek a fejlesztők ezután feltérképezik végrehajtási stratégiájukat, és megkezdik a szoftverük korai vázlatainak prototípusát úgy, hogy hozzáférnek a komponenskönyvtárukhoz, és vizuális interfészek segítségével kapcsolják össze őket – a kiterjesztett valóságon (AR) vagy a virtuális valóságon (VR) keresztül elérhető vizuális interfészek segítségével.

    * A speciális mesterséges intelligencia (AI) rendszerek, amelyeket úgy terveztek, hogy megértsék a fejlesztőjük kezdeti tervezetében megfogalmazott célokat és eredményeket, majd finomítják a tervezett szoftvertervet, és automatizálják az összes minőségbiztosítási tesztelést.

    *Az eredmények alapján a mesterséges intelligencia ezután számos kérdést tesz fel a fejlesztőnek (valószínűleg verbális, Alexa-szerű kommunikáció révén), hogy jobban megértse és meghatározza a projekt céljait és eredményeit, és megvitassa, hogyan kell a szoftvernek különböző forgatókönyvekben működnie. és környezetek.

    *A fejlesztő visszajelzései alapján a mesterséges intelligencia fokozatosan megismeri szándékát, és előállítja a kódot, hogy tükrözze a projekt céljait.

    *Ez az oda-vissza, ember-gép együttműködés a szoftver verziószámára ismétlődik, amíg a kész és piacképes verzió készen nem áll a belső megvalósításra vagy a nyilvános értékesítésre.

    * Valójában ez az együttműködés folytatódik, miután a szoftvert a valós használatba tették. Amint egyszerű hibákat jelentenek, az AI automatikusan kijavítja azokat oly módon, hogy az tükrözze a szoftverfejlesztési folyamat során felvázolt eredeti, kívánt célokat. Eközben a komolyabb hibák emberi és mesterséges intelligencia együttműködést tesznek szükségessé a probléma megoldása érdekében.

    Összességében a jövőbeli szoftverfejlesztők kevésbé a „hogyan”-ra, inkább a „mit” és a „miért”-re fognak összpontosítani. Kevésbé lesznek kézművesek és inkább építészek. A programozás olyan intellektuális gyakorlat lesz, amelyhez olyan emberekre lesz szükség, akik módszeresen képesek kommunikálni szándékaikat és eredményeit oly módon, hogy az MI megértse, majd automatikusan kódolja a kész digitális alkalmazást vagy platformot.

    Mesterséges intelligencia által vezérelt szoftverfejlesztés

    A fenti szakasz alapján egyértelmű, hogy úgy érezzük, az AI egyre központibb szerepet fog játszani a szoftverfejlesztés területén, de elfogadása nem pusztán a szoftverfejlesztők hatékonyabbá tétele, hanem üzleti erők is meghúzódnak e trend mögött.

    A szoftverfejlesztő cégek közötti verseny évről évre kiéleződik. Egyes vállalatok versenytársaik kivásárlásával versenyeznek. Mások a szoftverek megkülönböztetésén versenyeznek. Az utóbbi stratégia kihívása, hogy nem védhető könnyen. Bármely szoftver funkciót vagy fejlesztést, amelyet egy cég kínál ügyfeleinek, versenytársai viszonylag könnyen lemásolhatnak.

    Emiatt elmúltak azok az idők, amikor a vállalatok egy-három évente új szoftvert adnak ki. Napjainkban a megkülönböztetésre összpontosító vállalatok pénzügyi ösztönzést kapnak arra, hogy egyre rendszeresebben adjanak ki új szoftvereket, szoftverjavításokat és szoftverfunkciókat. Minél gyorsabban innoválnak a vállalatok, annál jobban növelik az ügyfelek lojalitását, és növelik a versenytársakhoz való váltás költségeit. Ez az elmozdulás a növekményes szoftverfrissítések rendszeres kézbesítése felé a „folyamatos kézbesítés” nevű trend.

    Sajnos a folyamatos szállítás nem egyszerű. A mai szoftvercégek alig egynegyede tudja végrehajtani az ettől a trendtől megkövetelt megjelenési ütemtervet. És ez az oka annak, hogy olyan nagy az érdeklődés az AI használata iránt, hogy felgyorsítsák az eseményeket.

    Amint azt korábban felvázoltuk, az AI idővel egyre inkább együttműködő szerepet fog játszani a szoftverek tervezésében és fejlesztésében. Rövid távon azonban a vállalatok egyre inkább automatizálják a szoftverek minőségbiztosítási (tesztelési) folyamatait. Más cégek pedig kísérleteznek azzal, hogy mesterséges intelligencia segítségével automatizálják a szoftverdokumentációt – az új funkciók és komponensek megjelenésének nyomon követésének folyamatát, valamint azok előállításának módját egészen a kódszintig.

    Összességében az AI egyre inkább központi szerepet fog játszani a szoftverfejlesztésben. Azok a szoftvercégek, amelyek korán elsajátítják a használatát, végül exponenciális növekedést fognak élvezni versenytársaikhoz képest. De ahhoz, hogy megvalósítsa ezeket az AI-nyereségeket, az iparágnak a dolgok hardveres oldaláról is előrelépéseket kell látnia – a következő rész ezt a pontot fogja kifejteni.

    Szoftver mint szolgáltatás

    Minden kreatív szakember Adobe szoftvert használ digitális művészeti vagy tervezési munkák készítésekor. Közel három évtizeden keresztül vásárolta meg az Adobe szoftverét CD-ként, és örökre birtokolta annak használatát, szükség szerint vásárolva a jövőbeni frissített verziókat. A 2010-es évek közepén azonban az Adobe megváltoztatta stratégiáját.

    Ahelyett, hogy bosszantóan kidolgozott tulajdonosi kulcsokkal rendelkező szoftver-CD-ket vásárolnának, az Adobe ügyfeleinek havi előfizetést kellene fizetniük azért, hogy letölthessenek Adobe szoftvert számítógépükre, olyan szoftvert, amely csak az Adobe szervereihez való rendszeres és állandó internetkapcsolat mellett működne. .

    Ezzel a változtatással az ügyfelek már nem rendelkeztek Adobe szoftverekkel; igény szerint bérelték. Cserébe az ügyfeleknek többé nem kell folyamatosan az Adobe szoftverek frissített verzióit vásárolniuk; mindaddig, amíg előfizettek az Adobe szolgáltatásra, mindig a kiadáskor (gyakran évente többször) azonnal feltöltik a készülékükre a legújabb frissítéseket.

    Ez csak egy példa az elmúlt évek egyik legnagyobb szoftvertrendjére: hogyan váltanak át a szoftverek szolgáltatásba az önálló termék helyett. És nem csak kisebb, speciális szoftverekre, hanem teljes operációs rendszerekre, ahogy azt a Microsoft Windows 10 frissítésének megjelenésekor is láthattuk. Más szóval, szoftver, mint szolgáltatás (SaaS).

    Öntanuló szoftver (SLS)

    Az iparág SaaS felé történő elmozdulására építve egy új trend van kialakulóban a szoftverterületen, amely a SaaS-t és az AI-t is egyesíti. Az Amazon, a Google, a Microsoft és az IBM vezető vállalatai szolgáltatásként kezdték kínálni AI infrastruktúrájukat ügyfeleiknek.

    Más szóval, a mesterséges intelligencia és a gépi tanulás már nem csak szoftveróriások számára érhető el, mostantól bármely vállalat és fejlesztő hozzáférhet az online mesterségesintelligencia-forrásokhoz öntanuló szoftver (SLS) létrehozásához.

    A mesterséges intelligencia jövője című sorozatunkban részletesen tárgyaljuk az AI-ban rejlő lehetőségeket, de e fejezet kontextusában elmondjuk, hogy a jelenlegi és a jövőbeli szoftverfejlesztők SLS-t fognak létrehozni, hogy új rendszereket hozzanak létre, amelyek előre látják a szükséges feladatokat és egyszerűen töltse ki őket automatikusan.

    Ez azt jelenti, hogy egy leendő AI-asszisztens megtanulja az Ön munkastílusát az irodában, és elkezdi elvégezni az Ön helyett az alapvető feladatokat, például a dokumentumok tetszőleges formázását, az e-mailek hangnemben való megírását, a munkanaptár kezelését és még sok mást.

    Otthon ez azt jelentheti, hogy egy SLS-rendszer kezeli leendő intelligens otthonát, beleértve az olyan feladatokat is, mint az otthona érkezés előtti előfűtése vagy a megvásárolni kívánt élelmiszerek számontartása.

    A 2020-as évekre és a 2030-as évekre ezek az SLS-rendszerek létfontosságú szerepet fognak játszani a vállalati, kormányzati, katonai és fogyasztói piacokon, fokozatosan segítve mindegyikük termelékenységének javítását és mindenféle pazarlás csökkentését. Az SLS technológiával a sorozat későbbi részében részletesebben foglalkozunk.

    Mindebben azonban van egy fogás.

    A SaaS- és SLS-modellek csak úgy működnek, ha az internet (vagy a mögötte lévő infrastruktúra) tovább növekszik és fejlődik, a „felhőt” futtató számítási és tárolási hardver mellett, amelyen ezek a SaaS/SLS-rendszerek működnek. Szerencsére az általunk követett trendek ígéretesnek tűnnek.

    Ha többet szeretne megtudni arról, hogyan fog növekedni és fejlődni az internet, olvassa el cikkünket Az internet jövője sorozat. Ha többet szeretne megtudni a számítógépes hardver fejlődéséről, olvassa el az alábbi hivatkozásokat!

    A számítógépek jövője sorozat

    Feltörekvő felhasználói felületek az emberiség újradefiniálására: A számítógépek jövője P1

    A digitális tárolás forradalma: A számítógépek jövője P3

    Egy halványuló Moore-törvény a mikrochipek alapvető újragondolására készteti: A számítógépek jövője P4

    A felhőalapú számítástechnika decentralizálttá válik: A számítógépek jövője P5

    Miért versengenek az országok a legnagyobb szuperszámítógépek megépítéséért? A számítógépek jövője P6

    Hogyan változtatják meg a világot a kvantumszámítógépek: A számítógépek jövője P7    

    Az előrejelzés következő ütemezett frissítése

    2023-02-08

    Előrejelzési hivatkozások

    A következő népszerű és intézményi hivatkozásokra hivatkoztunk ehhez az előrejelzéshez:

    A következő Quantumrun hivatkozásokra hivatkoztak ehhez az előrejelzéshez: