On Tuesday, 26 January 2016 at 11:44:56 UTC, nbro wrote:
On Tuesday, 26 January 2016 at 11:41:49 UTC, nbro wrote:
Hi!

I have seen that D offers basically similar constructs to Java for example for creating multithreaded applications. I would like to understand better what are the real advantages that D offers. Does D offer something that other known programming languages, such as C++, Java and Python, do not offer? An exhaustive explanation with concrete examples would be nice.

Moreover, could you also explain why D was designed to synchronize entire classes instead of single methods. If I synchronize single methods (in Java for example), I could still be able to use other non-synchronized methods without needing to acquire the lock, so I don't understand this decision.

I don't know what was the decisive point of the decision but in can't help but note that it makes a lot of sense because D has functions.

Object methods are meant to be used with the encapsulated data. If it doesn't touch those data then it must be a function, it has nothing to do as a method. If it does touch those data then in multithreaded applications synchronizing only one amongst others doesn't make any sense: encapsulated data is a share resource. In java you don't have functions, only methods, so I sort-of understand why they did it that way. But in any other (sane?) language functions should be decoupled from methods anyway.

Reply via email to