Domain: gnu-friends.org
Stories and comments across the archive that link to gnu-friends.org.
Comments · 3
-
Re:You just ignored everything I've been sayingBut it has improved efficencies in things like short-lived objects, so it's not as far off as you think. By your own admission it's only off by a factor of two for storage even for the poor implementation you wrote.
No, you still don't understand.
The factor of two storage overhead is intrinsic given Java's semantics--it's not a question of compiler optimization.
The overhead in terms of running time is far larger than a factor of two, even with the best current compilers, and it is due to several factors: lack of locality, extra overhead on accesses, lack of vectorizability, lack of aliasing information, calls to the heap allocator that simply can't be eliminated, and garbage collection overhead, to name just a few.
There simply is no way to get anywhere near the efficiency of value classes without actually having value classes.
No, it's just a slightly different way of thinking about the problem. Your code shows that you are way too stuck on operator overloading, and will probably only produce trvial implementations in any language.
You bet I am stuck on operator overloading and that I only produce trivial implementations in any language anymore--numerical code is way too hard to write, debug, and understand otherwise, and numerical methods (the kind I myself come up with) have become far too complicated.
20 years ago, I used to write code in the style you suggest because that was the only way to get it to run fast. These days, we have languages that support abstractions efficiently. Languages like C# and C++. Java is just stuck in the past.
But if you'd like to find text supporting your poisiton, then by all means do so. I've already pasted legal text that supports my position, you go find anything that supports yours.
No, the text you pasted contradicts your position. Read it carefully:
Sun hereby grants you [... specific rights
...] under Sun's intellectual property rights that are essential to practice the Specification [...]
So, Sun explicitly talks about their intellectual property rights that are "essential to practice the specification"; they only give you a license for that intellectual property subject to specific conditions. And they have the intellectual property that puts meat into that legal language: they have numerous patents related to Java, as well as the copyrights on the specs themselves.
What are the conditions?
(i) includes a complete implementation of the current version of the Specification, without subsetting or supersetting; (ii) implements all of the interfaces and functionality of the specification, as defined by Sun, without subsetting or supersetting; (iii) includes a complete implementation of any optional components
Those conditions are hard to meet. Furthermore, it is unclear whether there is any way you can independently prove that you have, in fact, met them. Even if you have met them, Sun can kill your work by changing the specification when they want to--they own the specification.
It's true to say you cannot officially lable a project with the "Java" trademark. But that is it - as for writing something exactly the same as Java, anyone can do it.
No, that is not the situation. The situation is that Sun owns the copyright on the specification and they own patents on key Java technologies. In order to practice the specification, you need a license for both. They only give you that license under specific, restrictive conditions, conditions that nobody has been able to meet for a full Java implementation so far.
I wonder what RMS thinks about MONO? I'm pretty sure he would dislike the patent laden spec it's built on quite a bit more.
Quite to the contrary. The FSF and RMS support both Mono and Portable.NET, two separate implementations of C#.
In contrast, RMS cautions people and asks them to stay away from Java. -
Re:You just ignored everything I've been sayingThere is no inefficency. Value classes are essentially semantic sugar and gain you nothign at all in the end.
Consider:class Complex {
So, how much does the array of 1000000 Complex numbers take? In Java, it's 20 Mbytes (4 for each pointer, 8 for each header, 8 for the data). In C#, it's 8 Mbytes (8 for each data item).
float re,im;
Complex(float re,float im) {
this.re = re; this.im = im;
}
Complex plus(Complex other) {
return new Complex(this.re+other.re,this.im+other.im)
}
}
...
Complex data[] = new Complex[1000*1000];
for(int i=0;i<data.length;i++) data[i] = new Complex(rand(),rand());
Complex total = new Complex(0.0F,0.0F);
for(int i=0;i<data.length;i++)
total = total.plus(data[i]);
How many heap allocations does the summation take? In Java, it allocates 8 Mbytes of garbage with 1 M calls to the storage allocator. In C#, it allocates no garbage and makes no calls to the storage allocator.
Look moron, I told you that ANY PART OF THE JAVA SPEC HAS FREE AND UNENCUMBERED USE OF ALL PATENTS INVOLVED. That means ANYONE can make use of the technologies, and Sun or other patent holders have explicitly given up all rights to those patents.
No, the "moron" is you, because that simply isn't true. Sun likes to pretend that that's the situation, but if you actually read the licenses, you'll see that it is not true.
That's the problem: not only is Java highly proprietary, Sun is lying about it. And I'm not alone in my views, the FSF has come to similar conclusions.
No, the community owns the results - for instance if I contribute to a JCR the results could also end up in GCJ, or in Jikes, or wherever. That's what it means to have a truly open process instead of a puppet standards body.
That, too, is wrong. Take a look at the legal verbiage that comes, with, say, the Java API XML Parsing Specification, final release: it is owned by Sun and you can only use it if you agree to detailed and specific compatibility requirements.
Sun may tolerate the implementation of open source versions for now, but they can change their mind at any time.
How do you think GCJ can be written?
Gcj is not a Java implementation: neither is it compatible, nor is it certified. Furthermore, even in its incompatible and incomplete state, gcj probably violates Sun's intellectual property. And letting software developers fall into the trap of starting to rely on patented ideas and then assert the patents and other rights a few years later has become a common strategy. Developers need to be smart about it, and the smart thing to do with Java is not to touch it.
That's about it for me, you are a waste of time since you obviosuly can't learn anything.
Not from you. But you could learn something from me.
and have ignored every point I have made about ACTUAL performance in Java being superior vs theoretical performance boons you will never see.
For the applications that interest me, C# is already faster than Java simply because Java lacks the necessary primitives. And I'm sure Mono will catch up performance-wise with Sun's Java implementation quite quickly. And while Mono's Microsoft heritage is not something I particularly like, Mono's and C#'s legal situation is still far better than Java's. -
More like Roadkill.Here is my solution to making the X-Windows desktop more productive and user friendly:
YesTool, a GUI interface to the classic powerful Unix utility " yes ", written by the great hacker and University of Maryland alumni David MacKenzie!
YesTool will be totally user configable, just like the permissive command-line " yes ". It will be written in object oriented reusable code using parameterizable C++ templates, so you can easily subclass it to make your own tools like NoTool, MaybeTool and ExecutiveDecisionMakerTool. It will support drag-and-drop in single-answer or streaming mode. Also an emacs support package is in the works, with a special command called "psychoanalyze-yes"! And of course it will support gestures, and video input so you can nod and shake your head.
For more information on " yes ", type "man yes". If you don't have enough men in your life, type "yes man".
I've written up a design spec in Star Open Office, made some concept screen mock-ups in Gimp, hacked up a prototype in GTK-Perl, but I still just can't seem to get drag-and-drop to work on X-Windows. I'm going to put the prototype up on SourceForge so everyone else can contribute, as soon as I can figure out how to get the damn autoconf file to work.
-Don