programming-languages jpg

Qué lenguaje de programación aprender

Ésta es una de las preguntas que te puedes hacer si planeas dedicarte a la informática, sea cursando algún ciclo de formación profesional, la carrera de ingeniero de sistemas o simplemente quieres ser programador, freelancer o trabajando para alguna empresa.

Para empezar hay que decir que si decides emprender algún estudio académico o formación reglada lo más probable es que tengas poco que elegir, pues el lenguaje de programación que primero tendrás que aprender vendrá determinado por el plan de estudios. El cual lamentablemente no siempre coincide con la realidad de lo que se usa en el mercado.

Concretamente hace años atrás en algunas universidades españolas y en la UNED concretamente me consta personalmente, el lenguaje de iniciación era el Modula 2, un derivado de Pascal. En los cursos de formación profesional normalmente era el BASIC. El Modula 2 aparte del ámbito educativo su uso fue nulo y el BASIC a pesar de todos los esfuerzos de Microsoft para profesionalizarlo mediante el dialiecto QBasic y sobretodo Visual Basic, al final siempre ha sido visto como un lenguaje de juguete.

Así pues ¿qué lenguajes son los que realmente se usan y debería aprender quien quiera dedicarse profesionalmente a programar?

En los años 1980 hasta la primera mitad de los 1990 la pregunta era fácil de responder.

Para programar sistemas y desarrollar software para uso industrial o técnico debías aprender el lenguaje C, para programar software matemático y científico el Fortran en la década de los 80 seguía siendo popular, para programar software contable y de gestión COBOL era el estandard de facto. En el ámbito de la programación de software para el sistema operativo MS DOS durante toda la década de los años ’80 el Turbo Pascal fue extraordinariamente popular. Así que al final si ibas a programar tanto para Unix como para DOS tenías que aprender C y luego podías elegir como segundo lenguaje COBOL o Pascal. Por supuesto que había otros lenguajes como el PL-11 y derivados, Ada, Algol, el Fortran mencionado, pero C, COBOL y Pascal eran los estándares del momento.

Hoy con la aparición de la web las cosas se han complicado bastante más, pues aparte de los lenguajes de programación para desarrollar software ejecutable en un ordenador personal, tenemos los lenguajes de la web.

Y aquí hemos de recalcar primero que el HTMLy las hojas de estilo CSS no son lenguajes de programación, pues el HTML es simplemente un lenguaje de formateado de la información y no permite realmente hacer programas.

Precisamente para resolver esta limitación y primero hacer páginas web interactivas y luego para hacer auténticos programas que se ejecutan on line se inventaron Javascript, PHP, ASP y otros lenguajes de script similares.

Así pues hoy la pregunta para quien quiera ser programador es ¿te vas a dedicar a hacer páginas web, programar y configurar servidores web o vas a hacer software para ordenador?

Pero es que con la aparición de los dispositivos móviles  iOS y Android la cosa aún se complica más, pues tanto Android como iOS tiene su plataforma oficial propia con su lenguaje recomendado, (en realidad impuesto).

Así pues vamos a ver tres casos posibles según a lo que uno quiera dedicarse.

Montar y mantener sitios web, gestionar servidores web.

Primero de todo tienes que dominar a la mayor perfección posible el HTML en sus versiones 4 y 5 además de las hojas de estilo CSS.

Luego el Javascript y el PHP. El Javascript se ejecuta en el lado del cliente, o sea, en el navegador, mientras el PHP se ejecuta en el servidor. Frameworks como WordPress, Joomla!, Drupal y muchos más están escritos en PHP. Así que más tarde o más temprano vas a tener que resolver problemas con sitios programados en estos lenguajes. Téngase en cuenta que Javascript y PHP no se usan uno como alternativa de otro, sino como complemento. Así es normal que un framework como WordPress se ejecute del lado servidor como PHP pero envíe al cliente salida en HTML y Javascript para hacerlo más rápido e interactivo en el navegador cliente.

Por otra parte todos los frameworks y páginas interactivas, tiendas online y similares al final terminan usando una base de datos que suele ser del tipo SQL como MariaDB o MySQL. Tanto PHP como Javascript tienen funciones para crear, gestionar y acceder a bases de datos con el lenguaje SQL. Así que aunque también vas a tener que dominar la creación y mantenimiento de bases de datos relacionales como MySQL y el lenguaje SQL.

Quiero hacer programas para ordenador y dispositivos móviles.

Si te vas a centrar en Windows primero aprende C, luego C++ y luego C# mientras te vas familiarizando con el entorno de desarrollo oficial de Windows, Visual Studio. Podrías empezar directamente con C#, pero mi recomendación es que para evitar ciertas dudas sobre el por qué de las cosas, primero aprendas C.

Lo bueno es que una vez aprendas C y C++ estarás en perfectas condiciones para programar no sólo software de Windows sino también Linux. Lo único que tendrás que hacer es familiarizarte con los entornos de desarrollo alternativos a Visual Studio en Linux como Glade o Qt Designer. Que por cierto, este último es multiplataforma y también está disponible para Windows.

Hay no obstante dos alternativas: Java y Python.

Lo cierto es que sobre Java y Python habría que dedicarles un artículo separado. Tanto Java como Python no son lenguajes compilados a código máquina como C y C++ sino que se precompilan en una especie pseudocódigo ensamblador o bytecode que luego es ejecutado por un intérprete o máquina virtual, haciendo de esta manera los programas fácilmente portables de un ordenador con un sistema operativo a otro.

Python ha desplazado a BASIC como lenguaje de script y de enseñanza, pero como es mucho más de lo que prentendió ser BASIC, lo cierto es que en muchos casos se usa como alternativa a Java e incluso a C++ en los casos en los que la velocidad de ejecución de los programas no es extremadamente crítica.

Python actualmente ha reemplazado a Pascal como lenguaje de enseñanza y además se usa en trabajos de investigación sobre inteligencia artificial, minería de datos, estadísticas, etc. Con librerías como PyQT y Tkinter es posible diseñar interfaces gráficas de usuario. Es uno de los lenguajes en los que hay más demanda de programadores y tiene un futuro muy prometedor.

Java por su parte es el lenguaje nativo en el que se programan las Apps de Android y tal como he comentado, gracias a su ejecución entorno a su máquina viertual hace que una vez escrito un programa en Java pueda ser ejecutado en sistemas operativos distintos sin modificación o con ligeras adaptaciones. Junto con Python es uno de los lenguajes en los que se demanda una mayor cantidad de empleos. Si quieres programar para Android, debes aprender Java y su entorno integrado de desarrollo Android Studio.

Si vas a programar para iOS su lenguaje oficial es Swift y en los ordenadores Apple Objective C.

 

Licencia Creative Commons
Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial 4.0 Internacional.

Copyright Rafael Fontanet Buzón