Compatiblity vs. Diversity: Will OpenJDK help Java survive?