Lenguajes de programación para GIS

Entrada actualizada el 29 de septiembre de 2021

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 y tecnologías más populares en el mundo del GIS, ordenados por las más populares entre los desarrolladores, según una encuesta realizada por  Stack Overflow  en mayo de 2021:

La popularidad de distintas tecnologías, basada en una encuesta de Stack Overflow en mayo de 2021: https://insights.stackoverflow.com/survey/2021#most-popular-technologies-language-prof

1. JavaScript

JavaScript (JS) es uno de los lenguajes de programación para GIS más populares y utilizados. ¿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 un 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.

2. HTML / CSS

HTML y CSS son también lenguajes de programación para GIS muy utilizados.

(Lenguaje de Marcas de Hipertexto, del inglés HyperText Markup Language) es el componente más básico de la Web. Define el significado y la estructura del contenido web. Cada página web que ves está escrita en un lenguaje llamado HTML. Al igual que cualquier otro lenguaje, tiene su propia sintaxis (reglas para la comunicación).

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, que se realiza de forma sencilla utilizando el complemento CSS para GeoServer.

ciudaddes_CSS

3. 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 superior 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.

4. Python

Podemos afirmar que Python es el lenguaje que mayor crecimiento está experimentando.

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. Python es otro de los lenguajes de programación para GIS.

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.

5. Node.js

Node.js es un entorno de desarrollo y ejecución de aplicaciones JavaScript. Podemos simplificar la definición de Node diciendo que es “JavaScript en el servidor”. Node crea un entorno de desarrollo modular.

Si trabajamos con OpenLayers en entornos de producción se aconseja trabajar con node.js. Los módulos de OpenLayers son las partes (clases) de las que se compone. El desarrollo en módulos permite utilizar solo aquellas partes de la librería que nos interesan en nuestro proyecto concreto, prescindiendo del resto, lo que hace la aplicación más ligera. En nuestro curso online desarrollo de aplicaciones web mapping trabajamos de esta forma con OpenLayers.

6. 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

7. 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.

8. 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.

9. 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.

En nuestro curso de webmapping interactivo, utilizamos PHP para realziar la conexión con las bases de datos. Introducción a las aplicaciones web mapping del lado del servidor con Leaflet, MySQL y PostGIS.

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. 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.

12. MATLAB

MATLAB es un lenguaje de computación numérica que se utiliza en el mundo académico y en la industria. Se trata de un lenguaje de programación para realizar ciencia de datos.

13. 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.

14. 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.

Conclusión

Hasta aquí nuestro listado de lenguajes de programación para GIS.

Si no lo has hecho aún, si nunca has aplicado estos lenguajes de programación para GIS entonces eres un usuario GIS, pero no un experto GIS. En esta entrada puedes ver la diferencia entre técinico GIS, analista SIG, consultor y desarrollador GIS.

Busca la línea de trabajo que más te interese, a la que más aplicación puedas darle (visores web de mapas, herramientas, aplicaciones Desktop…) y especialízate.

Let’s connect!

Date de alta en nuestra newsletter y te enviaremos GRATIS el ebook que te ayudará a impulsar tu perfil GIS:
Vitaminas MappingGIS

Tan solo 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»

  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.