ACERCA DE LOS LENGUAJES DE PROGRAMACIÓN

Marta Campos - Redactora

Hoy compartimos un artículo muy interesante referido a lenguajes de programación dirigido a estudiantes universitarios y profesionales, cortesía de NEOTEO ABC.

Cada lenguaje de programación fue diseñado, originalmente, para un propósito específico. Por este motivo, tiende a promover una forma de “atacar” los problemas de manera muy propia, muy particular y del mismo modo, esa “manera muy propia
es llevada adelante en la solución de un problema. La comprensión de un
sólo lenguaje, promueve soluciones que sólo se acercan a un problema
desde una sola perspectiva.
Saber varios, te permitirá mirar el problema desde una variedad de
perspectivas, donde podrás comparar entre múltiples opciones de
desarrollo y  la solución para el problema podrá ser seleccionada como
la más natural, sencilla y eficiente.


Imagínate, por ejemplo, que todo lo que tienes en tus manos es un
martillo. En este caso, tanto los clavos como los tornillos se
insertarán siempre bien con ese martillo. Porque aprenderás a hacer eso:
a utilizar ese martillo para resolverlo todo. Sin embargo, si también tienes un destornillador, entonces tendrás una solución alternativa para la inserción de los tornillos. De este modo entonces, podrás seleccionar la mejor herramienta
para cada tarea en particular. De mismo modo, los lenguajes de
programación están diseñados para resolver cualquier clase de problemas
mediante una metodología específica, cada uno alentando a los
estudiantes (como tú) a mirar el problema desde una perspectiva
particular.
FORTRAN, por ejemplo, fue diseñado para
ayudar a resolver problemas matemáticos. Puede ser un lenguaje ideal a
utilizar para la solución de un problema puramente matemático.
COBOL fue diseñado para ayudar en la forma de almacenamiento de los datos requeridos por cualquier tipo de negocio y su manipulación.


La solución de problemas suele requerir el conocimiento de varios sistemas de programación

Como hemos visto en le Curso .NET y C++ de Programación el lenguaje C (originalmente) fue creado para ayudar en la implementación de sistemas operativos (UNIX)
y, además de permitir construir aplicaciones específicas, tiene
características particulares que le permiten tener acceso o manipulación
del hardware que posee el sistema de proceso donde es utilizado. C + +, por su parte, fue diseñado para resolver problemas específicos dentro del lenguaje C, con el agregado de permitir el soporte programación orientada a objetos.
Es decir, posee una mezcla de capacidades que permiten resolver
problemas además de brindar un apropiado apoyo metodológico. El lenguaje de programación Ada
tiene como objetivo proporcionar un funcionamiento fiable, con
particular énfasis en las áreas de seguridad, donde se pueda tener una
rápida escalabilidad y facilidad de mantenimiento. El lenguaje Java
fue desarrollado para proporcionar (también) apoyo metodológico
orientado a objetos y a una sencilla portabilidad. Los lenguajes de Script están,
en general, diseñados para permitir soluciones muy rápidas a problemas
pequeños. De este modo, la lista de lenguajes de programación, y sus
características propias, se podría expandir hasta ocupar toneladas de
caracteres. Sin embargo, lo que el artículo intenta reflejar es que aprender en forma eficiente una variedad de lenguajes de programación,
te permitirá a ti y a cualquier estudiante, analizar las ventajas y/o
desventajas de cada uno, a la hora de resolver un problema específico.


Cada lenguaje de programación posee herramientas óptimas para obtener soluciones eficientes.

Un ejemplo muy sencillo de expresar este pensamiento, habla de las listas de elementos dentro de un programa (por ejemplo, un listado con todos los microcontroladores que posees).
En el universo posible de soluciones a un problema, podríamos
considerar a todas las listas como un conjunto de objetos estáticos que
debe tener un número fijo de elementos, o bien como objetos dinámicos
que no tienen límites de cantidad. Cualquiera de estas elecciones podría
ser (o no) una solución natural para el problema. Por ejemplo, las
listas estáticas requieren que el número máximo de elementos se conozca
de antemano. Si el número de elementos es un valor fijo durante toda la
ejecución del programa, la cantidad de almacenamiento necesaria y
utilizada, para manipular esta información, será invariable y estará
disponible de forma fiable, ya que tendremos un conocimiento previo de
su dimensión. Sin embargo, si el número de artículos (o elementos de la
lista) no se conoce de forma previa, o sufre variaciones durante la
ejecución del programa, el programador tendrá que seleccionar un tamaño
máximo que quizás sea mucho más alto que el número probable de
artículos. Así, el espacio de almacenamiento puede ser inútilmente
gastado en la asignación de una variable demasiado grande, sólo por
prevención de errores.

Vale decir entonces que, las listas dinámicas “se crean en tiempo de ejecución”.
Si el número total de elementos que se almacenan no se conoce de forma
previa, quizás ésa sea la manera ideal de resolver y trabajar el
problema. Sin embargo, por su propia naturaleza, las listas dinámicas
pueden crecer en tiempo de ejecución y por lo tanto, los recursos que
necesitan siempre son desconocidos y quizás se produzca una condición de
error, si la memoria disponible se agota durante la ejecución del
programa. Este inconveniente, en ocasiones, puede ser  imposible de
demostrar antes de la ejecución del programa, especialmente para los
sistemas integrados con capacidad de memoria limitada, como puede ser un
microcontrolador. De este modo, podemos ver que una simple lista de
componentes puede originar problemas si los lenguajes que creemos dominar en forma sólida, no tienen la posibilidad de ofrecernos las herramientas elementales para realizar el trabajo.

Los lenguajes de programación deben
aprenderse en forma eficiente para acceder a soluciones rápidas y
eficaces

Como hemos visto en el Curso PHP y SQL de Programación en Madrid los lenguajes de programación, por lo tanto, deben considerarse en forma análoga a una caja de herramientas.
Cada lenguaje es una herramienta que ayudará a resolver un tipo de
problema. Al comparar la solución que ofrece cada herramienta, un
estudiante puede seleccionar entre estas soluciones y decidir cuál es el
mejor método, para resolver el problema en cuestión. Como mencionamos
al comienzo, el martillo se utilizará para el clavo y el destornillador
para el tornillo. Este ideal de selección de la mejor solución para cada
problema, sólo estará disponible
si un estudiante ha estado expuesto a múltiples formas de ver el problema, teniendo la posibilidad de optar por múltiples herramientas de programación. Los estudiantes deben tener la comprensión de una amplia variedad de lenguajes.
De este modo, encontrarán soluciones a problemas de diferentes áreas
contando con una amplia variedad de herramientas que necesitarán para
triunfar en la vida, después de la universidad. 

FUENTE: NEOTEO

Deja un comentario