Algunos lenguajes de programación

6 10 2012

Para todos es sabido que todo ingeniero o estudiante de ingeniería debería, a lo menos, tener el dominio intermedio o básico de algún lenguaje de programación. Si bien es cierto, muchas veces es más práctico y más cómodo encontrar soluciones a partir de software de pago o gratuitos como lo son las hojas de cálculo, que con el tiempo se han vuelto herramientas poderosas y con cada vez más opciones. Sin embargo existen muchas opciones para robustecer estas características mediante el uso de lenguajes de programación asociados a las compañías, como es el caso de Excel con Visual estudio de Microsoft. Esta relación simbiótica nos da luces de que muchas veces un software no contará con un solución que sea expuesta bajo una interfaz gráfica. Es por esto que programar se vuelve algo profesionalmente vital, práctico (a la larga) y en algunas ocasiones divertido.

 Como estudiante de ingeniería civil no especializado en la rama de informática y a lo largo de mis años de estudio, he utilizado varios lenguajes (unos más que otros) y me he hecho una idea de algunos ocupándolos en diferentes tópicos de ingeniería. Por ende intentaré dar algunas luces, fortalezas y debilidades de algunos de ellos.

Fortran.

Para comenzar aprovecharé el impulso del post anterior y daré sólo mi opinión.

Opinión: Salvo algunos aspectos,  debo decir que es un buen lenguaje para iniciarse puesto contiene varias características antiguas sobre la escritura de un programa que con el paso del tiempo fueron quitadas. Personalmente lo encuentro poco práctico y al momento de desarrollar rutinas más complejas puede tornarse engorroso y plano para detectar errores, flaquea en ámbitos como funciones incluidas y librerías (si bien tiene, son pocas). Lo bueno es libre y la rapidez, que en algunos niveles es irrelevante.

Java.

No hay mucho que decir que no se encuentre por montones en  la red sobre las particularidades de este lenguaje de programación de alto nivel. Sus opciones OOP permiten desarrollar aplicaciones y programas informáticos basándolos en técnicas que incluyen conceptos como herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. En cuanto a las funciones matemáticas en Java, las funciones disponibles vienen definidas en la clase Math. Hay muchas funciones disponibles. Se puede consultar la lista completa en la documentación oficial del API de Java

Opinión: Al poco tiempo de utilizarlo me dio la sensación de que es un lenguaje en el que es posible desarrollar casi cualquier tipo de programa o solución informática. Existen librerías, funciones y textos por montones en la red, además de diferentes IDE´s  para desarrolladores. A pesar de no ser un lenguaje complicado, la verdad es que exige un tiempo de aprendizaje considerable, sobre todo en la parte de programación orientada a objetos. Podría decir que al considerar su versatilidad para propósitos tan generales, su principal característica se vuelve una desventaja cuando es utilizado para programar sobre tópicos específicos como el análisis numérico, matrices y otros. Quizás si quieres crear tu universo java y dispones de tiempo considerable para dominar el lenguaje (o cuentas con la amistad o soporte de algún programador) puede darte a largo plazo una buena performance en el ámbito laboral.

Matlab.

Opinión: El otrora conocido como todopoderoso matlab ya no lo es tan así, por una serie de falencias que personas más especializadas en el tema esgriman. Sin embargo es el más efectivo y práctico lenguaje para desarrollar script matemáticos y análisis de matrices que he ocupado, por ende es el que más comúnmente utilizo. Es muy versátil en el análisis numérico y existe mucha bibliografía del tema, posee muchas funciones incluidas y es el lenguaje que aprendí con mayor rapidez debido a su simplicidad. Lo recomendaría para iniciarse y después cambiarse a Octave o Scilab llegando al ámbito laboral, ya que estos si son software libre y conservan muchas de las propiedades de Matlab.

Como confesión debo reconocer que dispongo de una versión ilegal de Matlab, ya que si tuviera el dinero para comprar la licencia tendría que ser dueño de algún centro de investigación o millonario excéntrico, de otra manera dudo mucho que la pagaría.

Nota: En estricto rigor matlab no es un lenguaje como tal sino que es un software que ofrece un IDE de lenguaje M.

Python.

Ya hace un buen tiempo está dando mucho que hablar, Python es un lenguaje multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es libre y de código abierto, viene preinstalado en muchas de las distribuciones actuales de Linux, y también puede ser instalado en Windows.

Opinión: Lo estoy usando hace algún tiempo ocupando el entorno de desarrollo NINJA (apoyando las iniciativas de IDE´s sudamericanos) y la verdad es que personalmente me agradó mucho, de hecho me hizo dejar en stand by a MATLAB. Es muy sencillo de aprender y a la vez subir de nivel en cuanto a sus opciones. Cuenta con muchas librerías, funciones y en cuanto a textos si bien existen muchos, todavía escasean los documentos en español (aunque recomiendo aprender de literatura en inglés para ahorrarse problemas). En cuanto a su uso para tópicos más matemáticos y científicos existen para Python herramientas muy útiles como SciPy, que a su vez cuentan con variadas clases como por ejemplo la clase array para trabajo con vectores.

Para no llenar de links el post hice un pdf  con todos los links importantes con información de cada uno de estos lenguajes.

Links para lenguajes de programación

Tutorial esencial de python y extension numpy, a partir de diferentes documentos (avanzar hacia atrás en las fotos)

http://www.flickr.com/photos/pvargasbello/8190463765/