On Tuesday, 16 July 2013 at 00:09:26 UTC, Sean Kelly wrote:
On Jul 14, 2013, at 12:56 AM, SomeDude
<lovelyd...@mailmetrash.com> wrote:
C++ has gone te ARC route as well with shared_ptr. I find the
scoped_ptr/shared_ptr combination quite convenient and quite
safe overall.
The thing that finally pushed me towards D was one day when I
was looking at my C++ code and I realized just how much effort
I'd put into defining data ownership rules. And while tools
like shared_ptr may automate the reference counting portion of
the task in that case, the pointer type still needs to be
defined somewhere and honored by all users of that API. And
shared_ptr isn't even terribly efficient by default because it
has to assume sharing across threads, so you're stuck with
memory synchronization techniques being employed every time a
shared_ptr is copied. Don't get me wrong, I think shared_ptr
is a wonderful thing, but to be really competitive it would
have to be truly automatic and have its behavior informed by a
type label like "shared".
Sean
For me it was an experience with Native Oberon in the mid-90's. A
desktop operating system coded in a systems programming language
with GC (Oberon) offering a Smalltalk like experience.
Sadly only people at Zurich's technical university, or followers
from Wirth's work, are aware of it and its successor Blue Bottle
(A2).
Some years later I also had access to information about Modula-3,
which provided a few ideas that made their way into C#.
Then all the work I did with Smalltalk and Camllight while at the
university.
So before Java was born, I was already convinced a GC was
possible for systems programming.
The problem is that the way Java and .NET have been sold in the
industry, most people without compiler development background,
tend to assume GC == VM.
--
Paulo