Soft

Línea de tiempo sobre la evolución histórica del desarrollo de software

  • Creación de la ENIAC

    Creación de la ENIAC
    Tipo: Tecnológico
    Conexión: Desarrollo del A-0 Compiler (1952)
    Completada en 1945, se convirtió en la primera computadora electrónica para uso general. Utilizó tubos de vacío y pudo realizar miles de operaciones cada segundo y comenzó la computadora. Su programación se realizó utilizando interruptores y cables que limitaron su versatilidad, pero la capacidad de calcular el desarrollo básico del software.
    Referencia: Ceruzzi, P. E. (2003). A History of Modern Computing.
  • Primer compilador (A-0 System)

    Primer compilador (A-0 System)
    Tipo: Tecnológico
    Conexión: Desarrollo de COBOL (1959)
    Grace Hopper creó el primer sistema operativo compilador A-0 para convertir las instrucciones simbólicas en el código de la máquina. Esta actualización redujo la necesidad de código binario y permitió un progreso significativo en la eficiencia del desarrollo de software. La base básica para los lenguajes de programación progresivos creados.
    Referencia:Beyer, K. (2009). Grace Hopper and the invention of the information age. MIT Press.
  • Creación de FORTRAN

    Creación de FORTRAN
    Tipo: Tecnológico
    Conexión: Crisis del Software (1968), COBOL
    Fortran (fórmula de traducción) desarrollada por IBM se convirtió en el primer lenguaje de programación de alto nivel con un alto nivel, centrándose en los cálculos científicos. Promoción de programación utilizando estructuras fáciles de entender y sentar las bases para futuros idiomas. Su triunfo demostró que podía abstraer sin poner en peligro su actuación.
    Referencia: Backus, J. (1978). History of FORTRAN I, II, and III.
  • COBOL y el lenguaje empresarial

    COBOL y el lenguaje empresarial
    Tipo: Tecnológico
    Conexión: A-0 Compiler, FORTRAN
    COBOL (un lenguaje normal orientado al negocio) se desarrolló con el objetivo de facilitar la automatización del negocio administrativo de negocios. Utilizando la estructura del idioma inglés, fue facilitado por el acceso al desarrollo que no sea usuarios expertos. Su influencia fue duradera con los sistemas financieros que todavía usa hoy.
    Referencia: Sammet, J. E. (1969). Programming languages: History and fundamentals. Prentice-Hall.
  • Crisis del Software

    Crisis del Software
    Tipo: Conceptual
    Conexión: Programación estructurada (1969), Modelo en cascada
    En la Conferencia de la OTAN de 1968, la industria del software identificó una creciente crisis: errores permanentes, gastos excesivos, entrega incorrecta y mantenimiento complejo. Esto motivó el estudio formal del desarrollo de software y el nacimiento de las metodologías.
    Referencia: Naur, P., Randell, B. (1969). Software engineering report. https://archive.org/details/softwareengineer0000unse/page/3/mode/1up
  • Programación estructurada

    Programación estructurada
    Tipo: Metodológico
    Conexión: Crisis del software, Modelo en cascada
    Edger Dijstra recomendó un programa organizado en respuesta a las discapacidades del desarrollo. Él nos permite usar "GOTO" en lugar de estructuras, como si, pero para optimizar el código para leer y preservar el código.
    Referencia: Dijkstra, E. W. (1968). Go To Statement Considered Harmful.https://www.dcs.gla.ac.uk/~pat/cpM/choco4/nqueens/Goto-Harmful-Dijkstra.pdf
  • Modelo en cascada

    Modelo en cascada
    Tipo: Metodológico
    Conexión: Programación estructurada, RUP
    El modelo Cascada, recomendado por Winston Royce, desarrollo de software organizado en etapas secuenciales: análisis, diseño, implementación, inspección, mantenimiento. A pesar de ser firme, fue ampliamente reconocido en la industria.
    Referencia: Royce, W. (1970). Managing the Development of Large Software Systems. https://www.praxisframework.org/files/royce1970.pdf
  • Lenguaje C

    Lenguaje C
    Tipo: Tecnológico
    Conexión: UNIX, C++, Java
    Dennis Ritchi fue el creador del sistema Unix. Su poder, adaptabilidad y proximidad al hardware lo convirtieron en uno de los idiomas más impactantes de la historia. Todavía se usa ampliamente y consiste en la Fundación C, Java y otros.
    Referencia: Ritchie, D. M. (1993). The Development of the C Language. https://www.nokia.com/bell-labs/about/dennis-m-ritchie/chist.pdf
  • C++ y la POO

    C++ y la POO
    Tipo: Tecnológico
    Conexión: Smalltalk, Java
    Bjarne Stourup amplió el lenguaje C, incluida la programación orientada a objetos (POO), por lo tanto. Esto permitió una mayor modularidad y procesamiento de códigos, lo cual es importante para grandes proyectos de complejidad.
    Referencia: Stroustrup, B. (1994). The Design and Evolution of C++.
  • Metodología RUP

    Metodología RUP
    Tipo: Metodológico
    Conexión: Metodología RUP
    Un solo proceso de evaluación (RUP) componentes iterativos combinados con documentación organizada. Popular en grandes proyectos, facilitó la adaptación de la capacidad de cambiar las etapas claramente definidas.
    Referencia: Kruchten, P. (1999). The Rational Unified Process: An Introduction. https://www.academia.edu/60725855/The_Rational_Unified_Process_an_introduction
  • Lanzamiento de Python

    Lanzamiento de Python
    Tipo: Tecnológico
    Conexión: IA, GitHub Copilot
    Guido Van Rossum desarrolló Python y enfatizó la lectura fácil y la simplicidad. Su adaptabilidad lo convirtió en una gran oportunidad para guiones, ciencia de datos, web y más. Es uno de los idiomas más comunes en la actualidad.
    Referencia: Python Tutorial by Guido Van Russem : Free Download, Borrow, and Streaming : Internet Archive. (2024, 29 junio). Internet Archive. https://archive.org/details/python-tutorial_202406/page/89/mode/1up
  • Java y la portabilidad

    Java y la portabilidad
    Tipo: Tecnológico
    Conexión: C++, Android
    Gracias a JVM, Java presentó el término "escritura una vez, ejecución en todas partes". Su enfoque en los objetos y la estabilidad se determina como un estándar para las aplicaciones comerciales y móviles.
    Referencia: The Java language specification. (s.f.). Google Books. https://books.google.com.ec/books?id=Ww1B9O_yVGsC&printsec=frontcover&hl=es&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false
  • Manifiesto Ágil

    Manifiesto Ágil
    Tipo: Metodológico
    Conexión: Scrum, XP, DevOps
    Los especialistas establecen los valores y conceptos básicos del desarrollo de destreza en respuesta a las limitaciones del modelo en cascada. Cooperación extranjera, software operativo y adaptabilidad continua.
    Referencia: Beck, K. et al. (2001). Manifesto for Agile Software Development.
  • Surgimiento de Scrum

    Surgimiento de Scrum
    Tipo: Metodológico
    Conexión: Manifiesto Ágil, XP
    Conocido por sus creadores Ken Schwaber y Jeff Sutherland, Scrum proporcionó una estructura práctica de destreza: sprint, roles y suministros avanzados. Esta es la técnica inteligente más utilizada hoy en día.
    Referencia:
  • Docker y la contenedorización

    Docker y la contenedorización
    Tipo: Tecnológico
    Conexión: DevOps, CI/CD
    Docker transformó el uso de software con contenedores de tamaño reducido, promoviendo ambientes reproducibles y escalables. Al colaborar con DevOps, promovió prácticas contemporáneas de automatización.
    Referencia: Merkel, D. (2014). Docker: Lightweight Linux Containers.
  • Kotlin y la evolución de Android

    Kotlin y la evolución de Android
    Tipo: Tecnológico
    Conexión: Android, Java
    JetBrains desarrolló Kotlin como una opción contemporánea frente a Java. Su sintaxis breve, cero tolerancia a errores y compatibilidad con Java lo han hecho un favorito en el ámbito del desarrollo móvil.
    Referencia: JetBrains Documentation.
  • Programación asistida por IA

    Programación asistida por IA
    Tipo: Tecnológico
    Conexión: Python, IA ética
    Con instrumentos como GPT-3, Codex y Copilot, los programadores empezaron a disponer de asistentes de Inteligencia Artificial que proponen código, reestructuran y registran automáticamente. Esto transforma la función del programador en el diseño lógico y la validación.
    Referencia: Chen, M. et al. (2021). Evaluating Large Language Models Trained on Code.
  • GitHub Copilot

    GitHub Copilot
    Tipo: Tecnológico
    Conexión: GPT-3, Tendencias futuras
    Copilot de GitHub, creado por OpenAI y GitHub, facilita la escritura de código asistido por inteligencia artificial directamente en editores como VS Code. Transforma el método laboral convencional y provoca discusiones sobre ética, derechos de autor y capacitación profesional.
    Referencia: GitHub Docs, OpenAI Codex.
  • Expansión del desarrollo no-code/low-code

    Expansión del desarrollo no-code/low-code
    Tipo: Tecnológico
    Conexión: DevOps, Agilidad
    Instrumentos como Bubble, OutSystems o PowerApps facilitan la creación de software sin necesidad de conocimientos de programación, lo cual promueve la democratización del desarrollo y agiliza los procesos de entrega, aunque con algunas restricciones en la personalización.
    Referencia: Gartner Research (2023).
  • IA generativa en desarrollo

    IA generativa en desarrollo
    Tipo: Tecnológico
    Conexión: Copilot, Automatización
    Con el progreso en modelos como GPT-4 y Gemini, la inteligencia artificial generativa participa activamente en aspectos como el diseño, la documentación, las pruebas e incluso el desarrollo de la interfaz. Interpreta las opciones necesarias y acelera el ciclo de vida del software drástico.
    Referencia: OpenAI Reports, Google Developers.