Keynote: Windows Azure Editors note: I wrote a piece for a regional newsletter on the business ramifications of Azure. That’s posted here. Now that it’s live, I’ll add my comments on Windows Azure from a technical side. In addition to the keynote, I attended a number of the Azure sessions on Day one. My thoughts below mix those together. Azure will let you think at a distributed web level. With today’s tools, you’re spending time thinking about servers (the hardware), back end communications (infrastructure), scale out (more infrastructure). A properly architected Azure application will let you concentrate on services, your logic, and your distributed metaphor. I like the concept of on-demand scaling. I like making that ‘someone else’s’ problem. In keeping with the vision of the breadth of abstraction rather than the level of abstraction, it appears that while you can offload all that configuration to the infrastructure, you will have ways of controlling those portions of the infrastructure that are interesting to you. This vision separates Azure from the current concept of using a bank of virtual servers. With current models, you’re still thinking about ‘servers’, not ‘services’. Why do I care about how many pieces of physical hardware are needed to satisfy peak loads? I should only care that my service (on whatever physical infrastructure) can handle those peak loads, and then dial back to conserve resources (green scaling). Finally, from the developer standpoint, it’s great that you’ll be able to use familiar tools (and logical, if radical, extensions to those tools) in order to create these new applications. That will provide two important technical goals: 1) you can quickly learn to create applications for this new cloud platform and 2) you have a path to move current applications into the cloud. A break from the clouds: Anders Hejlsberg The session will be online in its entirety, so I won’t post my four pages of notes here, rather, I’ll discuss the big picture. C# 4.0 is about adding support for dynamic idioms without abandoning static typing and its benefits. C#’s vision is one of ‘static when you can, dynamic when you must’. That means in C# 4.0, you’ll have much easier syntax to support dynamically typed objects in the DLR, COM objects, and .NET objects that you interact with via reflection. The demos should some great ways to work with JavaScript libraries, python objects, and anonymous types. In C# 4.0, anonymous types will support Duck Typing through dynamic objects. Wicked cool. C# 4.0 will also support syntax that enables generics to be ‘safely covariant and contra-variant’ whereas now, they are invariant. The Post 4.0 world is where it gets very interesting: The C# compiler will be a managed service with programmable APIs. Anders showed a demo where he created an interactive C# shell. It was less than 200 lines of code, and let you write C# on the console. Anders was having way too much fun with that demo. Longer term, I want to play with that code to create a DSL for something. that will be very powerful.  |