Jump to content

 
Photo

Programming Languages?

- - - - -

  • Please log in to reply
7 replies to this topic

#1
angel.spatial

angel.spatial

    Contributor

  • Validated Member
  • PipPip
  • 43 posts
  • Gender:Male
  • Location:Springdale, AR
  • United States

Hey GIS NADs! :lol:

I know that the GIS field is demanding more programmers these days and I was wondering:

What programming languages are you required to know/learn?

Which would you recommend is ABSOLUTELY necessary?

Angel
Share/collaborate GIS data for FREE: data.almostaccurate.com

#2
Hans van der Maarel

Hans van der Maarel

    CartoTalk Editor-in-Chief

  • Admin
  • PipPipPipPipPipPipPip
  • 3,881 posts
  • Gender:Male
  • Location:The Netherlands
  • Interests:Cartography, GIS, history, popular science, music.
  • Netherlands

Hey GIS NADs! :lol:

I know that the GIS field is demanding more programmers these days and I was wondering:

What programming languages are you required to know/learn?


Depends on what GIS you are going to use primarily. C++/C#, VB.NET, Python, TCL are some of the more popular ones. FME Workbench counts as programming in my book :rolleyes:

Which would you recommend is ABSOLUTELY necessary?


None... Well... that depends on what you want to do. If the out-of-the-box functionality does what you want to do, then there's little need to look at programming.

I think it's more important that you're able to break down a complex problem into the little steps that need to be taken in order to solve the problem. Once you've got that all worked out, any programming language that you're reasonably familiar with will work for you.
Hans van der Maarel - Cartotalk Editor
Red Geographics
Email: hans@redgeographics.com / Twitter: @redgeographics

#3
frax

frax

    Hall of Fame

  • Associate Admin
  • PipPipPipPipPipPipPip
  • 2,308 posts
  • Gender:Male
  • Location:Stockholm, Sweden
  • Interests:music, hiking, friends, nature, photography, traveling. and maps!
  • Sweden

I think it is also related to your work flow, and what type of work you do. If you are repeating tasks a lot, there is a point in automating them (which does not necessarily mean programming).

I think it is also good to know the basics of some programming, that will make it much easier to learn any other.
Hugo Ahlenius
Nordpil - custom maps and GIS
http://nordpil.com/
Twitter

#4
patdunlavey

patdunlavey

    Contributor

  • Validated Member
  • PipPip
  • 27 posts
  • United States

I'd say that regardless which programming language you find most appropriate for your GIS work and the particular application(s) you use, having facility in SQL will be quite valuable.
Pat Dunlavey
www.pdcarto.com

#5
P Riggs

P Riggs

    Key Contributor

  • Validated Member
  • PipPipPip
  • 54 posts
  • Gender:Male
  • Location:Fort Collins, Colorado
  • Interests:Playing music; studying French language, culture, and history; listening to old time radio; learning and playing accordion; hiking, though I don't get to do much now with having young children, will change in the future; fly-fishing, same as hiking; reading
  • United States

SQL and Python will get you a long way. They are relatively easy to learn and work in any OS environment (Python is an absolutely gorgeous language). All my spatial models these days are written with a mix of these two. Python integrates well with open GIS tools of GDAL/OGR for data reading from an SQL store, Shapely for vector manipulation, and Numpy for grid/image manipulation. Pyproj and OSR that comes with OGR projects data. ArcGIS also supports Python. There is direct access of databases such as SQLite and MySQL from Python using SQL query strings. And you can use Python for web mapping.
Philip Riggs
Decorative-Maps.com

#6
angel.spatial

angel.spatial

    Contributor

  • Validated Member
  • PipPip
  • 43 posts
  • Gender:Male
  • Location:Springdale, AR
  • United States

Great!

I know I want to learn at least a couple of programming languages. Python seems to be the first one I will tackle.

I am mostly familiar with ESRI ArcGIS, and I want to be able to program/automate tasks in there (like scripts).

Oh, I also want to be able to "tinker" with open source software to tailor to my needs.

What about languages like C++ or C# or even Java?

Angel

Edited by angel.spatial, 22 March 2008 - 12:39 PM.

Share/collaborate GIS data for FREE: data.almostaccurate.com

#7
loximuthal

loximuthal

    Key Contributor

  • Validated Member
  • PipPipPip
  • 97 posts
  • Gender:Male
  • Location:Bowie, MD
  • United States

In our shop we use principally SQL and Perl. The SQL is necessary to interact with our Oracle database, and the Perl was selected to build most of the server-side of our home-grown application because when we started that was a language known to a few of us, Perl still works, even if people on the outside keep telling us Perl is a dead language. We considered Java and Python, but since nobody in our branch knew them, that would have increased the learning curve and delayed deployment of our system.

As with so much in this world, the "best" choice is not necessarily the best one to go with. :rolleyes:
Andy McIntire
US Census Bureau

#8
P Riggs

P Riggs

    Key Contributor

  • Validated Member
  • PipPipPip
  • 54 posts
  • Gender:Male
  • Location:Fort Collins, Colorado
  • Interests:Playing music; studying French language, culture, and history; listening to old time radio; learning and playing accordion; hiking, though I don't get to do much now with having young children, will change in the future; fly-fishing, same as hiking; reading
  • United States

Great!

I know I want to learn at least a couple of programming languages. Python seems to be the first one I will tackle.

I am mostly familiar with ESRI ArcGIS, and I want to be able to program/automate tasks in there (like scripts).

Oh, I also want to be able to "tinker" with open source software to tailor to my needs.

What about languages like C++ or C# or even Java?

Angel


I've never tried C# or Java, although I have used ActionScript in Flash and it is based on the same specification of Java. It isn't a bad language. But Python is just more enjoyable to work with. I think you should choose a language and learn it. Once you know your first language, the next one is easier because a lot of the same controls and design problems are the same, just the syntax changes. What Python gets you is not worrying about the lower level things you will have to worry about in C++. Java similarly presents a higher level view. In C or C++ get ready to learn about pointers, static typing (i.e. you must know ahead of time if variables are integer, real, text etc), memory management, etc. Great for maximum program efficiency, but you will end up spending a lot more time programming and debugging. There are people who like to tinker with their car engines. I prefer to just drive. This is where Python comes in. It manages memory itself, has dynamic typing (you assign a value to a variable, Python doesn't care what it is and handles typing for you), and is completely object-based. I once wrote an anisotropic cost spread algorithm in C and it took a while, a lot of code and debugging. I needed the function again last year and wrote it in Python using Numpy. Wasn't as fast, but took a very short time to write, did more, and used a lot less code. At some point I will increase its efficiency by using Pyrex or Cython, gaining efficiency without having to drop down to C or C++.

If you want to tinker, use open source software to open/save files and build upon the analyses tools. Do everything else in Python (or whatever language you choose). In GIS, a data store is a data store. No need to reinvent the wheel.

Hope this gets you on the road.
Philip Riggs
Decorative-Maps.com




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

-->