I recently attended the Connect conference hosted by Inman News in San Francisco. It's a once-a-year event for the Real Estate technologists to get together and talk about the geeky stuff that the rest of the Real Estate community doesn't understand. Notably present were the major web-based mapping providers -- Google Maps, Yahoo Maps, MapQuest, and, of course, Microsoft (en force).
My two missions for the trip were:
- Scope the announcements from the Big competitors, and
- Build a strategy for adding mapping to our application in the next year
Mind you, I went through the same exercise last year, but the cost:benefit ratio didn't create a compelling argument for adding any sort of data-integrated maps into our service. Now, however, the Big guys are offering integrated mapping, and the providers (especially Google) are offering a much richer object model than they did previously.
I most wanted to hear from Microsoft: I'm a Microsoft platform coder, I'm six-ways certified, and I actually enjoy writing against the .NET Framework. I wanted the Microsoft guys to tell me there was a reason not to use Google.
I emailed Chandu Thota the night before the conference to check on his availability and whether he was up for a chat. He was, and we did, along with Virtual Earth Program Manager Steve Lombardi. I explained to them how the Real Estate information ecosystem works, and offered what we, the Real Estate vertical, need from a mapping solution.
There was one point that Chandu kept hammering on -- JSON:
"It's lightweight!"
"It's object-oriented!"
"It's cross-browser!"
It also breaks this Holy Commandment of Programming that has been pushed by every major platform vendor for the past five years (especially MS):
THOU SHALT NOT MIX INTERFACE DESIGN WITH CODE.
I learned XSL for a reason: It's the Right Thing to Do™.
So why, praytell, would I make this two-step-back advance to JSON? Bandwidth? C'mon, if you're sending 500K in data during a single action, then you have an application design problem.
I went on to prove this point by mocking up Google vs. Virtual Earth maps, with a single dataset through various methods of access (static JavaScript, JSON, XML/XSL, and JSON-to-XML/XSL), and y'know what? The difference in over-the-wire data transfer and presentation methods was far less significant than the platform's rendering method.
Give back my Model-View-Controller holy trinity and stop trying to re-invent the wheel.
I have since coded up a JSON-based AutoSuggest for our service, and I remain utterly unconvinced: oDiv.appendChild() should not be a design technique.