I think Wave is a creative and full of effort generalization of a basic idea: adding something to GMail to promote online work coordination and cooperation. They went way too far and they realized it. I would, istread of throwing everything away, rework the concept and see what can come out.
He starts saying DB abstraction layers are useless and he seem to conclude saying every abstraction and every library not written by you is pointless
this seem to me like "I'm paranoid about unknown code but I can't accept the truth SO I reinvent the wheel over and over again putting my code in my library and I say everyone this is cool cause it's faster and performance and bla bla blah"
the truth:
abstraction -> helps think about the logic that matters in your program
library -> helps not to reinvent the wheel and use code tested by everyone
his logic:
abstraction -> ZOMG unknown stuff HEEELP, let's think about every algorithm in my program from scratch and let's justify this to me by saying I'm saving 3-4 intermediate function calls
It's a pretty esoteric feature, I'll grant you, but it's needed to implement several useful, more user-oriented features. The big one is deferred fields, which in certain situations can give apps enormous performance gains. If you're interested in how these features are related, Malcolm lays it all out here: http://www.pointy-stick.com/blog/2009/03/23/yak-shaving-adva...
It's important to understand that often the simplest features have the most complex underpinnings. In other words, simple APIs often require complicated internals.
US has the highest income in the world for programmers. The only european country close to US is UK, everything else is at least 50% less.