Joshua said:
Which is to facilitate migration of generics.
No, unchecked conversions have other, commonplace uses, as I just got
through explaining. Now the final word on that matter has been said, so
please don't keep arguing this point.
such unchecked conversions will be unnecessary with reified generics.
That's an argument for reifying generics, not an argument against
allowing a programmer to cast to an interface with matching signatures.
Such casts would also be intended to typically be temporary, until
whoever owned the target class got around to tacking on the appropriate
"implements Foo".
Hey! You just insulted me again!
What is your beef with me, anyway?
I actually support operator overloading.
That claim is not consistent with a single other word you've written in
this thread, and frankly inconsistent with a great many of those.
Your proposals are not adequately addressing these hurdles.
I didn't ask for your opinion of how "adequately" I do anything, and
I'll thank you not to broadcast negative such opinions in any public place!
My proposals were quite adequate in every meaningful respect. They were
not detailed specifications covering every single corner case -- I leave
that sort of thing to higher geeks on the totem pole. If you'd have
preferred to see a post full of detailed specification proposals, rather
than broad use-case based proposals, well, too bad. This newsgroup is
not solely for posting things you like. Its charter constrains the topic
to Java programming and related topics, and no farther. Language change
proposals seem on-topic enough to me.
An appropriate response by you would have been any of:
* None at all;
* "Please provide more details regarding suggestion X";
* "How do you plan to address possible problem Y?"
Yours was none of the above. Yours was full of things resembling:
* "That will never work!"
* "I don't like this."
* "Are you crazy?!"
* "Idiot. That's completely pointless, and won't work besides."
(Though the epithets were less explicit than above, those are basically
accurate capsule summaries of the semantic content of the things you wrote.)
It looked like unreasoning negativity about the proposals (liberally
sprinkled with strongly implied negative opinions of the proposer), not
like either reasoned objections OR requests for further detail.
If you really intended the latter, perhaps you should work on your
communication skills.
I'm trying to save bandwidth and breath.
You can save more bandwidth and breath by not replying at all. In fact,
by insulting me, dissing my proposals without explaining why, and
generally pissing me off, you ended up *wasting* bandwidth and breath
arguing with me for several further iterations. Your strategy backfired,
sir!
Brevity at the expense of no longer communicating your true meaning
(e.g. "Idiot, that will never work" taking the place of a detailed
suggestion of problems that would need to be overcome, or a request for
more detail from the proposer) is too much brevity.
[ Snip several paragraphs of information all resulting from an incorrect
No. Nothing about me is "incorrect" and you will desist from publicly
insulting me now.
I thought we were making progress, but, sadly, I now see that you have
no intention of engaging in civil discourse, and indeed most of your
rudeness and your "miscommunications" have probably been quite deliberate.
(Why else would you have said all that you have about how it's been a
miscommunication and you're sorry for coming off as ruder than you
intended, then turn right around and engage in frank namecalling again?)
Operator overloading is (or at least should be) principally used for
mathematical constructs.
Agreed.
There are several structures for which operations are not commutative.
And generally, these are regarded as "multiplication-like" rather than
"addition-like". I DID take abstract algebra 101 in university you know.
Note that, in programming, even regular
addition is not necessarily commutative.
a + b == b + a, right? No.
((byteArray[i++] & 0xff) << 8) + (byteArray[i++] & 0xff) is no
(byteArray[i++] & 0xff) + ((byteArray[i++] & 0xff).
That's cheating -- the expressions for a and b have side effects. My
proposal can be amended to specify that temporaries be made and side
effects occur in the "expected" order:
z = x + y; -> t = x; u = y; z = x.plus(y); or z = y.plus(x);
If x and y are expressions with side effects, this will do the right
thing. (This is similar to how you'd make a C macro safer.)
I trusted the engineers at Sun to get little details like this right.
Apparently you don't trust them as much, so unless I come up with a
strategy to deal with such corner-cases, you assume the corner-cases
will cause trouble in production code down the line.
I find your lack of faith disturbing.
(There's also the question of whether x + y == y + x with doubles and
other fp types, even given roundoff, but the operation is conceptually
commutative even if it's only approximately so in actual implementation,
and code that relies on fp == equality is code that has a design flaw
regardless.
You're making assumptions which don't pan out.
You're making insulting insinuations about me in public which don't pan out.
Study some abstract algebra
This, I find to be exceptionally condescending and rude. How dare you
insinuate publicly that I'm uneducated in an area where I am, in fact,
educated!
Obviously in some cases inversion or division like operations just won't
make sense, or won't always work depending on the operands. This is not
a coherent argument against allowing operator overloading any more than
it is a coherent argument against allowing a method to be named
"dividedBy" that throws exceptions or is not present in Object and all
of its subclasses.
It's repeating the same thing over and over again.
Yes, you are. Fortunately I have found some people here that are, like
myself, educated adult human beings with a willingness to have civil and
intelligent discussions instead of repeating the same thing over and
over again.
Unfortunately, you do not appear to be one of these.
As I said, I do not wish to repeat myself when it adds nothing new.
Then either say something original or don't click "reply".
That would make me a politician.
Voted for Obama this time 'round. Next time, I don't know who I'll vote
for (since I don't even know who'll be running), but I do know I won't
be voting for you. (Sorry.)
Technically speaking, the United States /could/ declare war on China
tomorrow. Probably won't, though. Practically speaking, it is difficult
for Java to not have chosen C++ syntax for various reasons.
Well, as I said, there's not very many other plausible syntaxes in the
specific case of generic parameter lists, save for variation in the
choice of delimiters.
As I see it, all three would have to happen for any one to be
sufficiently valuable to warrant consideration for inclusion.
So, some things should happen at the same time as some other things.
This is the substance of your argument that none of them should happen
at all?
(What's the point of getting clean drinking water to that African
village? They'll just slaughter each other in war or die of malnutrition
or disease anyway. What's the point of peacemaking there? They'll just
die of cholera from their contaminated water supply anyway. Etc. How
fortunate for African villages that aid workers do not think as you
apparently do!)
You are discussing inclusion of a C/C++ feature.
I am discussing inclusion of a feature. What other languages might
happen to have similar features is not germane.
No, my objection is that you've added nothing to the debate.
In other words, your objection is that I was unoriginal.
OK, then.
Guilty as charged.
Now what are you going to do, lock me up along with about 6 billion
other people? I'd like to see you try.
I'm trying to help you by letting you do something: add value to a
currently valueless debate.
You are insulting me and engaging in unproductive discourse that
generates more heat than light in an effort to *help* me?
You think that being rude to me somehow enables me to do something I
otherwise didn't do?
I disagree. I think that all you've done is cloud the issue and clutter
up this entire thread with your negativty, *impeding* any discussion
you'd find valuable. The more time I have to spend defending myself
against unpleasant and inaccurate public insinuations made about me, the
less time I have to spend refining my proposals or discussing them
intelligently and in detail with other civil, rational adults. The more
such people are turned off from reading this entire thread because it
looks more like a pissing match than a reasoned debate (no thanks to
you) the fewer will engage in adding that "value" you apparently crave.
More generally, of the below three actions, precisely one can add value
to a Usenet debate, and one tends to subtract it, while the remaining
one has no effect. You get three guesses to determine which is which
(and there are only six possible permutations). Time starts now:
* Add value yourself by posting a reasoned and intelligent response.
* Flame one of the other participants for not adding enough value for
your tastes.
* Lurk instead of posting anything to the thread at all.
Maybe if I can clue you in enough, I can finally give you the help
you need...
As long as you cling to the attitude that Harold Yarmouth is a poor
uneducated idiot that has to be patronized and treated like a child
until eventually he might some day be able to contribute something of
value, instead of understanding that in fact Harold Yarmouth is an
intelligent and educated man who already can contribute plenty of value
(even if not all of it fits your *personal* definition of "of value"),
then we can not have any productive or worthwhile discussion about Java
and it would therefore be best for all concerned if you did not reply to
any more of my posts in this newsgroup.
Insulting, patronizing, rude nonsense like what you wrote above can
serve no constructive purpose here. All it might do is further inflame
tempers and "shed more heat than light".
Also, see above. (You have two guesses left after, apparently, one wrong
one, and half your time remains. Use it wisely!)
Pedantically, we're not discussing Java programming. We're discussing
Java features.
Java's features directly impact Java programming, and indeed are at the
very heart of Java programming.
[ More aggravating paragraphs based on a faulty assumption ]
The only faulty assumptions that have been made here have been made by
you. The only one being intentionally aggravating around here is you.
As I said, I don't hate operator overloading. I'd love for it to be
included.
Every previous post of yours implied exactly the opposite.
You have forgotten one of the more important lessons for being a
politician: stay on message, and say it clearly. You've apparently done
neither.
It's just that your proposal has flaws for which you have not
found, nor (apparently) seek to find, fixes.
As stated originally, it lacked detail and glossed over some areas. I
wouldn't precisely call that "has flaws". You may have made assumptions,
filling in the blanks (incorrectly) and then concluding that it "has
flaws". Heck, perhaps it actually does have flaws.
Merely accusing it of having flaws is not constructive, however.
Polishing and working out a very detailed all-i's-dotted-and-t's-crossed
specification was a task I figured to leave to greater minds than mine.
Instead, all I seem to have gotten is apparently-unreasoning criticism
from apparently-lesser ones -- though that appearance *may* be the
result of a simple refusal to communicate clearly on the part of the
critic in question.