Jump to content

 
Photo

programming

- - - - -

  • Please log in to reply
10 replies to this topic

#1
yeneneshabebe

yeneneshabebe

    Contributor

  • Validated Member
  • PipPip
  • 45 posts
  • Ethiopia

Hi all,
I am a regular visitor and member of this forum. I used a lot by this discussion forum . Now I want your help again.
I am a GIS expert but new for programming. I want to learn programming language that is more relevant to my job. Please could you help me which language to select among the following:

C sharp
C++
Visual basic.net

Thank you in advance

Yenenesh Abebe

#2
Hans van der Maarel

Hans van der Maarel

    CartoTalk Editor-in-Chief

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

C sharp
C++
Visual basic.net


This is probabely not going to help you much, but I think you should add Python to your list as well ;)

Your question is most easily answered by another one: which GIS application do you currently use and what language(s) does that offer for scripting. This recent discussion might be a good one to read through.
Hans van der Maarel - Cartotalk Editor
Red Geographics
Email: hans@redgeographics.com / Twitter: @redgeographics

#3
François Goulet

François Goulet

    Ultimate Contributor

  • Validated Member
  • PipPipPipPipPipPip
  • 689 posts
  • Gender:Male
  • Location:Mille-Isles, Qc
  • Interests:Cartography, History, Graphic Design and almost everything else...
  • Canada

You should also ask yourself what you want to do with the programming... Geoprocessing? Customization?

I think I remember that you're working with Arc, so if you want to automate processes, Python could be a good scripting language to learn. If what you want to do is create custom tools for ArcGIS, ArcObject with VBA is really easy and fast to learn, but for what I have heard (can't remember my source though), C++ applications are faster within Arc, but maybe a little less user friendly, since the VBA macro editor is built-in in ArcGIS (alt + F11 will lead you straight to it)

#4
yeneneshabebe

yeneneshabebe

    Contributor

  • Validated Member
  • PipPip
  • 45 posts
  • Ethiopia

You should also ask yourself what you want to do with the programming... Geoprocessing? Customization?

I think I remember that you're working with Arc, so if you want to automate processes, Python could be a good scripting language to learn. If what you want to do is create custom tools for ArcGIS, ArcObject with VBA is really easy and fast to learn, but for what I have heard (can't remember my source though), C++ applications are faster within Arc, but maybe a little less user friendly, since the VBA macro editor is built-in in ArcGIS (alt + F11 will lead you straight to it)


Thank you Francois,

I want to do some custumization, so I am going to use VB. You said that VBA macro editor is built in ArcGIS and (alt+F11)will lead straight to it. I press alt + F11 while ArcMap is opened but I couldnot go straight to VBA macro editor. Please could you tell me the steps to access the built in editor when Arc Catalog is open , ArcMap is open or both are closed .

Many thanks,

Yenenesh

#5
ceicher

ceicher

    Contributor

  • Validated Member
  • PipPip
  • 44 posts
  • Gender:Male
  • Location:Charlottesville, Virginia
  • United States

Hi,

My advice, mainly pertinent to ESRI software.

Best regards,

-Cory


C#
-------------------

Purpose - Great for developing developing any kind of windows desktop tools and applications. Of course this includes ESRI ArcGIS Desktop tools/apps.

Is it hard to learn? - If you are new to programming, then learning C# can be difficult.

Outlook - The effort to learn C# will be well worth it. Since C# is an object oriented programming language, along the way you'll be forced to learn the concepts behind this, and you'll be well positioned for future trends in this area (e.g. new languages, concepts, etc.). C# is widely used to develop all type of Windows applications, not just GIS apps.



Python
-------------------

Purpose - Mainly used within ESRI software for geoprocessing, but with each ESRI release, you can do more with it.

Difficulty to learn - Like any new language, you'll have to the language syntax and the development environment. Python is a scripting language, so you should be able learn faster than say C#.

Outlook - As mentioned, ESRI will allows you to do more and more with Python. I am told also that Python is widely (?) used for scientific programming outside GIS. It isn't easy (or possible?) to develop windows interfaces with PY, so PY is mainly used for batch geoprocessing.


(My personal preference is C#. There I can do both windows applications/tools as well as geoprocessing.)


Other languages
-------------------

-If you plan to do ESRI internet/web GIS development, then you should look the Adobe Flex and Microsoft Silverlight technologies.

-C++ will be even more difficult to learn than C#. The above poster was correct, some things can run faster in C++ than in C#. In most cases the difference will not be noticeable. For heavy-duty processing, or performance-critical code (such as code which runs each time you refresh a map on screen), you might notice a difference.

-VBA - you could start here if you eventually want to learn C#. A lot of ESRI developer documentation is still in VBA, but in a few years ESRI VBA support/help will slowly go away, replaced by Python (at least that's what I understand).

#6
François Goulet

François Goulet

    Ultimate Contributor

  • Validated Member
  • PipPipPipPipPipPip
  • 689 posts
  • Gender:Male
  • Location:Mille-Isles, Qc
  • Interests:Cartography, History, Graphic Design and almost everything else...
  • Canada

-C++ will be even more difficult to learn than C#. The above poster was correct, some things can run faster in C++ than in C#. In most cases the difference will not be noticeable. For heavy-duty processing, or performance-critical code (such as code which runs each time you refresh a map on screen), you might notice a difference.

-VBA - you could start here if you eventually want to learn C#. A lot of ESRI developer documentation is still in VBA, but in a few years ESRI VBA support/help will slowly go away, replaced by Python (at least that's what I understand).


Thanks for the clarification. I'm not a programmer... I learned ArcObject and VBA this spring and find it very useful, but I didn't know that it will not be supporter in the future... That's a bummer!!

Yenenesh, if Alt-F11 doesn't work, go to Tools > Macro > Visual Basic Editor from ArcMap.

#7
ceicher

ceicher

    Contributor

  • Validated Member
  • PipPip
  • 44 posts
  • Gender:Male
  • Location:Charlottesville, Virginia
  • United States

I learned ArcObject and VBA this spring and find it very useful, but I didn't know that it will not be supporter in the future... That's a bummer!!

I didn't mean to sound the alarm so loudly. VBA will be around in ESRI software for several years to come. Also, you are right to say that you can do a lot with it very quickly.

I'd put it this way. If you learned ArcObjects using VBA, and you're keen to learn more, then the ESRI developer help is setup pretty well to make the jump to C#.

To do C# development you also need Visual Studio from Microsoft. I think the Express version is free or very low cost: http://www.microsoft...xpress/vcsharp/

-Cory

#8
yeneneshabebe

yeneneshabebe

    Contributor

  • Validated Member
  • PipPip
  • 45 posts
  • Ethiopia

-C++ will be even more difficult to learn than C#. The above poster was correct, some things can run faster in C++ than in C#. In most cases the difference will not be noticeable. For heavy-duty processing, or performance-critical code (such as code which runs each time you refresh a map on screen), you might notice a difference.

-VBA - you could start here if you eventually want to learn C#. A lot of ESRI developer documentation is still in VBA, but in a few years ESRI VBA support/help will slowly go away, replaced by Python (at least that's what I understand).


Thanks for the clarification. I'm not a programmer... I learned ArcObject and VBA this spring and find it very useful, but I didn't know that it will not be supporter in the future... That's a bummer!!

Yenenesh, if Alt-F11 doesn't work, go to Tools > Macro > Visual Basic Editor from ArcMap.


Thank you francois
Visual basic editor and macro are not active. How can I activate them?

#9
François Goulet

François Goulet

    Ultimate Contributor

  • Validated Member
  • PipPipPipPipPipPip
  • 689 posts
  • Gender:Male
  • Location:Mille-Isles, Qc
  • Interests:Cartography, History, Graphic Design and almost everything else...
  • Canada

Thank you francois
Visual basic editor and macro are not active. How can I activate them?


I'm not sure, but it could be for security reasons... Go to Tools > Custumize > Options > Change VBA Security and change the security to Low (or medium) if it's not already the case. If it's not the problem, you better rechange it to its default value.

Other than that, I can't see any reasons... :(

#10
GISRox

GISRox

    Master Contributor

  • Validated Member
  • PipPipPipPip
  • 104 posts
  • Gender:Male
  • Interests:Outdoors, maps, travel.
  • United States

Some very good comments in this thread. I would highly recommend going the C# route. By learning C#, you expose yourself to a number of great API(Application Programmer Interface) that you can utilize to create small and large applications alike. The language will allow you to work with WinForms, Silverlight, and Web development, etc. The language is well supported and becomes more and more robust each year.



#11
gisosdeveloper

gisosdeveloper

    Newbie

  • Validated Member
  • Pip
  • 3 posts
  • Sweden

I agree that there is no better alternative to C#, if one remains in the ESRI Domain on Windows machines. But once you leave the sacred ground of Windows, C# has a good competitor i.e. Java.

VBA + Arc Objects combination is good as most experienced programmers develop their proof of concept applications using VBA. This approach helps them in identifying Arc Objects Classes which could be used in the final development.

ESRI is helping developers to learn how to migrate from VB6 or VBA to .Net.

The word is out there that ESRI is departing from VBA after 9.4 and will be using a language from .Net framework but off course they will support it for some time. The following 2 links will confirm this.


http://forums.esri.c...p...93&t=267754


http://events.esri.c...questionId=2607


So it’s worth learning .Net framework and C#.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

-->