domingo, 28 de febrero de 2016

        

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.



1 comentario:

  1. Con sinceridad, de los que he leído este es el que más me ha gustado. Se nota que sabes de lo que escribes.

    Me ha gustado mucho que explicaras las plataformas y hablaras de los lenguajes del futuro. Enhorabuena :)

    ResponderEliminar