Welcome Guest!
Create Account | Login
Locator+ Code:

Search:
FTPOnline Channels Conferences Resources Hot Topics Partner Sites Magazines About FTP RSS 2.0 Feed

Back to the Introduction


Why We Don't Build Software for Users (Continued)

What Cooper Really Thinks of .NET
VSM: Let's switch gears a bit. What do you think about the .NET platform?

AC: I was talking to Richard Hale Shaw at VSLive! Orlando, and he said that for the first time Microsoft let people who think about system architecture make the decisions. I agree with him. It isn't about what you like, Mr. Programmer. You've got to move toward portability.

VSM: How does .NET deliver more portability?

AC: By providing cleavage planes. It's like cutting a diamond. You can't just cut one; you search for the natural cleavage planes in the diamond's crystalline structure. Likewise, you have to find the cleavage planes in the software and break it in two. Those cleavage planes, of course, are APIs and the CLR. And MSIL interfaces are APIs.

I learned this years ago with VB1. By creating the VBX interface, we were creating opportunities on one side of the API for developers to build installable controls. But it means there's also value to implementing something on the other side of the API. Borland could create Delphi and use those VBX controls.

If you do create value on one side, you will create value on the other side. Microsoft has created the interface with the CLR, and in doing so created opportunity for people to build their own runtimes. It's an opportunity for creating new languages.

That's the power of APIs. It's the component way of thinking on a larger scale.

VSM: What do you think about the .NOT movement among VB6ers?

AC: I've been reading books on C# and .NET recently. .NET is without a doubt extremely complex and extremely difficult. I agree with Grady Booch when he says that programming is hard and intellectually demanding, and always will be and always was. A lot of people got sucked into the programming world during the dot-com boom. Now they're discovering it's not easy. I think that as we build bigger and more complex software systems, we're going to find that the tools are going to give us more power and reach but they'll never make things easier.

VSM: It's a version of Parkinson's Law—expenditures always rise to meet the budget. Like the fact that until recently, computers always cost $2K. They just do more now. Does .NET at least make it easier to do more complex tasks, even if the net complexity (so to speak) remains the same?

AC: Without a doubt, .NET is one of the great simplifying tools in the world of software. It goes a long way towards cleaning up a gigantic mess. That's actually not such a great achievement when you realize it's Microsoft that created this mess by building badly designed software year after year, refusing to do any thinking and planning, going at it straight from a programming point of view. And they knew. Back when I was an active Windows developer, I worked hand in hand with their Windows development crew. I saw them just making randomly bad decisions, and they didn't care. They weren't responsible to anybody.

Many others and myself even wound up doing design work unilaterally and just giving it to Microsoft. Even then sometimes they would come back to us and say, "Yeah that's a good solution, but we're not going to build it." No rationale. Now .NET slices through a lot of that stuff and finally fixes it.

Software construction has often resembled digging the Panama Canal with a teaspoon. You can make the walls of the canal perfectly straight, but it takes forever. But this method of construction doesn't have a future, because the Panama Canals of the future will get ever larger.

VSM: Does this mean you believe Visual Studio 6 developers should move to VS.NET now?

AC: We as software pros have to create tools to build software in a more cost-effective way. And we need better tools to do that. .NET is a better tool. Is it sufficiently better to compel you to invest the time and effort needed to migrate to it? I think the answer is yes—by a hair's breadth. I think you have to move. And yes, it's going to be painful and expensive, and the advantage is going to be tangible but not overwhelming. So you have every right to squeal that you've been wronged, that they're taking away your big roomy sedan and giving you a little compact that's more efficient and doesn't need to go into the shop so often and provides a collective advantage for society, but at the expense of some disadvantage for you personally.

VSM: Any other upsides in using .NET, besides a slight advantage over VS6?

AC: Yes—breaking Microsoft's monopoly. This is something else I like about .NET and the direction Microsoft is going with the things XML brings us. When you get bigger tools and get away from the teaspoon way of constructing software, almost by definition the bigger tools have to be more self-contained and independent than all the teaspoons are. We're moving toward a componentized architecture with cleaner interfaces and advances such as self-describing data. This is sowing the seeds for breaking Microsoft's monopoly, and for this reason alone we should move in .NET's direction.

A Microsoft API such as the CLR allows an opening for other language vendors, as does offering Web services through XML. It means the days of getting all your services from one vendor—or even a single app—are numbered. Today Excel does everything spreadsheety, but this new architecture lets us glimpse a future where you can do a discounted rate of return using some Web service while still working within Excel. Right now an ISV can't compete with Excel because the bar is so high. With a more open architecture, you can replace just a tiny piece of it. For example, you could provide a better way to print spreadsheets and make your product the spreadsheet printer facility of choice. Users can pay money for the software or pay a penny every time they print a sheet. This holds a lot of promise for the economic model.

Programmers Aren't Planners


Back to top

Printer-Friendly Version












Java Pro | Visual Studio Magazine | Windows Server System Magazine
.NET Magazine | Enterprise Architect | XML & Web Services Magazine
VSLive! | Thunder Lizard Events | Discussions | Newsletters | FTPOnline Home