Historia: Los lenguajes de programación son una herramienta esencial en la creación del software, aplicaciones y sistemas informáticos. Permiten a los programadores expresar sus ideas y soluciones de manera estructurada y comprensible para el ordenador, que luego lo ejecuta, es decir, permiten a los programadores desarrollar los algoritmos. Los algoritmos son conjuntos de reglas que indican al ordenador cómo ejecutar una tarea. En realidad, un programa informático es un algoritmo que indica al ordenador qué pasos debe realizar y en qué orden para llevar a cabo una tarea específica.
El primer lenguaje de programación es el Lenguaje ensamblador (o Assembly), creado a finales de la década de 1940 e inicios de 1950. Este lenguaje es un conjunto de abreviaturas para las instrucciones en lenguaje binario (0 y 1), que luego se convierten a lenguaje máquina con un programa llamado Ensamblador.
Los lenguajes de programación se dividen en dos categorías principales:
- Propósito General: Estos lenguajes son flexibles y pueden utilizarse para crear una amplia variedad de aplicaciones, desde sitios web hasta sistemas operativos. Ejemplos incluyen los lenguajes Python, Java, C++ y JavaScript.
- Propósito Específico: Estos lenguajes están diseñados para tareas particulares, como desarrollar videojuegos, crear interfaces gráficas o programar robots. Ejemplos son C#, Swift, R, Lua y Python. Cada uno se especializa en un área específica de aplicación.
De igual manera, se pueden clasificar a los lenguajes según su estructura y reglas de programación, y cómo se ejecutan las instrucciones. Un ejemplo de los más comunes son los siguientes:
- La programación imperativa: Consiste en dar órdenes al ordenador para que realice una tarea paso a paso.
- La programación declarativa: Consiste en describir el resultado que queremos obtener, sin especificar cómo hacerlo.
- La programación funcional: Consiste en usar funciones como bloques de construcción para crear programas.
- La programación orientada a objetos: Consiste en agrupar los datos y las operaciones que los manipulan en objetos que se comunican entre sí.
- La programación orientada a eventos: Consiste en reaccionar a los estímulos externos, como la interacción del usuario o el cambio de estado de un sistema, muy enfocados al Internet de las Cosas (IoT), a herramientas como: Códigos QR, GPS, RFID, Biometría, entre otras.
El primer lenguaje de programación nació en 1801, Joseph Marie Jacquard fue el inventor del telar programable.
Este inventor francés es el responsable de la programación. No es el inventor de la misma, ya que las cosas han cambiado mucho desde entonces, pero está claro que creó el primer sistema de instrucciones para un «computador». Sus tarjetas programables se introducían en un telar que leía el código, las instrucciones, de dichas tarjetas y automatizaba procesos.
Evidentemente, se trataba de crear diferentes diseños en tejidos, pero esto permitió que cualquiera con el telar y las tarjetas perforadas crearan estos diseños sin ser expertos en la materia.
Se estima que este fue el primer lenguaje de programación, ya que estas tarjetas perforadas se utilizaron en las primeras máquinas computacionales creadas por Charles Babbage, y posteriormente por los primeros ordenadores.
El primer lenguaje de programación, el de Ada Lovelace, ella se propuso traducir las memorias del matemático italiano Luigi Menabrea y, mientras lo hacía, creó un lenguaje de programación a mano para calcular la serie de números de Bernoulli con la máquina de Babbage, esto fue en 1833.
Ada Lovelace se convirtió en pionera histórica de la computación, tanto es así que en los años 80s el Departamento de Defensa de los Estados Unidos creó un lenguaje de programación llamado Ada en su nombre.
En 1957, John W. Backus inventa el primer lenguaje de programación de alto nivel, el primero que utilizaron los programadores reales, Fortran. Fue un lenguaje que surgió como vía de escape de Backus para «trabajar menos» en su tarea de calcular trayectorias de misiles, ya que el lenguaje, y el compilador, eran capaces de hacer el trabajo mucho más rápido.
Tras Fortran como primer compilador, llegó COBOL como la culminación de varios otros sistemas de programación, en 1959. El objetivo era crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, muy orientado a los negocios.
Beginner’s All-purpose Symbolic Instruction Code, o BASIC en 1964, es una familia de lenguajes de programación de alto nivel que se desarrolló como una herramienta de enseñanza, pero gracias a su popularidad, se comenzó a adoptar en otros sistemas hasta el punto de que, a día de hoy, sigue siendo muy importante, con programas como Gambas o Visual Basic que se siguen utilizando.
Niklaus Wirth fue un profesor que creó Pascal en 1970, igual que BASIC, es una herramienta de enseñanza de programación, pero pronto trascendió como lenguaje de programación para crear todo tipo de aplicaciones.
El lenguaje C se usó como intermediario entre lenguajes, ya que era un lenguaje de bajo nivel, pero con el tiempo, este lenguaje de programadores para programadores se ha utilizado en todo tipo de software, y ha sido la base de otros lenguajes de programación que se utilizan muchísimo en la actualidad. C++, en 1979, es uno de los lenguajes de programación más utilizados, casi para cualquier tipo de aplicación.
La intención de Bjarne Stroustrup fue la de extender al lenguaje de programación C mecanismos para manipular objetos.
En 1995 nacieron Java, JavaScript y PHP, otros tres de los lenguajes que han definido la manera en la que entendemos el mundo debido a que, básicamente, están presentes en el 50% de las páginas web y en muchísimas aplicaciones.
Aunque se ha intentado dejar de lado a favor de nuevos lenguajes, tanto Java como JavaScript siguen siendo importantísimos y uno de los lenguajes muy demandados, lo que sigue haciendo que muchos nuevos programadores quieran aprender Java.
Con la llegada de la década de los 2000, llegaron nuevos lenguajes de programación, como ActionScript. Sin embargo, fue en 2001 cuando llegaron C# y Visual Basic .NET. Junto a los años anteriores con Java y HTML, C# culmina el mejor momento de la historia de los lenguajes de programación.
El primero se ha consolidado como uno de los lenguajes de programación más importantes para crear todo tipo de programas. El segundo es un lenguaje orientado a objetos que se asocia a Visual Basic, pero que es totalmente distinto y está implementado sobre el framework .NET de Microsoft.
Scratch es un lenguaje de programación visual desarrollado por el MIT que consiste en un lenguaje desarrollado para que niños, adolescentes y adultos puedan aprender a programar de manera visual sin tener demasiada idea de código, creado en 2006.
Go, también conocido como Goland, fue diseñado por Google en 2009. Está inspirado en C, pero es un lenguaje bastante más complicado.
En estos últimos años, no ha habido una evolución de los lenguajes de programación, pero sí se han creado diferentes lenguajes específicos para agilizar la programación. Kotlin es uno de ellos y Swift, creado en 2013, es otro. Creado por Apple, es un lenguaje de programación clave para programar en iOS.
HTML5 es un lenguaje de marcado que se usa para crear sitios web. Tiene nuevas funcionalidades y mejoras que lo hacen más poderoso y flexible que las versiones anteriores de HTML. Por ejemplo, tiene nuevos elementos multimedia, como video y audio, que permiten a los creadores web hacer contenido multimedia sin usar plugins.
Los plugins son complementos que añaden funcionalidades extra o mejoras a los programas. Es decir, son miniprogramas que suman alguna característica que no venía por defecto en el programa original. Funcionan como añadidos, pero no por sí mismos.
Por norma general, modifican el software añadiendo un nuevo fragmento de código adicional. Este código puede estar desarrollado por el equipo del programa en cuestión o ser un desarrollo independiente.
También tiene una nueva funcionalidad de almacenamiento local que permite guardar datos en el navegador del usuario, incluso cuando no se tiene conexión. Otra nueva funcionalidad es la geolocalización, que permite obtener la ubicación del usuario, si se autoriza.
El lenguaje de programación es un conjunto de reglas sintácticas y semánticas que se utilizan para escribir programas.
En otras palabras, es un lenguaje que permite a los programadores comunicarse con las computadoras para decirles qué hacer.
Un programa es el resultado de la programación que se hace utilizando un lenguaje de programación para crear una aplicación basada en múltiples algoritmos, que realizan una tarea o una serie de tareas en una computadora. Es decir, el programa es el resultado final de la escritura en un lenguaje de programación.
Por lo tanto, la diferencia entre el lenguaje de programación y el programa en sí mismo es que el primero es un conjunto de reglas y el segundo es el resultado final de aplicar esas reglas para crear un software funcional.
Cada lenguaje está hecho y diseñado para diferentes funciones: procesos administrativos como contabilidad, finanzas, recursos humanos, control de almacenes; procesos de cálculo como hojas de cálculo; sistemas administrativos; científicos; procesos logísticos, entre otros.
La programación es el pilar sobre el cual se erige el edificio de la inteligencia artificial. Es la herramienta que los desarrolladores utilizan para codificar los algoritmos que permiten a las máquinas aprender, adaptarse y funcionar de manera autónoma.
Al hablar de cómo programar inteligencia artificial, la elección del lenguaje y el algoritmo adecuados es crucial para el éxito de un proyecto.
Entender cómo programar inteligencia artificial implica comprender la naturaleza de los problemas que deseas resolver y elegir la herramienta adecuada para el trabajo. La elección del lenguaje y el algoritmo adecuados puede marcar la diferencia en la efectividad de una solución de IA.
En última instancia, la inteligencia artificial sigue avanzando, y estos lenguajes y algoritmos continúan desempeñando un papel vital en su desarrollo y aplicación, como uno de los componentes más importantes de su razón de ser.
Los datos:
Una estructura de datos es un formato especializado para organizar, procesar y almacenar datos en la memoria de una computadora. Permite el acceso y la manipulación eficiente de datos, lo que permite a los programadores realizar tareas específicas de manera más efectiva.
Existen dos clases de tipos de datos: simples (sin estructura) y compuestos (estructurados). Los tipos de datos simples solamente almacenan un valor a la vez, mientras que los tipos de datos compuestos o estructurados pueden contener muchos valores al mismo tiempo.
Las estructuras de datos facilitan a los usuarios el acceso y el trabajo con los datos que necesitan de forma adecuada.
La estructura de la base de datos está formada por archivos (tablas), índices y relaciones entre archivos y formato de los archivos.
Tipos de datos para aplicar en la Inteligencia Artificial:
- Datos almacenados en bases de datos normalizadas.
- Datos de imagen.
- Datos de lenguaje natural.
- Datos de sensores.
- Datos transaccionales.
Datos Almacenados en Bases de Datos:
Una base de datos es una recopilación de datos sistemática, estructurada y almacenada electrónicamente. Puede contener cualquier tipo de datos, incluidos palabras, números, imágenes, vídeos y archivos.
Puede usar un software denominado sistema de administración de bases de datos (DBMS) para almacenar, recuperar y editar datos; la eficiencia en el uso de los mismos depende de la forma en que la base de datos fue diseñada.
Datos de Imagen:
Si bien los humanos podemos ver una foto y reconocer inmediatamente cualquier objeto, esto para las computadoras no era nada fácil hasta hace muy poco. La programación informática tradicional requería que los desarrolladores dieran instrucciones detalladas a los ordenadores sobre qué hacer exactamente en cualquier situación.
En la actualidad, ya podemos programar computadoras para que aprendan cosas a partir de su propia experiencia.
Esto es gracias a los avances realizados en la metodología denominada machine learning (ML), así como a la mayor capacidad de cómputo y de almacenamiento de los ordenadores que permite a los científicos de datos el uso de enfoques como los que se utilizan en el propio cerebro humano (redes neuronales).
Algunos ejemplos de casos de uso con datos de imágenes son:
- Verificación de la identidad mediante comparación facial (biometría).
- Análisis del uso de equipos de protección y mascarillas en el lugar de trabajo (seguridad).
- Detección de miles de objetos como, por ejemplo, logotipos de marcas.
Datos de Lenguaje Natural:
El procesamiento del lenguaje natural (NLP) es un campo de la inteligencia artificial en el que las computadoras analizan, comprenden y derivan el significado del lenguaje humano. NLP es otro ejemplo de un problema sencillo para los humanos, pero muy difícil para la informática tradicional.
Comprender el lenguaje humano es comprender no solamente las palabras, sino también los conceptos y cómo se vinculan entre sí para crear significado.
La PNL se usa comúnmente para la extracción de texto, la traducción automática y la respuesta automática a preguntas con autómatas (chatbots) de atención al cliente. También para transcribir voz a texto o incorporar voces realistas a nuestras aplicaciones, e incluso para hacer “análisis de sentimiento”, es decir, conocer el estado de ánimo de nuestros clientes y mejorar la atención a los mismos.
Datos de Sensores:
Hoy en día, la proliferación del Internet of Things (IoT) tanto en el ámbito del hogar como el profesional ha llevado a que casi cualquier dispositivo que usamos en nuestros hogares, oficinas, fábricas o incluso en nuestros cuerpos (wearables) pueda estar en línea y conectado.
Nuestras ciudades están sensorizadas, a lo que hoy en día llamamos ciudades inteligentes, miden el tráfico, la calidad del aire, el ruido y todo tipo de datos que ayuden a mejorar la calidad de vida del ciudadano.
La IoT tiene enormes implicaciones en la forma en que fabricamos bienes, brindamos servicios, vendemos a los clientes y damos seguimiento con soporte. Las fábricas inteligentes y las plantas de logística están cada vez más automatizadas.
Por ejemplo, la aplicación de inteligencia artificial a los datos de sensores permite el mantenimiento predictivo, esto es, predecir dónde ocurrirán averías antes de que ocurran para reemplazar y reparar de manera más eficiente los equipos defectuosos, e incluso la prescripción de tareas a nuestros operadores facilitando la toma de decisiones en determinados momentos de la cadena operativa.
Datos Transaccionales:
Los datos transaccionales son la información registrada de las transacciones que realizamos los usuarios de las diferentes aplicaciones.
Una transacción es una secuencia e intercambio de información que satisface una solicitud, por ejemplo, una compra en un ecommerce o un acceso en una plataforma de streaming.
Los datos de nuestras tarjetas de crédito son datos transaccionales. De ahí que un importante campo para la inteligencia artificial basada en datos transaccionales es la detección de fraudes y el análisis de transacciones de pagos.
Mediante la aplicación de inteligencia artificial en este tipo de datos podemos realizar análisis predictivos y análisis prescriptivos en base al comportamiento de los datos normalizados de las transacciones.
Cabe mencionar que los datos transaccionales en IA pueden o no estar estructurados, es decir que pueden ser datos que van directamente a una base de datos y sean administrados por un DBMS o pueden ser conversaciones en redes sociales y se requiera contar con algoritmos inteligentes con la capacidad de analizar esa información y convertirla para normalizarla, almacenarla y utilizarla para análisis de datos.
A partir de estos datos de nuestros hábitos de consumo, es que empresas como Amazon, Youtube, Netflix o Spotify, entre otras, organizan promociones personalizadas y ventas cruzadas.