ArcGIS Server, Balkanization and Unintellisensibility

With five ArcGIS Server SDK’s to choose from, it would be helpful to have some sort of matrix summarizing relative strengths weaknesses of each. For now, it sure looks Balkanized.

I’m One of Those Types
Yes, I’m the type of guy who can’t stand stereotypes. You know, the kind that blurts out “generalizations are bad!” when cornered. Generally speaking, generalizations are bad – but not when it comes to IDE’s. I’ve gotten so spoiled on VS intellisense, working with javascript feels awkward. And not because it’s not an MS product – autocompletion in Sql Server Management Studio is quite annoying as well. From what I can tell, static types are what make intellisense possible. With Silverlight I can use intellisense to write all my client side code, if I so choose.

That may change with addition of dynamic types in C# 4.0. Generally speaking, dynamic types are a good thing, but it seems like it’ll make C# more like javascript. Here’s a good writeup showing how dynamic types simplify JSON interaction. Perhaps an understated advantage of SOAP over REST is static types. I guess as long as I have two monitors I’ll survive – with one of them eternally opened to the API reference docs.

Sense and UnIntelliSensiblity
Kirill shows how dynamic types can simplify use of COM libraries in .NET – at the expense of becoming unintellisensible.

This suggests ArcObjects programmers will be able to write code that is visually more elegant than currently possible – yet unintellisensible. It may look pretty during a code review, but I sure feel sorry for any non ArcObjects programmer tasked with altering it. It looks like it would even be possible to write an obfuscator disguised as a prettyfier. It would take Kirill’s first example, strip out the “using”, replace the static type with a dynamic type, and voila, prettier code.

2 comments so far

  1. Morten on

    Just because we get dynamic language support doesn’t mean we HAVE to use it. I for one is not planning on using it, and as you mention its only really useful for things that we didn’t have intellisense for in the first place.

  2. Kirk Kuykendall on

    I could see how some ArcObjects contract programmers might be tempted to deliver dynamic typed code to un-suspecting clients. The code might look simple and elegant, but would in fact be less maintainable, locking the client in to the programming services offered by the original coder. Of course I would never do such a thing.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: