Tema 2: Representación de la Información
¿Qué son los lenguajes de programación?
Un lenguaje
de programación es una estructura que, con una base sintáctica y semántica,
imparte diversas instrucciones a un programa de ordenador. El origen del
lenguaje de programación se lo debemos a Ada Lovelace, considerada la primera
programadora de ordenadores del mundo. (1)
Existe una gran cantidad de lenguajes de
programación, por lo que se han desarrollado lo que conocemos como intérpretes (programas que adaptan las instrucciones
a otro lenguaje) y compiladores
(programas que traducen el lenguaje a lenguaje máquina).
Vamos a clasificar los lenguajes de acuerdo
a su nivel de abstracción:
Primeramente tenemos el lenguaje máquina, que es el conjunto de
códigos binarios directamente interpretables por una computadora.
Seguidamente tenemos el lenguaje de bajo nivel, que es aquel
lenguaje totalmente dependiente del ordenador
Por último tenemos el lenguaje de alto nivel, que es aquel que se encuentra más cercano
al lenguaje natural que al lenguaje máquina.
.NET vs JAVA
Vamos a comparar las dos principales
plataformas de desarrollo que hay en la actualidad. (2)
JavaSEE/JavaEE es una gran plataforma de
desarrollo y pertenece a Oracle, además de estar respaldada por grandes
gigantes de la industria como son IBM o RedHat. Destacar que el crecimiento de
la plataforma Android le ha dado un impulso a esta plataforma. (2)
Por otro lado .Net es también una excelente
plataforma de desarrollo. Pertenece a Microsoft, que posee más del 90% del
mercado de sistemas operativos de ordenador. (2)
Ahora veamos las principales ventajas de
cada una de las plataformas:
En el caso de Java, funcionaría bien en
alguno de los siguientes escenarios:
- El desarrollo de aplicaciones multiplataforma. Es uno de los puntos fuertes de esta
plataforma.
- El desarrollo de aplicaciones Android. En .Net existen herramientas para desarrollar
en Android como Xamarin, pero el lenguaje natural de Android es Java.
- Gran variedad
de herramientas para el desarrollo. Java tiene muchísimas opciones donde
escoger entre frameworks, IDE’S, servidores de aplicaciones, etc.
- Gran afinidad con GNU/Linux y Open Source, a pesar de que ni Java es del todo libre,
ni .NET es totalmente propietario.
Para el caso de .NET, podríamos considerar
como beneficiosos alguno de los siguientes escenarios:
- Si tu empresa posee muchos productos de
Microsoft, la opción recomendable es .NET porque esta plataforma corre mejor en
ambientes Windows.
- La compañía de Microsoft está apostando fuerte
por .NET y esto lo demuestra con los numerosos productos y actualizaciones que
se presentan con gran frecuencia.
- Gran variedad
de herramientas para el desarrollo. Java tiene muchísimas opciones donde
escoger entre frameworks, IDE’S, servidores de aplicaciones, etc.
- Uniformidad en las herramientas de desarrollo
existentes en .NET: el IDE por defecto es Visual Studio, el servidor web es
ISS, el framework MVC es ASP .NET MVC, etc.
SmartGWT
GWT es un framework perteneciente a Google
que tiene como ventaja principal que el código se escribe en Java, y después de
compilarlo produce archivos JavaScript que pueden correr en cualquier
navegador. (3)
SmartGWT es una variación de GWT, en la
cual se implementan todos los widgets disponibles en la librería de JavaScript
SmartClient. Nos ofrece un set de formularios, grillas y muchos otros componentes.
Posee funcionalidades que se resuelven dentro del mismo widget. (3)
Las ventajas que posee son las siguientes:
- A partir de una clase de java, obtenemos una pantalla con grillas, formularios y un look and feel muy profesional.
- Evitamos confrontaciones con las distintas versiones de Internet Explorer, sus cambios de implementación y su renderización obsoleta de JavaScript y CSS.
- Posee una gran variedad de widgets para utilizar.
Las principales desventajas son las siguientes:
- La versión LGPL, no habilita el uso del lado del servidor en la versión gratuita.
- El tiempo de compilación es largo si lo comparamos con una aplicación nativa en HTML, JavaScript y CSS.
- El HTML generado para representar los componentes es demasiado complejo.
Lenguajes de programación del futuro
Todo programador ha oído hablar de
lenguajes de programación como HTML, Phyton, PHP, JavaScript, etc. Pero hay
otros muchos que podrían reinventar el futuro del desarrollo de software.
Algunos de estos lenguajes son Dart, Go, F#
o Ceylon.
- Dart
es un lenguaje de código abierto, estructurado y flexible orientado a objetos. Es
fácil de aprender y está adaptado a todos los navegadores web. El código se
puede compilar en Java Script para ejecutarlo en cualquier navegador. Permite
la creación de aplicaciones web bastante
complejas con un rendimiento muy elevado. También es una opción interesante
para el desarrollo de aplicaciones en la nube porque permite un único lenguaje
para el cliente, para el servidor y todo a través de la plataforma en la nube
de Google (Google Cloud Platform).
- Go es
un lenguaje inspirado en C, con una excelente biblioteca estándar y recolector
de basura. Es ideal para desarrolladores que conozcan C pero con la
particularidad de que lenguajes como C, Java o C++ son pesados y Go es todo lo
contrario. También admite la tipificación dinámica de datos. Además no es un
lenguaje orientado a objetos, no hay clases ni objetos ni herencia.
- F# es
un lenguaje multiparadigma de código abierto, orientado a objetos y admite
funciones de la plataforma anteriormente descrita .NET. Este lenguaje se
utiliza mucho dentro de la industria asociada a los Big Data.
- Ceylon
es un lenguaje de programación orientado a objetos desarrollado por la
archiconocida empresa Red Hat, responsable de la creación del sistema operativo
de código abierto Linux. Tiene una sintaxis parecida a Java pero es mucho más
legible, más regular y se apoya en estructuras de árbol. En definitiva es una
sintaxis cuyo fin es una programación de proyectos de desarrollo más funcional
que la de Java porque simplifica y elimina elementos de ese lenguaje.