Cerrar panel

Cerrar panel

Cerrar panel

Cerrar panel

Programación 07 dic 2018

¿Qué ventajas trae saber cómo funcionan los lenguajes de programación?

Muchas. Y esto no nos obliga a ser especialistas en informática. Los lenguajes de programación son los que permiten dar indicaciones a las máquinas, y ellos son los que las hacen más o menos inteligentes. Así, cuanto más sepamos acerca de estos procesos mejor entenderemos el funcionamiento del mundo actual. Y también estaremos más protegidos frente a leyendas urbanas y noticias falsas. Por ejemplo, si sabemos cómo funcionan los algoritmos de protección de nuestras cuentas bancarias dudaremos de aquél bulo que dice que si metemos el pin al revés en un cajero, el banco inmediatamente avisará a la policía.

La comprensión general de los sistemas informáticos, desde los dispositivos más básicos hasta la inteligencia artificial, es un desafío en la administración empresarial y la gestión pública. Hace unos días el ministro de ciberseguridad de Japón aceptaba su ignorancia sobre el concepto de memoria USB. La educación tradicional —y en muchos casos la actual— ha desatendido a estos asuntos y muchos de nuestros gobernantes y directivos padecen diversos niveles de analfabetismo digital.

Los primeros intentos de programar una máquina llegaron cuando las mismas eran muy rudimentarias. Una gran precursora de los lenguajes de programación fue Ada Lovelace en el siglo XIX. Esta escritora y matemática creó el primer algoritmo para programar la máquina analítica de Babbage, que no había sido construida todavía. Anotación al margen: una primera edición de “Sketch of the analytical engine invented by Charles Babbage” de Ada Lovelace fue vendida recientemente por cerca de cien mil libras esterlinas.

Si durante la segunda parte del siglo XX la economía era la ciencia que nos permitía comprender mejor el entramado funcional del mundo hoy es la informática la que nos ofrece claves fundamentales. En el siglo pasado los intercambios financieros de la sociedad industrial marcaban el desarrollo de las sociedades y las naciones. Pero las transacciones que se fundamentaban en procesos analógicos ahora son digitales. Por ello, y aquí otro ejemplo, para entender los procesos de ‘blockchain’ que gestionan las criptomonedas tendremos que tener nociones de programación computacional.

Dar instrucciones a un procesador, eso es programar. Los procesadores son el cerebro de los ordenadores y muchas otras máquinas que nos rodean. Trabajan con ‘bits’, esto es ceros y unos. Puedes realizar multitud de indicaciones que el procesador traducirá a ceros y unos, precisamente porque son números. Escribir, dibujar, sumar, editar vídeos, invertir en bolsa o dictar órdenes a un automóvil. Los lenguajes de programación son como diversos idiomas con los que podemos comunicarnos con el procesador. Algunos son más simples, otros más complejos dependiendo de las tareas hacia las que estén dirigidos.

La historia de los lenguajes de programación se inicia a mediados del siglo pasado con el lenguaje Fortran, desarrollado por la IBM. A partir de allí llegarán otros lenguajes de los que mencionaré solo algunos: Algol (1958), Cobol (1959), Basic (1964), Pascal (1970), C (1972), C++ (1983), Python (1991), Java (1995), C# (2000), Scratch (2002) o Rust (2010). El reporte Octoverse nos muestra cuáles son los lenguajes de programación más populares de los últimos tiempos.

La arquitectura de ‘software’ distingue entre programadores científicos, expertos en seguridad, desarrolladores Web, analistas de sistemas y muchos otros. Los programadores se especializan en múltiples campos. Para comprender esto también hay que saber que la programación actual se realiza en forma de módulos. Los programas se complementan y se superponen o integran en sistemas comunicantes. Los programadores dependen, confían y se relacionan unos con otros. Todos cooperan en el desarrollo de estructuras como los constructores de las ciudades tradicionales: arquitectos, ingenieros, maquetadores, obreros y proyectistas. El experto en Internet de las Cosas, John Cohn, dice que lo más interesante de nuestra época es el entorno colaborativo entre programadores.

Los sistemas operativos son el ‘software’ fundamental en muchas máquinas pero estos necesitan aplicaciones para realizar tareas. Ejemplos de sistemas operativos para ordenadores son Unix, Windows y Mac OS, para dispositivos móviles Android y iOS, para relojes inteligentes WatchOS y AndroidWear. Cada programador se especializa en uno o varios lenguajes dentro de un sistema operativo, y a su vez, debe conocer los rudimentos de otros.

Curiosamente la programación está íntimamente unida a la capacidad de pensar críticamente. Ser capaces de hilvanar argumentos, defender nuestros derechos, solucionar problemas, denunciar injusticias o simplemente debatir con cierto rigor. Porque quien aprende a programar, de una u otra forma está obligado a pensar con lógica. Además los programadores piensan de forma colaborativa, y su trabajo está muy relacionado con la creatividad o la ética.

Los intentos de los primeros filósofos por ordenar el pensamiento tienen paralelos con los lenguajes informáticos. Los métodos desarrollados por pensadores como Avicena, Santo Tomás, Descartes, Leibniz, Kant, Russell o Whitehead encontrarían un gran aliado en el aprendizaje de los lenguajes de programación. Si Aristóteles emprendiera la redacción de sus ‘Primeros analíticos’ hallaría grandes ejemplos en la programación de ordenadores. Los lenguajes de programación son una nueva formalización de la lógica, posterior a la lógica matemática de los siglos XIX y XX de Peano y Frege. Esto, por otra parte, está muy relacionado con los usos gramaticales y los paradigmas lingüísticos.

Algunos académicos piensan que la enseñanza general debería añadir el  saber cómo piensan las máquinas y no la programación específica. Lo cierto es que para entender qué tipo de ayuda informática necesitamos al emprender un negocio, o desarrollar un proyecto es muy conveniente todo tipo de información sobre programación.

Todavía hay quien piensa que lo más humano es prescindir de las máquinas para relacionarnos mejor, lo cierto es que la comunicación siempre ha dependido de la tecnología. Y cuanto mejor la entendamos más la humanizaremos.

Otras historias interesantes