So next to Python (Serpent) and Lisp (LLL) we'll have a JavaScript-like language (Solidity) as an option? Or will Solidity replace the others? And where can I find how this new idea of an ABI relates to these languages? Do they serve the exact same function as Java interfaces?

So the ABI would be that JSON example? Than why is there also an 'ABI Description file' ("header file")? The documents also talk about 'interface definitions', are those ABI's? Or is an ABI a piece of compiled code?

Sorry for my confusion, but I'm trying to get a clear picture while the documentation is far from that.