Java Fragmentation and YouTube ?!?
I made a video of myself building a giant retro-style lego robot. I put it on YouTube and to get more people to see it, I looked for a good group to join so I could add the video to the group. This worked fine except for one major problem- there are over 350 lego groups on YouTube and about 90% (brace yourself) have only 1 member and are redundant to several other groups. This fragmentation makes the uncontrolled group creation model YouTube uses a failure. They should show some leadership and consolidate groups to help strenghten them. If the users don't like it, they can leave. Actually, they already have left which is why the groups are really just a ghost town and have few to one member and very few, if any, videos. How can YouTube allow a video group to exist for months or a year with no videos? Why won't people just join a group that already exists? Because they didn't create it themselves. This is a quirk of human nature, related to the not invented here syndrome.
Now that you see how stupid and silly this is even for trivial things like lego groups on YouTube, let's look at technology, where real damage can be done.
J2ME is fragmented and has been since it move beyond one or two phone models 5-6 years ago. Today, the industry is still claiming to want to solve the problem, yet here are the new "groups" that will cause it to live on. In 2008, we might get MIDP 3.0 (from motorola), A CDC-OSGI hybrid called Titan from Sun which claims backwards compatibility with MIDP 2.0. (given this is where the worst of the fragmentation is, I doubt that will work very well.) Also from Sun is JavaFX Mobile. Next year will be the dawn of Android, too, which is Java (but not MIDP) on Linux. Who knows what Qualcomm is doing. And we still have a ton of MIDP 2.0 phones.
So which group will you join? Which one will get your application to the most people? Will your code work across all of these? No way in hell. My hypothesis is that as handsets get more powerful, the java environment will fragment even more, since the workarounds to get your code running cross-platform will be even more challenging to identify and create (if they exist at all). To test my hypothesis, just go to a java conference and sit in on a panel discussion with heads of development companies talking (the game companies are a good test). I think, like every year, their number one complaint will be fragmentation and how much money that costs them.