Pointless Wrappers
Remember Joel Spolsky’s withering critique of Microsoft’s Architecture Astronauts?
I’ve been thinking about this for a while, and it’s slowly dawning on me what I don’t like about .NET. Besides the fact that it’s from Microsoft. Heck, now that I really think about it, I feel pretty much the same way about J2EE, Struts, Spring, Hibernate, and all that non-Microsoft stuff.
All it really is, is a pointless set of wrappers around perfectly good technologies that didn’t need to be rewrapped. A superfluous, extra middle-man between the developer and the hardware.
If you want to make a website, or a web app, what’s wrong with coding in HTML, Javascript, and some server-side language like — hey, why not — ASP? Nothing wrong with ASP, as far as I can tell. Or JSP if that’s your preference. PHP or Python sound good too, from what I’ve heard.
But if you’re Microsoft, and your entire business is based on selling IT departments more and more software, milking and frustrating their developers with memorization— I mean, certification programs, and trying to make things as complicated and Microsoft-centric as possible while pretending you’re making them simpler and better, then you have absolutely nothing to gain by saying something really honest like, say, “There’s absolutely nothing wrong with SQL, ASP (or JSP), HTML, and Javascript. And XML validators? P-shaw! They make the people who write them feel really important. Just like, uh, those architecture astronauts down the hall.”
No Wrappers Allowed
Notice something interesting about the iPhone? It’s not going to have pointless wrappers like that. Lots of companies would love to make them, but Apple’s keeping control over what gets on the iPhone, and Apple’s already made it quite clear that that sort of business just isn’t going to occur on the iPhone. If you want to write an app for the iPhone, you’re going to be writing it in Cocoa Touch. And you’re going to be calling Apple’s iPhone OS X API functions. Not somebody else’s language wrapped around it.
Apple’s saying, in effect: If you want to write end-user apps for the iPhone and iPod Touch, we’re all for it. But if you want to create extra language layers on top of our system, that serve little purpose other than to inject your own company between third-party developers and Apple’s systems, then you’re not welcome here. Go do that somewhere else.

Update 2010.04.08 — No, you’re not going to do it that way either.
