Lenguajes de programación para GIS y sus tendencias de crecimiento [2019]

Lenguajes de programación para GISSeguramente en más de una ocasión has pensado que deberías especializarte, si trabajas con GIS habrás visto más de una oferta de empleo en la que se requieren conocimientos de programación, y tanto por ascender en el mundo profesional, como por tus propias necesidades GIS lo habrías necesitado.

Aún si eres profesional informático y trabajas con GIS te habrá surgido las misma duda ¿Cuál es el lenguaje de programación más adecuado para trabajar con GIS?

Lógicamente, no hay una respuesta única, pues el mundo del GIS es tan amplio como las posibilidades de acceder a él desde la programación. Pero en función de tus conocimientos de partida, de tus ganas de aprender y de tus necesidades, deberás aprender uno u otro lenguaje.

Aquí te presentamos un listado de los lenguajes de programación más populares en el mundo del GIS ordenados por su utilización entre los desarrolladores.  La utilización la hemos obtenido de Stack Overflow Trends tool, esta herramienta realiza un seguimiento del interés en los lenguajes y tecnologías de programación, en función del número de preguntas mensuales que se hacen en Stack Overflow.

1. Python

Podemos afirmar que Python es el principal lenguaje de programación y además el de mayor crecimiento.

Python es un lenguaje de scripts, orientado a objetos y de alto nivel (está más cerca del usuario que de la máquina). Mediante Python podemos automatizar las tareas de geoprocesamiento, ahorrando mucho tiempo y mejorando la precisión de nuestros resultados.

De Python destaca su facilidad de uso sin menoscabar su robustez. Fue un gran acierto por parte de los principales GIS de escritorio como ArcGIS (con la ArpPy), QGIS (con PyQGIS) o gvSIG la introducción de Python.

Con el tiempo se ha vuelto omnipresente, ofreciendo soluciones para administrar datos, realizar mapas, análisis, administración de sistemas y el SIG Web. Mediante la API de Python para ArcGIS podemos hacer uso de Python y crear flujos de trabajo a través de la web, extendiendo su uso fuera del GIS de escritorio.

Como se puede ver en la imagen anterior la popularidad de Python en los últimos años ha ido en aumento y cada vez son más los usuarios de estos programas, que de modo sencillo, aprenden Python y se benefician de su utilización.

A finales de 2018 las peguntas relativas a Python superaron por primera vez las de JavaScript.

2. JavaScript

JavaScript (JS) es el segundo lenguaje de programación más importante. ¿Por qué? Porque en él se programan las aplicaciones para la web y en consecuencia es el programa en el que se han creado las librerías webmapping.

Los lenguajes necesarios para crear aplicaciones webmapping son HTML, CSS y JavaScript, los tres van de la mano. Así que aprender HTML, CSS y JavaScript es el segundo must have.

Podríamos decir que la relación entre JavaScript y los mapas web es análogo a la relación existente entre Python y los SIG de escritorio.

Utilizado por los principales clientes de mapas web, tanto privativos como la API de Google Maps o la API JavaScript de ArcGIS y los libres como OpenLayers, LeafletMapBox GL JS.

JavaScript alcanzó su máximo apogeo entre 2015 y 2017, año en el que se ha visto superado por Python, ya que también es posible crear mapas web con Python.

jQuery ha sido una librería muy popular durante varios años, pero ha cedido terreno frente a los nuevos frameworks como Node.js, React.js o Angular.js.

3. Java

Java es muy popular en la programación web y es la elección de muchos programadores. Es uno de los contendientes en los lenguajes más populares para desarrollar aplicaciones GIS open source, utilizado en GeoServer y en proyectos JTS.

Java es un lenguaje muy difundido, y es el más impartido en las universidades (su uso es mayor en invierno y en verano disminuye). Tiene mucha potencialidad y aplicación, sin embargo es complicado para noveles en programación, si no sabes programar te recomendamos que comiences con otros lenguajes más amigables y además en los últimos años ha caído su utilización, por lo que no parece que sea un programa que vaya a experimentar un uso masivo

4. C# 

C# fue la respuesta de Microsoft a Java, y es el buque insignia para .NET. Así que, si vas a iniciarte en la creación de Add-ins  para ArcGIS, probablemente sera la mejor opción, aunque es un lenguaje en decadencia, aun se realizan muchas consultas relativas a su uso.

5. PHP

PHP (Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML.

Supone una de las mejores maneras de diseñar un sitio web interactivo y, por tanto, muy popular. PHP tiene gran parecido con C o Perl, lo que supone una curva corta de aprendizaje para programadores. Sin embargo PHP fuera de la programación web no tiene utilidad.

6. R

R es un entorno de software libre y lenguaje de programación para realizar análisis estadístico. Se trata de uno de los lenguajes de programación más utilizados en investigación por la comunidad estadística.

Las tecnologías utilizadas para data science o ciencia de datos han mostrado un crecimiento particularmente rápido en los últimos años:

Ofrece multitud de opciones, herramientas y bibliotecas para hacer análisis estadístico fácil y eficaz. R ha crecido en los últimos años gracias a su código abierto. Es un lenguaje basado en la comunidad que proporciona poderosas herramientas para procesamiento, manipulación, visualización y publicación.

R se integra en un SIG y es especialmente útil para explotar grandes conjuntos de datos (minería de datos).

Aquí puedes leer un poco más sobre R y GIS: Qué es R y su relación con los Sistemas de Información Geográfica.

7. SQL

SQL se utiliza como acceso a bases de datos y lenguaje de control. SQL está en el corazón de muchas operaciones de SIG.

El conocimiento de la gestión de bases de datos relacionales (RDBMS) es un must. Y por lo tanto debes saber SQL (lenguaje de consulta estructurado) para dominar bases de datos. La base de datos abierta más potente y avanzada del mercado es PostgreSQL y PostGIS es el componente espacial de esta base de datos.

Como podemos ver en el gráfico inferior, SQL es un lenguaje que se ha mantiene muy estable, ya que es un lenguaje bastante extendido. Es un gran ejemplo de un lenguaje que ha sobrevivido durante mucho tiempo. ¿Por qué? En primer lugar, es un lenguaje de declaraciones en lugar de procedimientos, es decir, las sentencias SQL dicen lo que quieres que suceda, no cómo quieres que suceda. SQL es un lenguaje relativamente sencillo, tiene pocas instrucciones y éstas funcionan con bastante lógica. Además muchas construcciones te sonarán ya, porque la mayor parte de las sentencias de selección en GIS son de tipo SQL.

8. CSS

CSS (Cascading Style Sheets) es un lenguaje muy utilizado por los diseñadores web y en los últimos años se está incorporando en el mundo GIS. La edición de estilos en clientes SIG como Tilemill se realiza utilizando CSS. Otro ejemplo es el editor de estilos en GeoServer mediante el uso del complemento CSS para GeoServer.

ciudaddes_CSS

El porcentaje de consultas en los foros de Stack Overflow es elevado tanto para las etiquetas CSS, como HTML, aunque su pico se alcanzó entre los años 2014 y 2016. En los últimos años ha disminuido su uso:

9. C++

Es un lenguaje de programación de sistemas que nació con la intención de extender C, sin embargo el aumento de su complejidad complica la difusión de este lenguaje.

Muchos de los más importantes software de GIS se han escrito en C++ (ArcGIS, GRASS y el todopoderoso QGIS). Aunque no será un lenguaje que se extinguirá a corto plazo, tal y como vemos en el gráfico inferior su popularidad va decayendo desde el año 2009.

10. C

C es el abuelo de la familia. Es un lenguaje fuertemente tipado y aunque de medio nivel, con muchas características de bajo nivel, es decir, más cercano a la máquina que al usuario. Muchos proyectos GIS open source están escritos en C, por ejemplo, la impresionante librería GDAL que utilizas aunque no te das cuenta.

Cuando se necesita el máximo rendimiento se utiliza C, Pero no es el recurso más atractivo cuando nuestros requerimientos no son tan complejos.

11. Ruby

Se trata de una lenguaje antiguo que se hizo popular hasta el año 2015 para aplicaciones web gracias a GeoCommons y otros sitios interesantes de neogeografía como OpenStreetMap (más info aquí). La potencialidad de Ruby está en la agilidad en el manejo de bases de datos.

Sin embargo viendo la evolución de las consultas sobre Ruby no parece que sea un lenguaje que haya venido para quedarse, pasará a la lista de los olvidados en poco tiempo…

12. Visual Basic .NET

VB.Net es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el framework .NET. Su introducción resultó muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es retro compatible con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de Visual Basic, facilitando así el desarrollo de aplicaciones más avanzadas con herramientas modernas.

Es básicamente una sintaxis alternativa de C# con el que también se pueden crear Add-ins para ArcGIS. Que nadie se lleve a engaños, nada tiene que ver con VBA, empezando porque VB.Net es un lenguaje orientado a objetos de verdad.

Flex, Silverlight, Avenue, AML, y VBA para ArcObjects

No podemos cerrar este post sin hacer una mención a los «caídos en combate». Fue bonito aprender con Avenue, y muy triste que desapareciera. Si además de trabajar con Avenue llegaste a hacer macros con AML,  es que ya tienes una edad… 😉 . Tendrás que asimilar que VBA también se acabó.

Flex (de Adobe) tiene la reputación de ser una de las maneras más fáciles para crear un RIA (Rich Internet Application). La API Flex de ESRI fue un intento por parte de ESRI de crear mapas web. Microsoft Silverlight permite crear aplicaciones atractivas e interactivas para clientes GIS Web y de escritorio. La API de ArcGIS para Microsoft aprovecha estas características. Flex y Silverlight son APIs para crear aplicaciones webGIS y no lenguajes de programación.

Si no lo has hecho aún, si nunca has aplicado la programación en GIS entonces eres un usuario GIS, pero no un experto GIS. Usuarios hay muchos, expertos menos. Busca la línea de trabajo que más te interese, a la que más aplicación puedas darle (visores, herramientas, aplicaciones Desktop…) y especialízate.

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

8 comentarios en “Lenguajes de programación para GIS y sus tendencias de crecimiento [2019]”

  1. Hola buen día, voy iniciándome en esto de los SIG, y hay un proyecto en el que participo en el cual se piensa realizar un SIG web, las operaciones son muy básicas según lo poco que sé: interseccion, clip, calculo de areas, etc.

    Qué me recomiendan utilizar?
    Esta aplicacion ya la hice un tanto rústica pero en una aplicacion Desktop, y la realicé con MapWinGIS, pero no encuentro algo de MapWinGIS para web.

    ¿Me pueden sugerir algo?
    Tengo experiencia en lenguajes como: C# y Java, no tengo problemas en aprender algo nuevo.
    Saludos.

  2. Creo que para un programado que se está iniciando , ha faltado un punto de enfoque muy importante la tendencia del mercado y la actualidad de los lenguajes.

    En primer lugar Desde el Punto de vista de Servidores y Super Compudadoras, en la ultima decada los sistemas Linux, han superado a otros sistemas en numero de servidores.
    En la mayoría de estos servidores los lenguajes son C++ , C , Python y Java
    POr lo que una persona que se forma en C# ( especifico de una plataforma Microsoft ) queda fuera de este mercado.

    Otro punto interesante es la industria de los video juegos, todavía no hay ninguna que se dedique a crear videojuegos en .Net ( es la industría que mas ha crecido en los ultimos años )

    Por ultimo, el Lenguaje C++ está en constante evolución, y ha sido creado para simplificar, abstraer y hacer universal C. No solamente no se extinguirán sino que estarán ahí cuando .Net se quede obsoleto.

  3. Que tal mira en la empresa tiene licencias de ESRI y quieren hacer un atlas pero yo no tengo conocimientos de programación me podrías horientar que necesito aprender para poder desarrollar una aplicación en la web con esri

    • Hola Mark,
      Para generar un ATlas puedes utilizar Data Driven Pages. Generar series de mapas con Data Driven Pages es una tarea sencilla en la que invirtiendo poco tiempo se obtiene un buen resultado. Sin embargo, esta barra de herramientas ofrece opciones muy cerradas para el usuario que a veces se convierten en limitaciones. Estas limitaciones se superan con la utilización de Python sobre Data Driven Pages. Con el módulo mapping de la ArcPy de ESRI se accede al objeto dataDrivenPages, a sus propiedades y a sus métodos. Si quieres aprender a automatizar tus colecciones de mapas con Python ahora lo tienes muy fácil, este es uno de los temas que se imparte en nuestro curso Python para ArcGIS. Saludos!

  4. Gracias hermano por tu bendita recomendación, Dios te cuide y te dé mucha vida y salud para que sigas apoyando a vivir en un mundo más bueno y de hermandad. Estoy iniciando como independiente en QGIS, podría
    en algún momento solicitar orientación de tu parte ?

    ¡ Muy agradecido por tu amable atención !

    Tito José Rosendo C.

Los comentarios están cerrados.