04
Feb

0
Lenguajes de programación o paquetería

Lenguajes de Programación vs Paquetería (Software comercial)

Los métodos numéricos, como hemos visto, son algoritmos que se siguen para llegar a la solución de una o muchas ecuaciones.

La mayoría de los algoritmos son iterativos, es decir, llevan a cabo muchas veces los mismos pasos hasta llegar a la solución, la herramienta ideal para hacer éstos cálculos de manera más rápida y sin cometer errores de sustitución o valores incorrectos, es sin duda la computadora. La computadora como herramienta de cálculo es una de las más poderosas, si se sabe usar. Tenemos dos alternativas para usar una computadora, una es usar un lenguaje de programación que automatizará las tareas del algoritmo y otra la de usar un paquete de computadora o software especializado.

Hablemos primero de los lenguajes de programación, hay una gran variedad de posibles lenguajes de programación que podemos usar, es obvio que deberíamos usar un lenguaje de los clasificados como imperativos donde es posible indicar cada paso del algoritmo hasta llegar a la solución. Descartamos entonces los declarativos que utilizan mecanismos de inferencia para llegar a la solución. El siguiente paso es seleccionar el paradigma de programación, que puede ser funcional u orientado a objetos. Para aquellos que no son programadores profesionales puede aplicar el paradigma funcional, dado que lo único que se pretende es utilizar las capacidades de cómputo y no es necesario conocimientos profundos de programación ni de sistemas. Los lenguajes orientados a objetos son mucho más poderosos y se pueden construir no solo programas simples sino aplicaciones mucho más robustas y estructuradas que soporten la herencia, polimorfismo y crecimiento modular e incluso comunicarse con otros sistemas usando arquitecturas como SOA, es mucho más allá de la necesidad primaria de programar un sencillo algoritmo, así que nos quedamos con el paradigma funcional y en algunos casos usaremos si algunos conceptos de herencia, sobre carga de funciones o polimorfismo básico para lograr reproducir el algoritmo de manera más eficiente. Algunos lenguajes orientados a objetos se pueden usar como funcionales, tal es el caso de Fortran, C#, C++, Pascal, Java o Python. De cualquier manera sí se requiere conocer conceptos básicos como la sintaxis, tipos de datos, estructuras, arreglos, flujos y el propio entorno de desarrollo (EDI-Entorno de Desarrollo Integrado) para poder llegar a codificar un algoritmo por sencillo que éste sea. Como en casi todo, se tendrán pros y contras. El inconveniente de usar un lenguaje de programación para codificar los métodos numéricos es que se debe invertir mucho tiempo para aprender los paradigmas de programación, desarrollar el pensamiento algorítmico y abstracto de la programación, además de la sintaxis y el EDI. Pero no todo es difícil y escabroso, también se tienen pros y en ocasiones vale la pena esforzarse para aprender un lenguaje de programación cuando no es nuestro principal perfil. El beneficio es que se puede programar todo aquello que se requiera, podemos construir desarrollos a la medida que satisfacen el 100% de nuestras necesidades.

La otra opción es utilizar paquetería que ya está programada, Cuenta con los programas u opciones que aplican el método numérico que nos interesa, si es así, entonces ésta la mejor opción a seleccionar, nos ahorramos tiempo y mucho esfuerzo, simplemente hacemos uso de sistema para llegar a la solución. Parece miel sobre hojuelas, pero como dije antes, todo tiene pros y contras, las contras en esta opción es que es posible que el método numérico no se tenga dentro de las opciones del sistema, o que requerimos una variante que la aplicación no soporta, en este caso no podremos usar la aplicación. Otra importante contra es que debemos pagar por las licencias del software que en algunos casos no justifica el precio por el beneficio que vamos a obtener si solo vamos a usar unos cuantos métodos. Hay una tercera opción que combina las dos anteriores y son los paquetes que además de contar con las opciones de métodos ya construidos, cuentan también con su propio lenguaje de programación para crear tus propios programas para complementar y personalizar los métodos que ya tienen, en éstos casos también se tiene que pagar por la licencia de éstos software. Es el caso de Matlab, Mathcad, Maple, Mathematica, VBA o macros de Microsoft Excel. Como vemos, lo más conveniente es aprender uno o dos lenguajes de programación porque tarde o temprano nos veremos en la necesidad de programar un algoritmo para poder usar esa herramienta tan poderosa que es la computadora.