Mark Murphy wrote an interesting piece about fragmentation in Android. I didn't really agree with much of it but it did get me to thinking about how the space in Android is evolving compared to J2ME (Java ME).
I was the software architect for T-Mobile back a number of years ago, working on their J2ME platform launch. So I've got some inside perspective.
Sun Microsystems wanted to push J2ME and encouraged a number of vendors to build content delivery servers. Their view was to pick the best-of-breed platform from these upcoming vendors (eventually they bought Pixo - I still like this name).
Sun also had the view of 10,000 individual developers delivering apps; it took 7 years for Apple to execute on this vision.
Sun was into openness of these delivery systems, evening leading JSR-124: The J2EE Content Provisioning spec to try standardize how servers delivered applications. J2ME comes with standard JAD descriptors. It has delivery and notification managers built into every device. The industry standardized how device detection occurred, all to address growing fragmentation.
Google considers its Android Market closed. There are no specs to follow, no standard way of handling device detection, no application manager on the device. Nothing.
Google's closed approach will hardly address fragmentation problems. It will split into a different way of handling the content delivery and discovery problem for each upcoming AppStore. There is no leader in this space to drive standardization. So we have an open Android device but the infrastructure is much more closed than we saw in Java ME space.