The Infinite Extensibility Engine


The biggest issue facing developers today is not lack of OO knowledge, patterns, or guidance.  It’s a sad lack of extensibility in today’s frameworks.  Over the past year or so, getting familiar with ASP.NET MVC, I think I’ve found an answer to the lack of extensibility in not just application frameworks, but the .NET Framework in general.

What’s been holding me back are the moronic constraints of “method signatures”.  Every time I might need an extra parameter, that maybe someone might have passed in, I have to change the signature!

No more.

Enter the Infinite Extensibility Engine Interface, pronounced “eye-ee-ee-eye”.  And it’s just one awesome interface:

public interface ICanTasteTheAmazing
{
    Dictionary<string, Dictionary<string, object>> Smurf(
        Dictionary<string, Dictionary<string, object>> @it
    );
}

Yes.  Drink it in.  Taste the amazing.

I came up with this brilliant interface while delving in to the depths of ASP.NET MVC, whose liberal use of hashes and “anonymous types as hashes” is nothing short of breathtaking.  But why be limited to one or two groups of dictionaries per call?  Time to kick it up to 11.  Dictionaries of dictionaries, in and out.

Don’t like what you see?  Pass something else in.  Need something else from callers?  Just go ahead and look for it.  They’ll figure it out.  Eventually.

Naturally, to protect the order of the universe, we’ll create a W3C certified spec to standardize top-level keys, the bucket-of-bucket lookups.  Look for it soon sometime in 2020.  Until then, keep an eye out for the book, audio tape, and speaking tour in your city soon!

Speeding up a local build