synchronized (this[.classinfo]) in druntime and phobos
Dmitry Olshansky
dmitry.olsh at gmail.com
Tue May 29 15:27:01 PDT 2012
On 30.05.2012 1:48, Andrei Alexandrescu wrote:
>> I know. If anything it's hardly a good excuse, it should have been
>> revisited once TLS was introduced. It still can be now.
>
> Don't be hatin'. You'd appreciate the matter considerably more after you
> defined your own language and had its users yell at you for changing
> even a small detail.
>
> The situation is at it is, and there's no need to get agitated. We're
> all on the same boat, trying to make things work out best.
>
Yeah, no problem. I mean I wasn't bashing D for bugs or flaws (before
this point at least) anyway. And it's not like I'm cursing here ;)
I just wish it was different. To set things straight I still believe
that OOP part of language is not what I want it to be, and thus I just
don't use it. Like in the old saying: there is always a choice.
Things that stopped me from using it are:
- hidden v-table design like C++ and Java, doesn't help things much.
Encapsulation is good, but if it has no advantages other then hiding
things it's bad.
- GCed by default, no provision for custom allocation until very recently
- monitor field, and who knows what else (v-table obviously, maybe
something else?)
- no tail-const, no solutions aside from rebindable and casts. Pointers
to struct look so much better in this regard ;)
- special slow built-in protocols for equality (it's robust, but I don't
need it)
- opEquals signature madness (probably fixed?)
- final vs virtual, no inlining of known ahead-of-time virtual call
- nowdays enforced purity, @safe, nothrow whatever. Why should I follow
these restrictions - dubious.
Observe that all of the above have very few advantages brought to me by
compiler:
- polymorphism
- inheritance
- contract inheritance
Of the above I only ever needed the first 2. Call me dinosaur.
--
Dmitry Olshansky
More information about the Digitalmars-d
mailing list