I’ve been thinking a little lately about .NET, programming in general and all the stuff going on in the .NET space over the last few years. The conclusion that I’ve reached is that there are no new ideas in the .NET space that I can put my finger on.  Let me refine that a bit – there are no new ideas in the .NET space in so far as web development is concerned.

So much of what we are seeing as “new” is a regurgitation of stuff that happened years ago. Here is a sampling of some so-called new ideas and what I see as their origination points. Feel free to correct me if I don’t have the origination right, I’m just tossing out what I know . . .

“I feel like the fellow in jail who is watching his scaffold being built.”

- Dwight D. Eisenhower

Scaffolding – a lot of folks that talk about scaffolding refer to Ruby on Rails as the origin of that. Not true at all really. The first time I saw and used scaffolding was back in 2000. I had picked up a book called Designing Active Server Pages by Scott Mitchell (yeah – the 4guysfromrolla.comguy). It was a great book, and I have always like Scott’s approach. He is very thorough and creative. So no, all you RoR fans – you weren’t the first.

 

AJAX- A lot of folks have mentioned this one, back when they were mucking around with the XmlHttpRequest object, but before that there was something put out by Microsoft called RemoteScripting. It wasn’t the inline frame thing some of you may be thinking of. It was a Java component of some sort. It was a POS to be sure, but it was the only game in town prior to IE 5.0. I still have the code around where I was using it. As a matter of fact, I just cracked open the RSPROXY.JAVA class that was in there, and here is a nice little snippet for all of you Microsoft vs. Sun (actually, Microsoft vs. ANYTHING) fans – I bet you never thought you’d see this:

// ************************************************************************
// Microsoft Script Library
// Visual InterDev 6.0 Remote Scripting proxy
// Copyright 1998 Microsoft Corporation. All Rights Reserved.
// ************************************************************************
import java.applet.*;
import java.awt.*;

import java.net.URL;
import java.io.InputStream;
import java.io.IOException;

I was using this back in 1999 to build a CMS. My boss at the time was showing the application to some other business associates and he was asking if they had ever seen the use of modal windows to do this kind of stuff in a web environment and the answer, at the time, was no. So, to anyone else that used the RSPROXY stuff to create AJAX applications back in 1998-1999. WE WERE THE FIRST! :)

 

Dependency Injection / Inversion of Control- This is an idea that came out of the Java space. Martin Fowler was the idea man behind this one. Actually, if you use .NET or Java, I’d be willing to bet you owe a lot to Mr. Fowler. He’s kinda got one of those “scary” brains. He has also been known to hang out with the RoR guys, which makes me think that you will always find him hanging where the action is.

 

MVC – This “technology” is 30 years old. It ain’t new, any way you slice it.  ’nough said.

 

There’s probably plenty more, but those are the ones striking me right now. What concerns me about this is that there doesn’t seem to be much in the way of true invention going on in the .NET web space. If you look at .NET in general there is a flurry of activity and most of it involves regurgitating Java frameworks. The ALT.NET folks were trying to come up with a tag line and one of them put this out there:

“ALT.NET, porting Java Frameworks one project at a time.”

Or something like that. It’s spot on really. The path being traveled is so similar to the Java space that it scares me. Why does it scare me? Because of all the things you can find wrong with Java, the primary barrier to entry for anyone getting into Java programming is the high fragmentation of libraries, frameworks, etc. It’s a bitch to figure out where to start. And the .NET space is blindingly following suit. Has anyone checked out how many Dependency Injection frameworks there are in .NET? I can count 7 in my head and it’s only going to get worse.

One good thing about the “old” Microsoft (i.e. Pre .NET) was that there were fewer decisions to make and less work in evaluating technologies. Now, throw the open source movement on top of all this and well, holy crap – all the work is in just figuring out your development stack.

But beyond that is the lack of invention in the .NET web space. If anyone see’s something I’m not, please let me know because when I look for “cool, new technologies” I look less and less at .NET and look more closely at fringe projects like Rebol. The point is, I’m looking outside Microsoft.

kick it on DotNetKicks.com