Java Gets New Garbage Collector, But Only If You Buy Support
An anonymous reader writes "The monetization of Java has begun. Sun released the Java 1.6.0_14 JDK and JRE today which include a cool new garbage collector called G1. There is just one catch. Even though it is included in the distribution, the release notes state 'Although G1 is available for use in this release, note that production use of G1 is only permitted where a Java support contract has been purchased.' So the Oracle touch is already taking effect. Will OpenJDK be doomed to a feature-castrated backwater while all the good stuff goes into the new Java SE for Business commercial version?"
The more things you have to pay attention to at the nuts-and-bolts level, the fewer things you are able to pay attention to at the business logic level. The key difference between managed languages like Java and non-managed languages like C, is that the uninteresting grunt work is done for you by the compiler
Unless, of course, you're solving a technical, rather than business, problem. At that point the product that you're selling is doing the "uninteresting grunt work" for someone else. For example, writing a compiler. To a geek, that's far mor fun than implementing a payroll database for the one billionth time.
Even if the programmer is very highly skilled, memory management is tedious and difficult, and it is impossible to never make a mistake.
This is simply false. I've never made such a mistake, not in 20 years of coding. When I'm the technical lead or architect for a project, there are no memory leaks in the project (or at leats none where I have authority). It's a matter of programming style (and using C++, not C). I have, however, had to fix others' memory leaks in garbage-collected languages. You have to try pretty hard to leak memory in C#, but it's not perfect.
Non-managed languages should be used only when the performance benefits outweigh the dangers.
Naturally, every tool should be chosen such that the benifits outweigh the dangers. But it's not just performance: garbage collect languages only manage memory for you, not file handles, locks, or other resources. A generation of programmers with no resource allocation discipline *at all* has led to some pretty bad leaks of resoruces other than memory.
Socialism: a lie told by totalitarians and believed by fools.