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

Reply via email to