It already has succeeded in one very limited area: GUI component layout. People use XCode/Netbeans Matisse/DreamWeaver all the time to build their UIs.
It fails in other areas because code is remarkably info-dense, and if you split that out into individual components, it takes a huge amount of screen space and visual manipulation for even simple subroutines. I encourage you to take a simple function and draw out the parse tree for it. It's surprisingly large, with lots of different node types all strung together in unusual ways. Think about how much people complain about the parentheses in Lisp; now imagine that each set of parentheses is a box on screen.
It fails in other areas because code is remarkably info-dense, and if you split that out into individual components, it takes a huge amount of screen space and visual manipulation for even simple subroutines. I encourage you to take a simple function and draw out the parse tree for it. It's surprisingly large, with lots of different node types all strung together in unusual ways. Think about how much people complain about the parentheses in Lisp; now imagine that each set of parentheses is a box on screen.