From: Lew on
sl(a)my-rialto wrote:
>> Someone says if one does not know the difference between "equality" and
>> "equivalence", then one is an entry-level developer at best.
>>
>> What is your opnion ? (I think we should not talk about mathematical
>> concepts, since it is the software developer in question.)

Arne Vajhøj wrote:
> First class developers would ask you what you mean by those terms
> (or walkout from the interview, because they don't see any point
> in answering such questions).
>
> Entry level developers may think that the question makes sense.

Here in the U.S., through the 1950s and 1960s, a great deal was made of the
difference, primarily because people would claim "equivalence" when it was, in
fact, not present, and thus the Jim Crow laws were finally repealed.

(For those oblivious to such things, that was humor. In other words, I agree
with Arne. The question is bullshit.)

--
Lew
From: Lew on
sl(a)my-rialto wrote:
>> Someone says if one does not know the difference between "equality" and
>> "equivalence", then one is an entry-level developer at best.
>>
>> What is your opnion ? (I think we should not talk about mathematical
>> concepts, since it is the software developer in question.)

Patricia Shanahan wrote:
> I think the question needs some context to make sense. Both terms are
> very heavily overloaded in computer science.
>
> For example, consider the following: "The equals method implements an
> equivalence relation on non-null object references:"
>
> http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals(java.lang.Object)
>
>
> Maybe this is a rather vague way of getting at the following issue: I
> would indeed expect a competent Java developer to understand the
> difference, in Java, between a.equals(b) and a==b for reference
> expressions a and b.

Well, there we go introducing mathematical concepts, from right there in the
Javadocs, no less!, despite the OP's attempt to eliminate the only reasonable
context in which to answer his point.

--
Lew
From: BGB / cr88192 on

"sl(a)my-rialto" <ecp_gen(a)my-rialto.com> wrote in message
news:hncbbg$h6s$1(a)news.albasani.net...
> Someone says if one does not know the difference between "equality" and
> "equivalence", then one is an entry-level developer at best.
>

this distinction is far too fluid to really be worth bothering to worry
about.
first one has to define these terms, and as well find some consistent way to
distinguish one from another.

if it were identity and equivalence, this would be more plausible (as an
entry level developer can also be reasonably confused by the subtleties of
pass-by-reference and pass-by-value, but anyone with much experience
couldn't get by without knowing this).

now, if one defines "equality" to mean "identity" and "equivalence" to mean
"structurally identical", maybe this works, but could not be safely assumed
from the original statement.


> What is your opnion ? (I think we should not talk about mathematical
> concepts, since it is the software developer in question.)
>

who knows...

the role of math in programming is a subject of debate.

personally, I think many people overstate the role of math in programming in
some ways:
when ever was the last time programmers had to seriously invest time in
things like solving polynomials or writing proofs.

these are some of the core elements of traditional math:
they spend all ones' earlier years forcing off solving on people, and then
later expect them to write proofs.

but, usually the programmer has little need or reason to care:
it matters instead that things work, and that they can get the job done, and
nearly all else is secondary.

the more "advanced" programmer may find themselves messing with issues which
are NOT matters of solving and/or proofs, but more a world often consisting
of endless piles of repetition and boilerplate...


so, it would seem there is a disconnect somewhere.

to the worlds of C, C++, and Java, traditional Math is an alien landscape,
neither sensible nor often particularly relevant... (and those few things
which are relevant are often those things Mathematicians like to sweep into
the corners...).

at nearly every level, some similarities exist, but at the same time, they
are opposed.



From: Mike Schilling on
Patricia Shanahan wrote:
> Maybe this is a rather vague way of getting at the following issue: I
> would indeed expect a competent Java developer to understand the
> difference, in Java, between a.equals(b) and a==b for reference
> expressions a and b.

Me too, but they're both called "equality".


From: Patricia Shanahan on
BGB / cr88192 wrote:
....
> personally, I think many people overstate the role of math in programming in
> some ways:
> when ever was the last time programmers had to seriously invest time in
> things like solving polynomials or writing proofs.
....

I have rarely needed to solve a polynomial as a programmer, although I
have had to understand how to solve very large systems of linear equations.

On the other hand, writing proofs seems to me to be a very practical
activity. For example, I sometimes debug by trying to construct a proof
that the problem could not possibly have happened, taking things I think
are true as the axioms. Given a valid proof of the impossibility of
something that has actually happened, at least one axiom used in the
proof must be false. It is a good way of selecting a set of beliefs to
investigate.

Patricia