5

I'm a computer scientist and i've been working with Java mostly to develop applications. I just been hired in a company that makes projects with ArcGIS. The company has hired na electrical engineer to develop the arcGIS projects. This engineer used to customize ArcMap with VBA and lately extensions with .NET and C#.

I want to take a new path and start using the ArgGIS Engine with Java. I want to know if this choice is right.Has any of you been developing with Engine-Java and how difficult is it(The use of JNI -for which i have little knoledge- is making it more difficult? ). Also I have a little experience with .NET and c++ but not C#.I will have a big learning curve with this path?

Also which are the advantages and disadvantages and limitations of each method?

GEOCHET
21.3k15 gold badges78 silver badges99 bronze badges
asked Jan 29, 2010 at 11:57
3
  • Well, if you know Java then you have no problem with C#. They are so similar two different languages can be. It's almost the same syntax. Commented Jan 29, 2010 at 12:06
  • Yes but i know everything about netbeans and nothing about VS Commented Jan 29, 2010 at 12:11
  • Take an short tutorial about VS, then you know the basics in a few hours. You will learn more when you work with it. Commented Jan 29, 2010 at 12:16

3 Answers 3

4

Hard question to answer.

  • The general opinion seems to be that C# is easy to learn if you know Java.
  • IMHO your biggest problem is going to be learning and manipulating the massive, convoluted ArcGIS object model. Choice of language is probably secondary.
  • My instinct is that C#/.Net is probably more popular for desktop programming with ArcGIS, so you'll get more community support with that. But I don't know. There's clearly a lot of folks using Java with ArcGIS - I suspect it's mostly server work, but I'm not sure. You might be able to figure out how popular ArcEngine with Java is by checking out the ESRI forum activity.

EDIT. You probably need to decide whether learning C# is going to be valuable in future to your employer (and your career), and balance that against some assessment of whether using Java with ArcGIS engine is unusual, and therefore more risky. Only you can answer the first question.

answered Jan 31, 2010 at 20:32
Sign up to request clarification or add additional context in comments.

1 Comment

+1: your second point nails it. Whatever language you choose, you're always programming ArcObjects. The language itself is merely the glue that holds them in place (if you're lucky). I've programmed ArcGIS in VBA, VB.Net, C#, F#, and it's the non-ArcGIS-related parts of the application where the choice of language matters most.
3

I absolutely in all respects suggest you stick with C#/.Net over Java. Last time i looked (take this with a grain of salt), the Java Library + COM inter-opt done with ArcGIS is pretty slow when working with certain elements (Arrays, oh god the arrays), also i am pretty sure Java will most likely be the next language to be put onto the cutting block in the near future(VB6 is now getting the axe). Also ESRI's java community is pretty tiny compared to their C#/.NET (however about 50 times bigger then their C++ :()

answered Feb 2, 2010 at 1:20

2 Comments

There's more hits for Java than C# when I search on the ESRI site. I was surprised. Probably web server stuff not desktop though?
The key difference that i have noticed in regards is QUALITY over quantity. Also check out their ESRI development network(EDN). Quickly looking at the tutorials and sample code uploaded, java really isn't up there. However, no matter how you do it. Working with ArcEngine / ArcObjects is painful. So painful. From my works experience, we have received the best support when dealing with C#/.Net.
1

I would go for .NET and C#

If you know java and C++ than C# must be easy. You will just need to find your way through the .net framework that's all.

You will be safe with C# if you ever have to make some rich internet application in combination with arcgis and Silverlight (C#).

answered Jan 29, 2010 at 12:03

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.