Emacs for 2007

Don Box, Chris Anderson, Anders Hejlsberg and Scott Guthrie did a 40 minute demo in Jim Allchin's keynote this morning. The demo started showing off the new Language Integrated Query or LINQ technology. Anders and Don wrote an app to query the list of running process with more than 4MB of working set. They then joined that result with a list of process descriptions from a SQL database. The description for devenv.exe was "Emacs for 2007".
Next, Don and Chris wrote an Indigo service to expose this list of processes to other apps. Then Scott got up and talked about Atlas and showed how easy it is to write an interactive Web page that gets data from an Indigo service. I think there were two key points in this part of the demo that may have been lost:

1. The Web page had a text box and a "Get data" button. Using traditional ASP.NET, clicking on the button would submit a form to the server where the request would be processed (possibly invoking an Indigo service) then the response would be returned as an entire new page to the browser. In this demo using Atlas, client-side javascript sends a request to the Indigo service directly and displays the returned data without reloading the entire page.
2. The format used for communicating between browser and Indigo service is a simple text format known as JavaScript Object Notation or JSON. This means no XML parser is required on the client side. It also means that Indigo is versatile enough to speak HTTP GET and extensible enough to understand non-XML formats.

Just to reiterate, the Web client Scott showed used just JavaScript and a simple text format to talk to Indigo. No SOAP and no XML. This client also works on non IE browsers and was shown running on the Mac in the keynote.
We've done some work on Indigo to support HTTPisms like query string and various HTTP verbs (e.g. GET). This feature (and the Indigo JASON encoder that Steve Maine wrote) is the corner stone of enabling Atlas to communicate with Indigo services. The Indigo PDC bits have this support built in so once you get your hands on them, you can try that feature out and send us feedback.