¿Qué lenguajes se utilizan para crear aplicaciones? – Conceptos básicos

Los lenguajes de programación se utilizan para crear aplicaciones o programas. Aunque estos lenguajes han evolucionado para facilitar su uso no son algo sencillo de utilizar y su uso está reservado a técnicos y personas con experiencia. Normalmente utilizaremos una aplicación ya desarrollada y no tendremos que preocuparnos del lenguaje utilizado en su creación. Eso sí, conociendo el lenguaje de programación empleado podremos tener una idea de las capacidades y limitaciones que tiene nuestra aplicación.

Extensión SDK Scratch HTML
App Inventor Javascript
Intérprete o Runtime Ensamblador Java CSS
Lenguajes Compilados Lenguaje Máquina SQL
C PHP



¿Qué es la extensión?

El método de almacenamiento básico tanto en ordenadores como en dispositivos móviles es el fichero. En un fichero se almacenan documentos, música, texto, programas, etc. Una aplicación suele ser un conjunto de ficheros de distintos tipos que, en conjunto, realizan una tarea. Cada fichero tiene un nombre y una extensión separados por un punto. Esta extensión suele ser de tres letras aunque nada impide que sean 2, 4 o más. La extensión indica cual es el contenido del fichero. Por ejemplo: “doc” indica que es un documento, “mp3” es música, “jpg” es una imagen, “gif” es una imagen pero con un formato distinto, “exe” y “com” son programas, “jar” un programa java, y así sucesivamente. La extensión es un convenio, o sea, podríamos cambiarla con lo que no sería congruente con el contenido pero eso es algo que debemos tener cuidado de no hacer.


Interprete o runtime

Cuando el lenguaje es interpretado el programa está almacenado en el fichero en modo texto. Eso quiere decir que podemos editarlo con un editor de textos e incluso modificarlo. A la hora de ejecutarlo se utiliza un interprete o “runtime” que lee el programa y ejecuta las instrucciones. La ventaja principal es que la aplicación sirve para cualquier dispositivo y ordenador, solo tenemos que buscar el “runtime” adecuado y funcionará. Por ejemplo un programa en java puede ser ejecutado en cualquier dispositivo. Solo tenemos que instalar el “runtime” de java para nuestro ordenador o dispositivo y este se encargará de la ejecución. El inconveniente que tiene es que hay un tiempo dedicado a la traducción y análisis del programa que se perderá tantas veces como ejecutemos el programa. Por lo tanto un lenguaje interpretado siempre será más lento que uno compilado.


Lenguajes compilados

Los programadores siempre realizan los programas en ficheros de texto pero muchas veces ese programa se pasa a través de un programa compilador. Este compilador da como salida un fichero de programa en lenguaje directamente entendible por la máquina que suele estar almacenado en ficheros con extensión “EXE” o “COM”. Al ser directamente entendible por la máquina la ejecución es muy rápida y esa es su principal ventaja: Las aplicaciones son muy veloces. Además es muy difícil realizar el paso inverso por lo que el programa es prácticamente indescifrable. Nadie puede averiguar el fichero de texto del que se partió. Al programa original en formato texto se le denomina “código fuente” y no es necesario para la ejecución de la aplicación por lo que solo los programadores lo conocen. La mayoría de las aplicaciones comerciales utilizan lenguajes que son compilados y solo se distribuyen los ficheros directamente entendibles por el ordenador o dispositivo.

SDK

Son las siglas de “Software Development Kit”. Es un entorno de desarrollo para la creación de aplicaciones. Cada SDK o entorno de desarrollo está diseñado para un determinado lenguaje de programación. En muchos casos estos SDKs son gratuitos ya que hay un interes comercial en que existan muchos desarrolladores para un determinado lenguaje de programación. Por ejemplo: podemos descargarnos gratuitamente tanto el “runtime” como el SDK de Java ya que existe un interes primero de Sun Microsystem (ahora Oracle) para el uso y fomento del lenguaje Java. El primero se denomina JRE o “Java Runtime Environment” y al segundo JDK o “Java Development Kit” y ambos son gratuitos. El objetivo de los SDK o entornos de desarrollo es facilitar y acelerar el desarrollo de aplicaciones. Para ello suelen tener un editor adaptado al lenguaje de programación que suele realizar un análisis sintáctico en el momento para detectar errores sintácticos rápidamente. Además suelen tener herramientas para probar las aplicaciones fácilmente y para ayudar a la detección de errores de diseño o “bugs”.

Gracias al boom de los dispositivos móviles los SDKs más utilizados son los utilizados para desarrollar aplicaciones para IOS de Apple, Android de Google, Windows Phone de Microsoft además del ya mencionado JDK de Oracle.


Scratch

Desarrollado en el famoso MIT (Massachusetts Institute of Technology) es el primer lenguaje que deberíamos aprender. Su objetivo es la formación y la educación y es el lenguaje que se está imponiendo en las escuelas. Su entorno de desarrollo es muy visual e intuitivo y elimina los problemas de sintaxis de otros lenguajes. Es un lenguaje estructurado y orientado a objeto por lo que todos los conceptos aprendidos son directamente aplicables a otros lenguajes más profesionales como Java. Aunque el entorno de desarrollo se puede descargar esto no es necesario ya que se puede trabajar únicamente utilizando un navegador web simplemente creando una cuenta gratuita en la web de Scratch.


App Inventor

También desarrollado en el famoso MIT (Massachusetts Institute of Technology) y en la misma línea que Scratch, App Inventor permite crear aplicaciones para nuestro móvil Android de una manera sencilla e intuitiva. Para comenzar solo es necesario entrar en la página web de App Inventor utilizando una cuenta de Google. No es necesario instalar nada en nuestro PC ya que el entorno de desarrollo funciona en cualquier navegador que soporte “Adobe Flash” que son prácticamente todos. Para instalar las aplicaciones en nuestro móvil Android sí que necesitaremos instalar en nuestro móvil la aplicación “MIT AI2 Companion“.  Esta aplicación lee el código QR generado por el entorno de desarrollo e instala nuestra aplicación en el móvil. Es realmente fácil e intuitivo y la mejor manera de comenzar a desarrollar aplicaciones móviles.


HTML

Son las iniciales de HyperText Markup Language. Es el principal lenguaje para la creación de las páginas Web. La página web es un fichero de texto escrito en lenguaje HTML. La extensión de este fichero suele ser HTM o HTML. Este fichero es descargado e interpretado por nuestro navegador para mostrarnos la página web. En este caso el navegador es el “runtime” que interpreta el programa. En un principio HTML solo se pensó como lenguaje para dar formato a una página con texto e imágenes pero, en las sucesivas versiones, se fueron añadiendo nuevas funciones que dieron a HTML la potencia suficiente para la creación de aplicaciones bastante potentes. Además han surgido lenguajes complementarios como JavaScript y PHP, también interpretados por el navegador, que le han dado la potencia que le faltaba para la creación de aplicaciones. Actualmente la última versión de HTML es HTML5. Esta versión pretende dar la potencia necesaria a HTML para no ser necesario ningún lenguaje complementario para la creación de aplicaciones.


Java

Java es un lenguaje de programación que sirve para desarrollar aplicaciones. Lo que le diferencia de otros lenguajes de programación es la manera en que se ejecuta en nuestro ordenador o dispositivo móvil. Al arrancar la aplicacion se llama a otro programa denominado “runtime” y es este programa el que hace funcionar la aplicación. La ventaja principal es que el programa “runtime” si que tiene que ser específico para nuestro sistema operativo pero no nuestra aplicación Java. La aplicación Java puede funcionar en distintos sistemas operativos siempre que tengamos el programa “runtime” adecuado para nuestro sistema operativo. Este se consigue en la página web http://java.com. Las aplicaciones diseñadas en lenguaje Java suelen estar almacenadas en archivos con la extensión “JAR”. Este lenguaje fué diseñado por la empresa Sun Microsystems que permitía su distribución y uso aunque no su modificación. Hoy en día es propiedad de la empresa Oracle y las condiciones siguen siendo las mismas: se puede usar libremente pero no se puede alterar.


SQL

Es el lenguaje más extendido en las bases de datos. Con él se realizan consultas, se modifican e insertan datos, y también se realiza la gestión de la base de datos creando tablas, ficheros, etc. Los programas en lenguaje SQL siempre son interpretados por lo que pueden ser vistos con un editor de textos. Aunque, como todos los lenguajes interpretados, es más lento que si estuviera compilado, esto no es importante porque, en una base de datos, el cuello de botella o el elemento que más influye en la velocidad es el acceso al disco. De hecho, una base de datos funciona más rápido cuando utilizamos unidades de almacenamiento muy rápidas y prácticamente no se gana nada aumentando la potencia del ordenador.


Javascript

Los primero que hay que decir de Javascript es que no es Java. Los dos son interpretados y pueden parecerse en algunas cosas pero son dos lenguajes diferentes. Javascript se utiliza para insertar pequeños programas en las páginas HTML. El programa escrito en Javascript se inserta entre las etiquetas <script> y </script>. El programa contenido entre estas dos etiquetas es interpretado y ejecutado por el navegador web. Javascript no es utilizado para grandes programas si no para mejorar una página web con funciones que interactúan con el usuario o que controlan el navegador.


C

El nombre es bastante simple, la letra C, pero es uno de los lenguajes de proposito general más utilizado. Normalmente los programas escritos en C son compilados y las aplicaciones resultantes son programas directamente interpretados por el microprocesador. Los ficheros que contienen estos programas suelen tener las extensiones EXE o COM. Por lo tanto, una vez traducido al lenguaje del microprocesador, son totalmente ininteligibles por nosotros. Al programa escrito en C se le denomina código fuente y, una vez compilado, ya no es necesario para el uso de la aplicación por lo que el programador no lo distribuye. Solo se distribuye  el programa en lenguaje del microprocesador o también llamado lenguaje máquina. Existe una versión del lenguaje C denominada “C++”. Esta versión incorpora un concepto nuevo que se llama programación orientado a objeto. Sin entrar en detalle sobre la programación orientada a objeto, con ella se mejora la reutilización del software aunque también se incrementa la complejidad en la programación. Tanto C como C++ son lenguajes reservados para expertos programadores.


CSS

Son las siglas de “Cascade Style Sheets”. Es un lenguaje complementario de HTML cuya utilidad es la mejora en la presentación de las páginas web. En un principio permite separar en ficheros diferentes el contenido de la página web y los elementos que definen como se presenta este contenido. Estos elementos necesarios para la presentación pueden estar en un único documento mientras que las distintas páginas web tienen extrictamente el contenido haciendo referencia al fichero CSS. Cambiando este fichero CSS por otro cambiamos totalmente el estilo de todas las páginas web que hacen referencia a este estilo sin modificar el contenido.


PHP

Es un lenguaje de programación interpretado por el servidor web. Lo distinguiremos porque las páginas web tienen la extensión PHP en lugar de HTML o HTM. Este lenguaje de programación permite aplicaciones bastante complejas. Cuando el navegador solicita una página PHP el servidor web la interpreta y ejecuta y el resultado es la pagina que vemos en la pantalla de nuestro navegador. Por lo tanto el programa PHP nunca sale del servidor y nosotros solo vemos el resultado. Es uno de los lenguajes más utilizados para la realización de aplicaciones web.


Lenguaje máquina

Es el lenguaje que entiende directamente el microprocesador. Los programas en lenguaje máquina son el resultado de compilar un programa escrito en lenguaje de alto nivel. El compilador realiza la traducción y genera un fichero directamente interpretable por el procesador que normalmente tienen la extensión EXE o COM.


Lenguaje ensamblador

Este lenguaje es utilizado solo en casos muy concretos cuando se require hacer una función muy concreta, cuando se necesita una aplicación extremadamente rápida o cuando se require que el programa generado sea muy eficiente. Siempre que sea posible este lenguaje se evita. El concepto de lenguaje ensamblador es el de asignar un conjunto de tres letras a cada instrucción de lenguaje máquina. Las instrucciones en lenguaje máquina están escritas en binario y serían ininteligibles. Asignando un código de tres letras se hace algo más amigable la programación. Por ejemplo la instrucción MOV (que es la abreviatura de “move”, mover) se asigna a las instrucciones de lenguaje máquina que mueven información. Este lenguaje es simplemente un poco más amigable, pero es muy complejo de utilizar por lo que es muy poco utilizado. Aun así la traducción al lenguaje máquina es necesaria y es realizada por un programa similar al compilador denominado “ensamblador”.