On Thursday, 17 July 2014 at 11:15:10 UTC, Chris wrote:
On Thursday, 17 July 2014 at 09:57:09 UTC, currysoup wrote:
On Thursday, 17 July 2014 at 09:26:38 UTC, Chris wrote:
On Thursday, 17 July 2014 at 09:20:36 UTC, Russel Winder via
Digitalmars-d wrote:
It appears still to be a general meme that performance
required no GC
and GC mean poor performance. The debate has been restarted
on the Go
mailing list under the banner "go without garbage
collector". The
response to will Go remove the garbage collector was somewhat
unequivocal: nope.
That's good news in a way. If a big company accepts GC and
the Go crowd go with it (pardon the pun), then it will find
more acceptance (as Paulo pointed out in a different thread).
It's not about "acceptance", it's about the reality that a GC
is not a universal solution to memory management.
Point taken. But as has been said before 90-95% of all apps can
live happily with GC, and if you want, you can still go bare
metal with D. The security GC offers should not be
underestimated either. With "acceptance" I meant that people
see "it cannot be that bad after all for *most* applications".
The GC issue is often cited as a D-eal breaker. I understand
that there are applications that need total control over the
memory. But those apps have always been programmed in C or any
other close-to-the-machine language, and even then programmers
(in gaming for example) have to use additional tricks and hacks
to squeeze out every little bit of performance. What D has to
do is to facilitate control over the memory, but I still
consider it a systems programming language due to the fact that
it has many things to offer as regard the direct interaction
with the machine that Java and C# don't. Can you write a device
drive in Java, if yes, tell me how, I'm interested.
Easy, like in any language that offers FFI.
Expose a Driver class with native method declarations, whose
implementation is written in Assembly.
The SquakVM used to drive SunSPOT devices had the device drivers
written in Java.
There are quite a few other examples in the embedded market, like
the MicroEJ platform.
That is no different from writing drivers in ANSI C, which
provides zero features for hardware interaction.
--
Paulo