Javari's Reference Immutability

Hasan Aljudy hasan.aljudy at gmail.com
Wed Jul 26 03:33:40 PDT 2006



Reiner Pope wrote:
> Hasan Aljudy wrote:
> 
>> I think the question is: what's the point?
>> Clearly, Java's lack of const didn't prevent it from the having some 
>> of the best libraries there are.
>>
> 
> However, it is one of the reasons that Java is so slow. Instead of a 
> proper implementation of reference immutability, anything that needs to 
> be kept constant is either written as a readonly interface, or is simply 
> duplicated. This means either code duplication or data duplication; the 
> former leads to more bugs as everyone knows, and the latter leads to 
> worse speeds. Although lack of speed due to duplication could be seen by 
> some as acceptable, because (a) Java isn't meant for speed and (b) the 
> error-catching achieved by duplication is more important than the speed 
> of not, these arguments are clearly weak, and (more importantly) 
> completely inapplicable for D. Effectively, Java *does* have a const 
> mechanism, just a slow and painful one, because it must be enforced by 
> the coder, not the compiler, and it is slow because it requires 
> duplication.

Actually java provides a StringBuffer which can eliminate most of the 
unnecessary string duplication when one needs to modify a string.

> 
> Just because Java manages to have good libraries it doesn't mean 
> ignoring const is the best solution. Remember also that there is a huge 
> company behind Java, so they can afford the extra time required in 
> testing and documenting their libraries by hand for const violations. 
> However, in D, this is not the case, and even if there were such a 
> company, it would be worse for the individuals, who would have trouble 
> competing with the error-checking resources of the company.

There are alot of third-party libraries for Java, and they're still very 
good. I mean, compare any library that has a version for C++ and a 
version for Java; I bet you the Java version will always be much much 
better. ICU is a good example of this, I think.


> 
> The benefits of const are:
<sbip>
> 

No no .. don't give me theory.
Tell me what's the point of const in Javari.
Show me real life examples that prove Javari to be superior to Java.


> Cheers,
> 
> Reiner



More information about the Digitalmars-d-learn mailing list