Futur del desenvolupament de programari: Futur dels ordinadors P2

CRÈDIT DE LA IMATGE: Quantumrun

Futur del desenvolupament de programari: Futur dels ordinadors P2

    El 1969, Neil Armstrong i Buzz Aldrin es van convertir en herois internacionals després de ser els primers humans a trepitjar la Lluna. Però mentre aquests astronautes eren els herois de la càmera, hi ha milers d'herois no coneguts que sense la seva implicació, aquell primer aterratge tripulat a la Lluna no hauria estat impossible. Alguns d'aquests herois van ser els desenvolupadors de programari que van codificar el vol. Per què?

    Bé, els ordinadors que existien en aquell moment eren molt més senzills que els actuals. De fet, el telèfon intel·ligent gastat de la persona mitjana és diversos ordres de magnitud més potent que qualsevol cosa a bord de la nau espacial Apollo 11 (i tota la NASA dels anys 1960). A més, els ordinadors d'aquella època eren codificats per desenvolupadors de programari especialitzats que programaven programari en el més bàsic dels llenguatges de màquina: codi d'assemblatge AGC o simplement, 1s i 0s.

    Per contextualitzar, un d'aquests herois no reconeguts, el director de la divisió d'enginyeria de programari del programa espacial Apol·lo, Margaret Hamilton, i el seu equip va haver d'escriure una muntanya de codi (a la foto a continuació) que utilitzant els llenguatges de programació actuals es podria haver escrit amb una fracció de l'esforç.

    (A la foto de dalt hi ha Margaret Hamilton al costat d'una pila de paper que conté el programari Apollo 11.)

    I a diferència d'avui en dia, on els desenvolupadors de programari codifiquen per al voltant del 80-90 per cent dels escenaris possibles, per a les missions Apollo, el seu codi havia de tenir en compte tot. Per posar-ho en perspectiva, la mateixa Margaret va dir:

    "A causa d'un error al manual de la llista de verificació, l'interruptor del radar de trobada es va col·locar en una posició incorrecta. Això va provocar que enviés senyals errònies a l'ordinador. El resultat va ser que se li demanava que realitzés totes les seves funcions normals per a l'aterratge. mentre rebia una càrrega addicional de dades falses que va gastar un 15% del seu temps. L'ordinador (o més aviat el programari que hi havia) era prou intel·ligent com per reconèixer que se li demanava que fes més tasques de les que hauria de fer. Després va enviar una alarma, que significava per a l'astronauta, estic sobrecarregat amb més tasques de les que hauria d'estar fent en aquest moment, i només em quedaré amb les tasques més importants, és a dir, les necessàries per aterrar... , l'ordinador estava programat per fer més que reconèixer les condicions d'error. Al programari es va incorporar un conjunt complet de programes de recuperació. L'acció del programari, en aquest cas, va ser eliminar les tasques de menor prioritat i restablir les més importants... Si l'ordinador no ho hagués fetva reconèixer aquest problema i va prendre mesures de recuperació, dubto que l'Apol·lo 11 hauria estat l'èxit de l'aterratge a la lluna que va ser".

    — Margaret Hamilton, directora de programació d'ordinadors de vol Apollo MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Carta a Datamació, March 1, 1971

    Com s'ha insinuat anteriorment, el desenvolupament de programari ha evolucionat des dels primers dies d'Apollo. Els nous llenguatges de programació d'alt nivell van substituir el tediós procés de codificació amb 1 i 0 per codificar amb paraules i símbols. Funcions com la generació d'un nombre aleatori que solia requerir dies de codificació ara es substitueixen per escriure una única línia d'ordres.

    En altres paraules, la codificació del programari s'ha tornat cada vegada més automatitzada, intuïtiva i humana amb cada dècada que passa. Aquestes qualitats només continuaran en el futur, guiant l'evolució del desenvolupament de programari de maneres que tindran un impacte profund en la nostra vida diària. Això és el que fa aquest capítol de la El futur de la informàtica la sèrie explorarà.

    Desenvolupament de programari per a masses

    El procés de substitució de la necessitat de codificar 1 i 0 (llenguatge màquina) per paraules i símbols (llenguatge humà) es coneix com el procés d'afegir capes d'abstraccions. Aquestes abstraccions s'han presentat en forma de nous llenguatges de programació que automatitzen funcions complexes o comunes per al camp per al qual van ser dissenyats. Però a principis dels anys 2000, van sorgir noves empreses (com Caspio, QuickBase i Mendi) que van començar a oferir el que s'anomenen plataformes sense codi o amb codi baix.

    Es tracta de taulers en línia fàcils d'utilitzar que permeten als professionals no tècnics crear aplicacions personalitzades adaptades a les necessitats del seu negoci mitjançant l'ajuntament de blocs visuals de codi (símbols/gràfics). En altres paraules, en comptes de talar un arbre i convertir-lo en un vestidor, el construïu amb peces prefabricades d'Ikea.

    Tot i que l'ús d'aquest servei encara requereix un cert nivell de coneixements d'informàtica, ja no necessiteu un títol d'informàtica per utilitzar-lo. Com a resultat, aquesta forma d'abstracció està permetent l'augment de milions de nous "desenvolupadors de programari" al món corporatiu, i està permetent que molts nens aprenguin a programar a una edat més primerenca.

    Redefinint què significa ser un desenvolupador de programari

    Hi va haver un temps en què un paisatge o la cara d'una persona només es podia capturar en un llenç. Un pintor hauria d'estudiar i practicar durant anys com a aprenent, aprenent l'ofici de la pintura: com barrejar colors, quines eines són les millors, les tècniques correctes per executar una imatge específica. El cost de l'ofici i els molts anys d'experiència necessaris per fer-lo bé també feien que els pintors fossin pocs i distants.

    Aleshores es va inventar la càmera. I amb el clic d'un botó, es van capturar paisatges i retrats en un segon que, d'altra manera, trigarien dies o setmanes a pintar-se. I a mesura que les càmeres milloraven, es van fer més barates i es van fer abundants fins al punt que ara s'inclouen fins i tot al telèfon intel·ligent més bàsic, capturar el món que ens envolta es va convertir en una activitat habitual i casual en la qual tothom participa.

    A mesura que les abstraccions progressen i els nous llenguatges de programari automatitzen el treball de desenvolupament de programari cada cop més rutinari, què significarà ser desenvolupador de programari d'aquí a 10 o 20 anys? Per respondre a aquesta pregunta, anem a veure com els futurs desenvolupadors de programari probablement faran per crear les aplicacions de demà:

    *Primer, tot el treball de codificació estandarditzat i repetitiu desapareixerà. Al seu lloc hi haurà una àmplia biblioteca de comportaments de components predefinits, interfícies d'usuari i manipulacions de flux de dades (parts d'Ikea).

    *Com avui, els empresaris o els empresaris definiran objectius i resultats específics perquè els desenvolupadors de programari els executin mitjançant aplicacions o plataformes de programari especialitzades.

    *A continuació, aquests desenvolupadors traçaran la seva estratègia d'execució i començaran a crear prototips dels primers esborranys del seu programari accedint a la seva biblioteca de components i utilitzant interfícies visuals per enllaçar-los: interfícies visuals a les quals s'accedeix mitjançant realitat augmentada (AR) o realitat virtual (VR).

    *Els sistemes d'intel·ligència artificial (IA) especialitzats dissenyats per entendre els objectius i els resultats que implica els esborranys inicials del seu desenvolupador, perfeccionaran el disseny del programari redactat i automatitzaran totes les proves de garantia de qualitat.

    *A partir dels resultats, l'IA farà una multitud de preguntes al desenvolupador (probablement mitjançant una comunicació verbal, semblant a Alexa), buscant entendre i definir millor els objectius i els resultats del projecte i discutir com hauria d'actuar el programari en diversos escenaris. i ambients.

    *En funció dels comentaris del desenvolupador, l'IA aprendrà gradualment la seva intenció i generarà el codi per reflectir els objectius del projecte.

    *Aquesta col·laboració home-màquina d'anada i tornada repetirà versió rere versió del programari fins que una versió acabada i comercialitzable estigui preparada per a la implementació interna o per a la venda al públic.

    *De fet, aquesta col·laboració continuarà després que el programari estigui exposat a l'ús del món real. A mesura que s'informen d'errors simples, l'IA els arreglarà automàticament de manera que reflecteixi els objectius originals desitjats descrits durant el procés de desenvolupament de programari. Mentrestant, errors més greus demanaran una col·laboració entre humans i IA per resoldre el problema.

    En general, els futurs desenvolupadors de programari es centraran menys en el "com" i més en el "què" i el "per què". Seran menys artesans i més arquitectes. La programació serà un exercici intel·lectual que requerirà persones que puguin comunicar metòdicament la intenció i els resultats d'una manera que una IA pugui entendre i després codificar automàticament una aplicació o plataforma digital acabada.

    Desenvolupament de programari impulsat per intel·ligència artificial

    Tenint en compte la secció anterior, és evident que creiem que la IA jugarà un paper cada cop més central en el camp del desenvolupament de programari, però la seva adopció no és només amb el propòsit de fer més efectius els desenvolupadors de programari, també hi ha forces empresarials darrere d'aquesta tendència.

    La competència entre les empreses de desenvolupament de programari és cada any més ferotge. Algunes empreses competeixen comprant els seus competidors. Altres competeixen en la diferenciació de programari. El repte d'aquesta darrera estratègia és que no és fàcil de defensar. Qualsevol funció de programari o millora que una empresa ofereix als seus clients, els seus competidors poden copiar amb relativa facilitat.

    Per aquest motiu, han passat els dies en què les empreses llançaven programari nou cada un o tres anys. En aquests dies, les empreses que se centren en la diferenciació tenen un incentiu financer per llançar programari nou, correccions de programari i funcions de programari cada cop més regularment. Com més ràpid innoven les empreses, més fidelitzen els clients i augmenten el cost de canviar a la competència. Aquest canvi cap al lliurament regular d'actualitzacions de programari incrementals és una tendència anomenada "entrega contínua".

    Malauradament, el lliurament continu no és fàcil. Amb prou feines una quarta part de les empreses de programari actuals poden executar el calendari de llançament exigit per aquesta tendència. I és per això que hi ha tant interès a utilitzar la IA per accelerar les coses.

    Com s'ha indicat anteriorment, la IA tindrà un paper cada cop més col·laboratiu en l'elaboració i desenvolupament de programari. Però a curt termini, les empreses l'utilitzen per automatitzar cada cop més els processos d'assegurament de la qualitat (prova) del programari. I altres empreses estan experimentant amb l'ús de la IA per automatitzar la documentació del programari: el procés de seguiment del llançament de noves funcions i components i com es van produir fins al nivell de codi.

    En general, la IA jugarà cada cop més un paper central en el desenvolupament de programari. Aquelles empreses de programari que dominen el seu ús d'hora, finalment gaudiran d'un creixement exponencial respecte als seus competidors. Però per adonar-se d'aquests guanys en IA, la indústria també haurà de veure avenços en l'aspecte del maquinari; la secció següent es detallarà sobre aquest punt.

    El programari com a servei

    Tota mena de professionals creatius utilitzen el programari d'Adobe quan creen art digital o treballs de disseny. Durant gairebé tres dècades, vau comprar el programari d'Adobe com a CD i vau ser propietari del seu ús a perpetuïtat, comprant futures versions actualitzades segons calgués. Però a mitjans de la dècada de 2010, Adobe va canviar la seva estratègia.

    En lloc de comprar CD de programari amb claus de propietat molestament elaborades, ara els clients d'Adobe haurien de pagar una subscripció mensual pel dret a descarregar programari d'Adobe als seus dispositius informàtics, programari que només funcionaria juntament amb una connexió d'Internet regular a constant als servidors d'Adobe. .

    Amb aquest canvi, els clients ja no posseïen programari d'Adobe; el van llogar segons calia. A canvi, els clients ja no han de comprar constantment versions actualitzades del programari d'Adobe; sempre que es subscriguessin al servei Adobe, sempre tindrien les últimes actualitzacions penjades al seu dispositiu immediatament després del llançament (sovint diverses vegades a l'any).

    Aquest és només un exemple d'una de les tendències de programari més importants que hem vist en els darrers anys: com el programari està passant al servei en lloc d'un producte autònom. I no només programari més petit i especialitzat, sinó sistemes operatius sencers, com hem vist amb el llançament de l'actualització de Windows 10 de Microsoft. En altres paraules, programari com a servei (SaaS).

    Programari d'autoaprenentatge (SLS)

    A partir del canvi de la indústria cap a SaaS, està sorgint una nova tendència en l'espai del programari que combina tant SaaS com AI. Les empreses líders d'Amazon, Google, Microsoft i IBM han començat a oferir la seva infraestructura d'IA com a servei als seus clients.

    En altres paraules, la IA i l'aprenentatge automàtic ja no són accessibles només per als gegants del programari, ara qualsevol empresa i desenvolupador pot accedir als recursos d'IA en línia per crear programari d'autoaprenentatge (SLS).

    Parlarem del potencial de la IA en detall a la nostra sèrie El futur de la intel·ligència artificial, però per al context d'aquest capítol, direm que els desenvolupadors de programari actuals i futurs crearan SLS per crear nous sistemes que anticipin les tasques que cal fer i simplement completeu-los automàticament.

    Això significa que un futur assistent d'IA aprendrà el vostre estil de treball a l'oficina i començarà a completar les tasques bàsiques per a vosaltres, com ara donar format a documents tal com us agraden, redactar els vostres correus electrònics amb el vostre to de veu, gestionar el vostre calendari laboral i molt més.

    A casa, això podria significar que un sistema SLS gestioni la vostra futura llar intel·ligent, incloses tasques com ara preescalfar la vostra llar abans d'arribar o fer un seguiment dels queviures que necessiteu comprar.

    A la dècada de 2020 i a la dècada de 2030, aquests sistemes SLS tindran un paper vital en els mercats corporatius, governamentals, militars i de consum, ajudant gradualment a cadascun a millorar la seva productivitat i reduir els residus de tot tipus. Cobrirem la tecnologia SLS amb més detall més endavant en aquesta sèrie.

    No obstant això, tot això té una trampa.

    L'única manera en què funcionen els models SaaS i SLS és si Internet (o la infraestructura que hi ha darrere) segueix creixent i millorant, juntament amb el maquinari informàtic i d'emmagatzematge que executa el "núvol" en què funcionen aquests sistemes SaaS/SLS. Afortunadament, les tendències que seguim semblen prometedores.

    Per conèixer com creixerà i evolucionarà Internet, llegiu el nostre El futur d'Internet sèrie. Per obtenir més informació sobre com avançarà el maquinari informàtic, segueix llegint utilitzant els enllaços següents!

    Sèrie Futur de la informàtica

    Interfícies d'usuari emergents per redefinir la humanitat: el futur dels ordinadors P1

    La revolució de l'emmagatzematge digital: el futur dels ordinadors P3

    Una llei de Moore que s'esvaeix per provocar un replantejament fonamental dels microxips: el futur dels ordinadors P4

    La computació en núvol es descentralitza: el futur dels ordinadors P5

    Per què els països competeixen per construir els superordinadors més grans? Futur de la informàtica P6

    Com els ordinadors quàntics canviaran el món: el futur dels ordinadors P7    

    Propera actualització programada per a aquesta previsió

    2023-02-08

    Referències de previsió

    Es van fer referència als següents enllaços populars i institucionals per a aquesta previsió:

    Es van fer referència als següents enllaços Quantumrun per a aquesta previsió: