La programación

La programación es el proceso de crear un conjunto de instrucciones que le dicen a una computadora como realizar algún tipo de tarea. Pero no solo la acción de escribir un código para que la computadora o el software lo ejecute. Incluye, además, todas las tareas necesarias para que el código funcione correctamente y cumpla el objetivo para el cual se escribió.

En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones de informática y videojuegos. En este sentido, es el proceso por el cual una persona desarrolla un programa, valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, como C++, Java y Phyton, entre muchos otros) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguje de maquina, que puede "comprender" el microprocesador.

Para crear un programación y que la computadora lo interprete y ejecute, las instrucciones deben escribirse en un lenguaje de programación.

El lenguaje entendido por una computadora se conoce como código de máquina. Consiste en secuencias de instrucciones básicas que el procesador reconoce, codificadas como cadenas de números 1 y 0 (sistema binario). En los primeros tiempos de la computación se programaba directamente en código máquina. Escribir programas así resultaba demasiado complicado, también era difícil entenderlos y mantenerlos una vez escritos. Con el tiempo, se fueron desarrollando herramientas para facilitar el trabajo.

Los primeros científicos que trabajaron en el área decidieron reemplazar las secuencias de unos y ceros por mnemónico, que son abreviaturas en inglés de la función que cumple una instrucción de procesador. Por ejemplo, para sumar se podría usar la letra A de la palabra inglesa add (añadir). Crearon así una familia de lenguajes de mayor nivel, que se conocen como lenguaje ensamblador o simplemente ensamblador (en inglés, assembly). Con el tiempo los ensambladores incorporaron facilidades adicionales, pero siempre manteniendo una correspondencia directa con las instrucciones de procesador. A nivel conceptual, entonces, programar en ensamblador es muy similar a hacerlo en lenguaje máquina, solo que de una forma más amigable.

A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, el lenguaje ensamblador fue mostrando limitaciones. Para hacer un programa había que conocer en detalle el funcionamiento de la computadora donde se iba a ejecutar, qué instrucciones proveía y cómo emplearlas. A veces las instrucciones eran demasiado básicas, por ejemplo podía haber una para sumar dos números pero no para multiplicar, y entonces era necesario programar un algoritmo que realizara la multiplicación con base en instrucciones más básicas. Otras veces, la forma de emplear las instrucciones era engorrosa. Además, si se usaba otro modelo de computadora, en muchos casos había que reescribir el programa con otras instrucciones. El siguiente paso fue crear los lenguajes de alto nivel.

Una vez que se termina de escribir un programa, es necesario de alguna forma traducirlo a lenguaje máquina, que es lo único que entiende el procesador. Esta tarea es automática, por medio de un programa adicional que toma el código escrito y lo procesa. Hay distintos enfoques para este procesamiento. El enfoque clásico se llama compilación: el programa toma el código en un lenguaje y genera código en el otro; al programa traductor se lo llama compilador. En general se habla de compilación y compiladores cuando el lenguaje de origen es de alto nivel; si la traducción es desde lenguaje ensamblador, se llama ensamblado y el programa se llama ensamblador (hay que distinguir el lenguaje ensamblador del programa ensamblador; en inglés es más claro, son assembly language y assembler respectivamente).3​Generalmente existe una fase posterior a la compilación denominada enlace o enlazado (linking en inglés). Los programas pueden escribirse en partes separadas y además pueden usar recursos provistos por bibliotecas. El enlazado, realizado por un programa llamado enlazador, combina todos los componentes y así genera un programa ejecutable completo.

En algunos lenguajes de programación, puede usarse un enfoque diferente que no requiera compilación y enlace: un programa llamado interprete va leyendo el código y realizando en el momento las acciones que haría el programa. Se evita generar código separado y la experiencia es que se está ejecutando el código en el lenguaje de alto nivel, a pesar de que el procesador no lo entienda de forma nativa.


Objetivos de la programación

La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:

  • Correctitud. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de su desarrollo y, una vez acabado, compararlo con lo que realmente hace. Al verificar este comportamiento está cumpliendo dicho objetivo.
  • Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo de programación. De esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar arte ASCII para delimitar secciones de código; una práctica común es realizar aclaraciones en el mismo código fuente utilizando líneas de comentarios. Contrariamente, algunos programadores realizan acciones que tienden a introducir confusión para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.
  • Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración para mejorar la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico en la red que genera, etc.).
  • Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea harware o software, diferente a aquella en la que se desarrolló. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha elaborado para el sistema GNU/Linux que también pueda ejecutarse en la familia de sistemas operativos Windows. Consecuentemente el programa puede llegar a más usuarios.  


Pseudocódigo

Antes de entrar de lleno en el establecimiento del significado del término pseudocódigo, se hace necesario que procedamos a determinar el origen etimológico de las dos palabras que le dan forma:

-Pseudo deriva del griego, de “seudo”, que puede traducirse como “falso”.

-Código, por su parte, emana del latín. En concreto, de “codices, codex” que se empleaban para referirse a los documentos o libros donde los romanos tenían escritas todas y cada una de sus leyes.

Nuestra lengua apela a diversos elementos compositivos para formar palabras. Uno de los más habituales es pseudo o seudo, que permite referirse a que algo no es original, sino que es falso o una imitación.

Un código, por su parte, es una serie de símbolos que forman parte de un sistema y que tienen un determinado valor ya asignado. Los símbolos que se incluyen en un código se combinan respetando reglas y permiten transmitir un mensaje.

Estas definiciones nos permiten comprender qué es un pseudocódigo, una noción que se emplea en el ámbito de la informatica. Se trata de un falso lenguaje, ya que apela a las normas de estructura de un lenguaje de programación aunque se encuentra desarrollado para que pueda ser leído por un ser humano y no interpretado por una máquina.

El pseudocódigo, en este sentido, esta considerado como una descripción de un algoritmo que resulta independiente de otros lenguajes de programación. Para que una persona pueda leer e interpretar el código en cuestión, se excluyen diversos datos que no son clave para su entendimiento.

Un pseudocódigo, por lo tanto, se emplea cuando se pretende describir un algoritmo sin la necesidad de difundir cuáles son sus principios básicos. De esta manera, un ser humano encontrará mayores facilidades para comprender el mensaje, a diferencia de lo que ocurriría si estuviese frente a un lenguaje de programación real.

Proceso de creación

A la hora de llevar a cabo la creación de un pseudocódigo, se hace necesario que su estructura se encuentre compuesta de las siguientes partes:

-Una cabecera, que, a su vez, se debe componer de cinco áreas diferenciadas como son el programa, el módulo, los tipos de datos, las constantes y las variables.

-El cuerpo, que se dividirá en inicio, instrucciones y fin.

Las características de un pseudocódigo

Además de todo lo expuesto, se hace importante establecer otra serie de datos de interés relativos a cualquier pseudocódigo:

-Se debe poder ejecutar en cualquier ordenador.

-No tiene nada que ver con el lenguaje de programación que se vaya a poder usar después, es decir, que es independiente respecto al mismo.

-Tiene que ser sencillo de usar y también de manipular.

-Debe permitir que se pueda acometer la descripciones de diversos tipos de instrucciones, tales como de proceso, de control, de descripción, primitivas o compuestas.

-A la hora de poder desarrollar la creación del citado pseudocódigo hay que tener en cuenta que se utilizarán diversos tipos de estructuras de control. En concreto, estas podemos decir que son de tres clases: selectivas, secuenciales e iterativas.

Estas características hacen que los pseudocódigos sean utilizados en obras científicas y educativas y en las etapas previas al desarrollo de un software, a la manera de boceto antes de proceder a la programación.


Lenguajes de programación

1. Python

Python es de código abierto, con una sintaxis simple y sencilla de entender, quizá el más fácil de este listado. Es idóneo para iniciarse en el mundo de la programación. Es muy versátil por lo que tiene múltiples áreas de aplicación como: inteligencia artificial, Big Data y desarrollo web



2. Java

Este lenguaje orientado a objetos funciona independientemente de la plataforma de hardware, entonces, el código escrito en una máquina corre en otra, sin problemas. Incluso, si los sistemas operativos son diferentes, el código Java funciona gracias a la Máquina Virtual Java o JVM, por las siglas en inglés. 

Su ámbito de aplicación es tan amplio, que existe software desarrollado para puntos de ventas, cajeros automáticos, internet de las cosas, dispositivos móviles, aparte de páginas web con este lenguaje.



3. JavaScript

Otro lenguaje de programación orientado a objetos. Como es interpretado, no necesita compilación, entonces los navegadores leen el código y ejecutan las acciones indicadas. Esta característica, lo hace idóneo para crear páginas o aplicaciones web, con elementos interactivos o más visuales, de allí su relevancia en el desarrollo de videojuegos.

La capacidad de ejecutarse desde el navegador, lo hace el lenguaje más usado en el mundo, pues, aunque un sitio web esté hecho en otro lenguaje, puede contener algo desarrollado en JavaScript.



4. C#


C# es un lenguaje de programación muy versátil, creado por Microsoft, con características similares al Lenguaje C, pero orientado a objetos. Es muy usado en la industria de los juegos, robótica, impresión 3D, internet de las cosas y desarrollo de aplicaciones web y móviles. Así como también, en el desarrollo de aplicaciones nativas para Microsoft, iOS y Android, como controladores y aplicaciones de escritorio. 

Entonces, si quieres ser parte del mundo de los videojuegos, debes aprender a programar en lenguaje C#.


5. PHP

PHP es un lenguaje de programación multipropósito que permite desarrollar aplicaciones del lado del servidor, garantizando una excelente comunicación con la web. Esta capacidad comunicativa entre la web y el servidor, produce el desarrollo de páginas web muy estables y con un excelente rendimiento.

A través de PHP, se han creado grandes aplicaciones, herramientas y plataformas, como Facebook, Gmail, Wikipedia y WordPress.



6. C/C++

C++ es un lenguaje de programación creado, como una extensión del lenguaje C, para hacerlo orientado a objetos. Es capaz de compilar instrucciones, por lo que brinda acceso total al hardware, originando su amplio uso en bases de datos, navegadores web y videojuegos.



7. R

R es un lenguaje de programación orientado a la estadística, muy utilizado en cálculo y análisis estadístico, así como en la generación de gráficos estadísticos. Debido a este enfoque, el lenguaje R es muy usado en investigación científica y biomédica, matemáticas financieras, minería de datos, Machine Learning y Data Science.



8. Objective-C

Objective-C es un lenguaje de programación cimentado en C, orientado a objetos, para crear soluciones sencillas y flexibles a problemas de programación. Fue el lenguaje principal de Apple para crear aplicaciones en iOS y macOS, antes de Swift, pero aún es popular por la gran cantidad de aplicaciones desarrolladas con él.



9. Swift

Este lenguaje multiparadigma de Apple fue creado en 2014 para desarrollar aplicaciones para iOS y macOS, con una sintaxis simple y concisa. Es un lenguaje compilado, con un rendimiento similar al de C++, por lo que brinda alta productividad a los desarrolladores.

Es excelente para diseñar aplicaciones, porque, además, ahora, es de código abierto y tiene una comunidad de desarrollo muy grande.


10. Matlab

Matlab es un lenguaje de programación orientado al cálculo matricial, implementación de algoritmos, visualización de datos y creación de interfaces de usuario. El Matlab (Matrix Laboratory) es un lenguaje interactivo, basado en matrices que no requieren estar dimensionadas, lo que facilita la representación de datos y funciones. Por lo que, genera un entorno sencillo y productivo para el desarrollo de software.









Comentarios