[fpc-devel] Suggestion: reference counted objects

silvioprog silvioprog at gmail.com
Sat Sep 20 19:41:44 CEST 2014

On Sat, Sep 20, 2014 at 8:02 AM, Chriss Kalogeropoulos <
iz.iznogood at gmail.com> wrote:

> Hi all,
> Why would anyone want something like that? Both languages have interfaces
> that can be used for auto reference counting and they also provide us with
> a very powerful abstraction mechanism.
> This also adds overhead on the performance (and locking calls) which might
> be important in some cases like embedded devices.
> The fact that embarcadero added this feature unconditionally is a huge
> mistake IMHO unless they needed it for some compatibility reasons with java
> for android or iOS or just marketing, I don't know. If someone knows any
> other reason please post it on the list.
Yes. Embarcadero thinks in productivity. See the new IDE of them, it is
extremely productive.

Unfortunately, who doesn't modernize, tied in old concepts, can lose your
market/product/space/people to your competitors, IHMO. :-/

> It's the same bad decision they made with the zero based strings, at least
> the used a switch for that.
> The only gain I can see from that is that with objects someone can use
> reference counting and still benefit from some aggressive optimisation like
> inlining which is not possible for interfaces. The same with simple
> properties that they need getter and setter methods in interfaces that
> cannot be optimized but in objects it might be possible or they can access
> the data member directly.
> In my opinion this is a very small gain compared to the huge change in the
> language semantics that you propose.
> Chriss
>  Στις 20 Σεπ 2014 1:41 μ.μ., ο χρήστης "Hans-Peter Diettrich" <
> DrDiettrich1 at aol.com> έγραψε:
>> Fabrício Srdic schrieb:
>>> Hello,
>>> In platforms with managed code (.NET, Java), objects are automatically
>>> freed by the memory manager / garbage collector.
>>> Would not it be interesting to have a similar feature in FPC?
>> AFAIK some Delphi XE made TObject itself managed, by reference counting.
>> It would be easy to introduce the same feature in FPC, so that no special
>> base class would be required. Like with extended RTTI a decision should be
>> made, whether managed objects should be enabled or disabled by default.
>> Afterwards automatic management can be turned on or off for every single
>> class or object individually.
>>  For example, through a root class where its objects are counted by
>>> reference, like the TInterfacedObjects. Thus, the programmer would be free
>>> from having to manually release objects.
>> In practice it turned out that the automatic destruction of objects still
>> requires assistance of the coder, in many cases, in all languages with
>> garbage collection. I.e. a destructor (or finalizer) still is required to
>> prepare an object for subsequent destruction.
>> IMO it's sufficient to use Interfaces for all objects that should be
>> subject to garbage collection.
>> DoDi
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Silvio Clécio
My public projects - github.com/silvioprog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20140920/e043b7e1/attachment.html>

More information about the fpc-devel mailing list