I currently use python for GIS scripting in arcgis and image processing using GDAL library. Now, I want to improve my programming skills for GIS application development both for desktop as well as internet applications using either Java or .net. I am a bit confused at this moment which will be better for learning as well as better scope for industry jobs. Your suggestion will be highly appreciated.

Cheers, Rodney


The answer to this is probably somewhat subjective depending on what environment or platform you are using. My approach is usually to look at the project and choose what works best for each situation. Generally, I lean towards .NET for ESRI based projects and Java for open source / other solutions. My experience has been that as long as you know how to program in general, it’s not so much the language or syntax that slows you down, it’s learning the different APIs and getting them to do what you need.

In your case, if you know what platform you’ll be using or would like to use, concentrate on the language that best fits. Java and .Net are both widely used in the industry and have a lot of support for getting started. Also, Java and C# for .Net are somewhat similar syntactically, so starting with one over the other won't necessarily hurt you and could allow you to switch over down the road with a smaller learning curve if your needs change.

My two cents.

  • +1. Plus learning the associated tools and procedures (source control, IDEs, debugging, testing) takes more time than writing code – geographika Feb 23 '11 at 19:55

.NET has a better IDE (Visual Studio 2010) which is the most important thing if you are beginning, and I think more industry jobs.

  • +1 for mentioning VS, it's second to none in terms of development tools. – Graviton Feb 24 '11 at 2:06

About internet programming,I don't have any experience but about desktop,I can surely suggest .NET,it has much more resources and tools and facilities.When you install desktop developer kit for ArcGIS after you have installed .NET(VS2005 and later),it adds some wizards to .NET projects special for ArcGIS which makes much facilities for developers and remove some tasks which you have repeat in every project.Maybe the only disadvantage using .NET is its framework which sits between your code and Windows and make your code afew slower than native Windows code(C or C++ code).But this is often seamless for end users.


  • Thanks for the reply.Suppose if we look into the open source side development , we can see Mapwindow is develped in .net environment while geo tools , udig , open jump , sextante etc on the java side. So question is which side to choose so that better functionality and support can be get . – Rodney Dec 10 '10 at 7:13

protected by whuber Oct 5 '12 at 1:23

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?