|
YOUR FEEDBACK
SYS-CON.TV |
TOP LINKS YOU MUST CLICK ON Interview Whidbey, Longhorn, Indigo: A View from the Inside
Consultant and author enjoys being involved in Microsoft product development
By: Derek Ferguson
Feb. 13, 2004 12:00 AM
.NETDJ Editor-in-Chief Derek Ferguson chatted with Microsoft Software Legend Jeffrey Richter at Microsoft's Professional Developers Conference 2003. In this exclusive interview, Richter talks about sharing his working life between Wintellect and Microsoft, and what it's like to help shape Microsoft products. .NETDJ: Tell me about yourself. .NETDJ: Is the Win32 stuff the reason you are famous? The book didn't sell well, but it kind of put me on the map. Microsoft Press became aware of it and at the first Win32 PDC Microsoft found me at the conference and asked me if I wanted to write their official Win32 programming book. I agreed, and that became the first Win32 programming book out there, which really established me. .NETDJ: Have you continued working for Microsoft since then? .NETDJ: How do you manage to work for both Wintellect and Microsoft? .NETDJ: That's a heck of a lifestyle! Why do you do it? I also enjoy the variety. I really like architecting and programming a lot. That's how I got started in this business. It taps into the creative side of me. I like the training, too. It's not as creative, but I enjoy meeting people at other companies, learning about what they do, seeing their faces light up when I explain something and I see it click. And, honestly, I have an ego. .NETDJ: What do you do when you're at Microsoft? .NETDJ: I thought that .NET had already gotten rid of "DLL Hell!" In the .NET Framework - up through Whidbey - we took a 180-degree turn on that. We made it very difficult for developers to do the right thing, but very easy for end users and administrators to do nothing and still have a program continue working as it was initially created, even with a new DLL. Since developers really want an easy way to create and deploy a new version of an assembly that can be used by existing apps, we realized that we needed to deliver a mechanism that gives them this flexibility but ensures that we don't end up with DLL Hell again, with developers doing their own thing to solve this. What we want to do in the Orcas and Longhorn time frame is to get a better balance going. .NETDJ: What can you share with us about what will be done? We will divide assemblies into two main groups: Platform and Library. Platform assemblies will include components for which Microsoft promises to always maintain backwards compatibility, like the Win32 API. Library assemblies, in contrast, are files that contain components that we feel free to make radical changes to over time - this will be the default. Also, we will probably have just one CLR on any given machine - no longer supporting side-by-side runtime engines. Microsoft may consider refactoring some of their existing types into Library and Platform assemblies, and they will offer a technology so that existing technologies that bind to those assemblies do not break. .NETDJ: And you also mentioned "a new Add-in model for dynamically extensible applications?" We want to have an architecture that allows the hosting application and the company that is building add-in components to be able to version either side independently of the other side. That's very important to us. For example, the Windows Shell team may define an abstract base class that other developers can derive from in order to extend the Shell with some new component. Over time, the Shell team may want to modify and change this abstract base class in such a way that might break the other developers' components. The Add-in model that I'm working on allows the Shell team to define new ways of talking to components without giving up the ability to work with older components. From another perspective, this means that a component could be developed that works with multiple versions of the Windows Shell. In addition, we want to have an architecture that allows applications to say that they trust some components to run in their application domain, but require others to run in separate application domains. For example, suppose that Microsoft has a bunch of partners that it wants to allow to run in the same application domain as the Shell. On the other hand, there are probably lots of partners out there who aren't as trusted, so we want their stuff to run in a separate application domain. This way, if their stuff blows up, the Shell won't go down. We might even offer the ability to run components in their own processes. .NETDJ: How would that work?! .NETDJ: The last thing you mentioned was Indigo. Can you tell me about that? .NETDJ: So you like the abstracted nature of Indigo? .NETDJ: And what do you do in the Indigo team? .NETDJ: I'm sorry - what is M4? It takes - at the programmer level - knowing that you are working with a message, plus you have to have access to the header information! We were doing content-based routing and we needed to put a value into the header so that the router could pass the message along. When you're doing RPC, you don't have access to the info in the header. Another thing we learned is that - for a large distributed application - almost nowhere in the application did we have request/reply as a pattern. When you're working with RPC, it looks like you're doing method invocations, but in our case it was actually going to a server, getting routed, and getting a response back later on from another machine. When we had architected some of this as RPC, we found out that we needed to rip it all apart and go lower. Today, I would not do the RPC thing at all. I would write at a lower level. .NETDJ: But isn't going lower also making things harder for the programmer? .NETDJ: So how did you get started working on Indigo? .NETDJ: Didn't Don Box cofound a training company that competes with Wintellect? .NETDJ: What is your taste in music? .NETDJ: Cool! I could talk about that all day, but I guess we should stick to .NET. Besides Indigo and the versioning stuff, what else do you think will be cool in Longhorn? .NETDJ: How about Whidbey? What do you like there? From the CLR perspective, probably the biggest feature is the performance and robustness. The CLR team has added a bunch of features that customers have screamed for, like serial port access, improvements to the console window, improvements to threading - where I helped suggest a lot of changes that went in. .NETDJ: Can you tell us about some of those changes? .NETDJ: How is security being dealt with at Microsoft as you work on both Whidbey and Longhorn? I think security is very important. I think that regular people have to get to a point where they can trust their computers without giving it any thought. It is a requirement of the industry. .NETDJ: Do you think that Microsoft deserves its bad reputation on this point, though? .NETDJ: Do you think this new focus has anything to do with the state of the IT economy? I think the PDC showed people that Microsoft really is behind the managed-code runtime. It is my belief that the PDC message of "Write managed code today" will help. I also feel that the economy has been recovering some, and companies are now thinking less about staying afloat and more about how to be better than the competition. Now is when they can start looking forward to the true value of .NET! About Jeffrey Richter LATEST ECLIPSE STORIES . . .
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||