Lenguaje de Programación ABAP
Lenguaje de Programación ABAP
Lenguaje de Programación ABAP
Estos artículos son una reflexión sobre los lenguajes de programación más actuales con el objetivo de
explicar qué características poseen y qué hechos han sucedido para predominar sobre el resto de lenguajes
existentes.
El índice TIOBE, gracias a varios estudios, publica un ranking con los cien lenguajes más populares entre la
comunidad de desarrolladores – Java, C, C#, C++ y Objective-C – clasificados por diversos patrones como
libros publicados u ofertas de empleo. Se analizan cada uno de ellos desde un punto de vista objetivo
describiendo su público y qué peculiaridades poseen a su favor.
Finalmente se concluye con un gráfico describiendo cómo ha evolucionado su popularidad desde el año 2000.
Introducción
Los ordenadores son una de las herramientas más versátiles que tenemos en la actualidad. Son capaces de
simplificar y realizar nuestras tareas diarias, automatizar procesos tediosos, facilitan el intercambio de la
información, etc.
Sin embargo, a pesar de nuestros esfuerzos, todavía no son tan inteligentes como nosotros. Tenemos que
describirlas en su lenguaje natural que acciones deben realizar. Es por ello que existe una barrera entre
nuestro lenguaje y el suyo. Por tanto, los ordenadores se basan en programas compuestos por un
conjunto de instrucciones entendibles por ellos y que pueden utilizar para llevar a cabo las tareas que
queremos que realicen. Para mejorar esta comunicación entre los ordenadores y nosotros, se han
desarrollado una gran variedad de lenguajes de programación para simplificar este proceso.
Konrad Zuse en la Alemania nazi desarrolló el primer lenguaje de programación2, “Plankalkul” en 1945.
Desde entonces, se han documentado3 más de dos mil quinientos lenguajes de programación. De acuerdo
con Sammet4, cerca de doscientos lenguajes de programación fueron diseñados entre 1952 y 1972, pero sólo
consideró trece como significativos y que influenciaron a lenguajes posteriores.
Lenguajes actuales
El índice TIOBE5 intenta reflejar a través de estos patrones (y otros como cursos impartidos sobre el lenguaje,
etc.) el nivel de popularidad de los lenguajes de programación cada mes. Sin embargo, no se tiene en cuenta
que lenguaje es el mejor o con el que se han escrito más líneas de código.
En la siguiente tabla se muestra los diez ganadores de febrero extraídos del ranking total producido por la
comunidad de programación TIOBE:
Como se puede comprobar, hay dos claros favoritos: Java y C. Es por ello que se analizarán en este
documento junto a los tres inmediatamente posteriores: C#, C++ y Objective-C.
Se puede observar una línea común sin conocer en detalle estos lenguajes (a excepción de Java), todos ellos
en su nombre contienen a C. Todos ellos, incluso Java, fueron inspirados en su diseño por C, y como
muestra de ello, tienen una sintaxis muy similar. Quizá esa haya sido la clave del éxito, pues la curva de
aprendizaje para pasar de un lenguaje a otro es menor.
Java
Java, al igual que .NET de Microsoft (su competidor más directo), es mucho más que un lenguaje de
programación como C ó C++. Java es una plataforma de desarrollo de todo tipo de aplicaciones y
proporciona multitud de recursos al programador: soporte para todo tipo de dispositivos electrónicos (tarjetas
inteligentes, sistemas empotrados, móviles…), herramientas para trabajar con animaciones 2D y 3D,
aplicaciones web, etc.
- Java SE: Es lo que podríamos denominar un lenguaje de programación estándar ya que proporciona la
sintaxis del lenguaje, el entorno de ejecución de las aplicaciones desarrolladas y un amplio conjunto de
librerías que utilizarán dichas aplicaciones.
- Java ME: Es la edición de Java orientada a la programación de móviles y sistemas empotrados. Este
subconjunto varía naturalmente dependiendo del dispositivo a programar, pues algunos limitan o no soportan
la totalidad de las librerías.
- Java EE: Se trata de un superconjunto que añade a lo anterior más librerías con la finalidad de ampliar las
características de la plataforma, como por ejemplo servicios de autentificación, autorización, etc.
Algunos datos extraídos de la página oficial de Java6 indican que más de 4.500 millones de dispositivos
utilizan la tecnología Java, 800 millones ordenadores y 2100 millones de teléfonos móviles, también hay
3.500 millones de tarjetas inteligentes con Java en su interior.
Para concluir, este lenguaje no solo ha inspirado al resto de lenguajes, si no a varias familias de sistemas
operativos.
C#
C# es relativamente un lenguaje nuevo. Microsoft ha estudiado los lenguajes anteriores como Java y Object
Pascal y ha cambiado algunos aspectos del lenguaje y del entorno de ejecución para mejorar y solucionar los
inconvenientes que presentaban.
Pero C# basa su diseño en lenguajes como C++, Delphi, es decir, que mucha de la sintaxis y diseño
orientado a objetos se tomó de este lenguaje; y, en sus últimas versiones, toma prestado características de
Ruby o de Python, por ejemplo. La comunidad en español de C# lo presenta como:
“Muchos dicen que si Java se puede considerar un C++ mejorado en cuestiones de seguridad y portabilidad,
C# debe entenderse como un Java mejorado en todos los sentidos: desde la eficiencia hasta la facilidad de
integración con aplicaciones tan habituales como Microsoft Office o Corel Draw.”
A pesar de su continua decadencia (ver foto a continuación), el lenguaje C++ sigue siendo uno de los más
utilizados para desarrollar aplicaciones. Si bien es cierto que existen otras alternativas más populares
(Java o C#), cuando se requiere de aplicaciones rápidas y robustas, C++ es el elegido. C++ marcó en su
momento un punto de inflexión con el paradigma de la programación orientada a objetos (POO a partir de
ahora) y en este campo sigue siendo una referencia.
En la actualidad muchos programadores han aprendido la POO con lenguajes que nacieron después que C+
+.
Estos lenguajes presentan una gran variedad de ventajas, pero hay una que destaca sobre el resto, y es que
elprogramador ignora la reserva y la liberación de memoria, pues suele hacerse de forma automática.
Pero esta ventaja puede volverse en nuestra contra, ya que dependemos de la capacidad del lenguaje para
gestionar la memoria de forma rápida y eficaz. Y es ahí donde C++ gana terreno, en aplicaciones que
requieran esta especificación, como en el caso de los videojuegos por ejemplo.
Con C++, el programador tiene la responsabilidad de la gestión de la memoria, y por tanto, se gana
en flexibilidad y eficacia, en contra partida de la sencillez del programa.
Hasta aquí hemos llegado, en el próximo y último volumen os hablaremos de Objetive – C y de las
conclusiones
Y el esperado Objective-C, quizá el nombre sea el menos famoso entre el sector no-técnico. Y razones hay, a
pesar de nacer en la década de los ochenta, no entró en el ranking hasta el 2002, y con posiciones muy
discretas hasta estos últimos dos años. Aquí podéis ver un gráfico.
¿Y por qué este cambio de tendencia? Muy sencillo, la revolución de las aplicaciones para móviles y
tabletas, y en este caso, para iPhone e iPad. Apple, también apuesta por este lenguaje en sus sistemas
operativos Mac OS y iOS.
Sin embargo, a pesar de estar de moda, no termina de extenderse por dos factores: su diseño de
programación orientada a objetos está basado en SmallTalk y no en el popular C++, por lo que a muchos
programadores les parece un lenguaje complicado; y el segundo factor, las herramientas de desarrollo, pues
hay una escasa variedad, y las que hay en el mercado, no son tan potentes como las del resto de lenguajes.
Conclusiones
Como se ha podido comprobar, el descenso de C++ ha marcado a dos líderes en este sector: Java y C. Las
diferencias entre los siguientes candidatos, no son tan amplias, y el siguiente gráfico es una muestra de ello:
Podéis ver todas las estadísticas en TIOBE
Y hasta aquí hemos llegado, esperamos que os haya gustado. Pronto tendréis más noticias sobre nuestro
compañero Javier López.