Original Post
...well, maybe not an apology. So I always thought Java was a useful but boring programming language (I still think it is) and I figured that because most Java VMs have at least some form of a "stop the world" gargabe collector, it wasn't the best choice for developing games in. In fact, I've written a simple space shoot-em-up in Java, and it would lag noticably whenever the garbage collector kicked in. Of course that was back in the day and not only have the garbage collectors in most Java VMs improved significantly since then, we also have multi-core now. So does concurrent generational garbage collection + a multi-core CPU equal no lags? Apparently it does. I played Jake today which is a Java port of Quake 2 and it ran extremely well with no lags whatsoever. To make sure that it wasn't just the game using some mean object pooling scheme, I ran it on a single-core for comparison and it lagged noticably. So there you have it, Java + multi-core + game programming = a match made in heaven. Well maybe not in heaven, but you get the idea. Since we're inevitably on a road towards many-core, I think it's only a matter of time until managed languages will at least to a large extent replace C++ as the programming language of choice for game development. If we're to have 80 cores at our disposable soon, we might as well use one of those to clean up our garbage. And before you get the wrong idea: I have absolutely nothing against C++ or Java. Just phantasizing about the future, that's all.