OK, so what’s so bad about JNI?
It certainly is NOT in general a “performance killer”. In most cases where it might be you just have to use batching - which is often what you need to do anyway e.g. when rendering anything.
Pointers == bad thing from C.
You say “no need”, but c.f. above one of my problems is that java is introducing “no need” stuff but IN REALITY I can assure you people will.
There was never any “need” to write crap incomprehensible massively op-overloaded C++ code. But thousands of people did it anyway.
I think you simply fundamentally disagree with me what “java’s best features” are. That you say it lacks pointer arithmetic (one of C++'s best features, albeit also something I’d prefer to be without) suggests we also disagree on C++'s best features.
Your list, once stripped of feasibly useful but, in pratice, largely irrelevant things (who cares that I can allocate outside of the GC’s control? If I wanted to do that, I wouldn’t be using a GC at all), sounds like “it’s much less safe than java, and lacks all the big runtime advantages, yet it also lacks some of the most fundamentally important aspects of C++”.
Which pretty much sums up my previous evaluations of it. I’m well aware I may be missing the point here, but D has never seemed anything more than a toy project where some people wanted a few minor alterations to java or C++ and couldn’t be bothered to provide the whole of either (that would be impossibly too much work) but couldn’t be bothered merely to customize either (could have been done from either end).
If you try to judge D by the standards of C++ or Java it falls laughably short. If you try to judge it by the standards of Ruby or similar it probably does OK - except that it has terrible syntax (C-esque) by comparison, and so it still loses out.
I don’t have anything against it, I’ve tried (really) to find something useful there to me, but all I can see is a mish-mash of ideas that is neither one thing nor the other; trying to be many things but being second-class at all of them.
PS out of pure interest I’d like to know what use-cases it’s ideal for, if you’d care to suggest some.