Floating-point promotion behaviour.

A

Arne Vajhøj

Again, I'm only saying that anyone who takes an introductory course in
programming should at least be exposed to the notion that floating-point
numbers are an approximation to real numbers. I am not claiming that all
programmers should have mastered every aspect of numerical analysis.


Ooo, snap!

That is so not relevant.


So they've never taken a programming course?

Come on! Programming is a skilled profession. You need training to do
it. All I am claiming is that that training ought to include the actual
principles of computer programming. You apparently don't feel that it's
necessary that programmers be trained in the art.


That's like saying doctors shouldn't be trained in medicine, or
accountants in double-entry bookkeeping. There is a minimum body of
knowledge required in any profession, and that preparation is supposed
to enable a practitioner to handle, or to learn how to handle the
variety of tasks they may encounter. For programmers, that education
should include the notion that floating-point is an approximation.
Anything less is below the minimum to be a professional programmer.

Airline pilots don't usually have to crash land, but they darn well
better know something of what it requires if they do, as Capt.
Sullenberger can attest. There are just certain things one has to know
in a profession.


So you are supporting the notion that a person can go four years to
college and take even an introductory programming course that never,
ever mentions that floating point is not the same as real numbers? You
justify inaction and lax standards with the notion that "that is how the
world is", and feel that we should take no action to improve it? We
should not expect programming courses to teach programming? We should go
ahead and hire programmers who do not know even the simplest, most basic
information about programming? Really? You are that resigned and
unwilling to stand on even the most elementary of principles?

No wonder the state of the art is degrading as it is, if this attitude
is so widespread.

And comparing the notion that professionals should be required to have
knowledge of their profession to world hunger is a fallacious argument.
Nice rhetoric, but not evidentiary or germane to the argument.

I do not want to live in the world where our professionals are not
required to know the basics of their profession. Here and now I take the
stand that programmers should know how to program. Perhaps the notion
that that is not necessary is a factor in all the crappy code out there.

Software development is not religion - it is supposed to be engineering
and science.

The observable facts are that:
- there are good educational institutions and there
are bad educational institutions
- there are good students and there are bad students
- as result we get new developers that does not know about FP
- and we will also get so next year, the year after and so on

If you are a politician with interest in educational politics
you may try and do something about it. That is your job.

But if you are in software development, then you observe
reality and act accordingly. That is our job.

Arne
 
L

Lew

Arne said:
But if you are in software development, then you observe
reality and act accordingly. That is our job.

I observe the same reality you do, that a significant proportion of so-called
"computer programmers" lack fundamental skills for the profession. We differ
as to what it is to "act accordingly".

You suggest that we allow unskilled programmers to remain so, and to continue
in the profession, if I understand your point correctly.

I alert my management as I deem my fiduciary responsibility when I detect
unskilled programmers on a project. I speak out in public forum such as
clj.programmer in favor of professional standards. I believe a discourse such
as the point-counterpoint between you and me in this thread raises
consciousness and helps others to ponder the issue of unskilled poseurs
stealing from employers who believe that they've hired a computer programmer.

I thank you sincerely for your contribution. You present your case well, and
you have greatly increased the potential for the issue to be addressed. Those
who read our discussion have much more to think about now, and have diverging
points of view to help triangulate their own position. You have benefited
everyone by your presentation.

I acknowledge Gabriele as well, for taking action to fill the gap in their
education. It is a shame that their programming training lacked this
essential information, but like a true professional they worked to make up the
difference.
 
M

Martin Gregorie

Again, I'm only saying that anyone who takes an introductory course in
programming should at least be exposed to the notion that floating-point
numbers are an approximation to real numbers. I am not claiming that
all programmers should have mastered every aspect of numerical analysis.
I agree, but if you're a commercial programmer and hence unlikely to use
FP for anything more than calculating a percentage or exchange rate,
about all you need to know is:

- the limits on the number of significant figures (they might deal
with very large numbers)

- never compare FP numbers for equality. Check that the unsigned
difference is less than your least significant digit instead.

- FP numbers are inexact, so always round to half the least significant
digit before displaying and don't be surprised if a total of such
values appears incorrect if it was a sum of the original FP values.

- never hold monetary amounts in FP because prices and amounts
are always exact figures.
Airline pilots don't usually have to crash land, but they darn well
better know something of what it requires if they do, as Capt.
Sullenberger can attest. There are just certain things one has to know
in a profession.
Sullenberger did a great job. That was a beautifully executed fully held-
off landing but its not something a typical airline pilot might do as
well because if you put one down like that on an airport you'd scrape the
tail off.

Sully is a glider pilot so he knows about unpowered, fully held-off
landings in tail-draggers because that's how you do it in a glider.
So you are supporting the notion that a person can go four years to
college and take even an introductory programming course that never,
ever mentions that floating point is not the same as real numbers?
Some programming courses are worse than you might imagine. Way back when
I was working in NYC one of my colleagues was a graduate from a Comp.Sci
course at one of the NY colleges. He was pretty good, but it turned out
that *all* his course had taught was Cobol programming. He was a good
programmer in spite of his course, because it didn't teach more than a
fraction of the stuff I'd expect a Comp.Sci cource to cover.
I do not want to live in the world where our professionals are not
required to know the basics of their profession. Here and now I take
the stand that programmers should know how to program. Perhaps the
notion that that is not necessary is a factor in all the crappy code out
there.
What about one where people can own and manage banks without a single
banking qualification?
 
A

Arne Vajhøj

I observe the same reality you do, that a significant proportion of
so-called "computer programmers" lack fundamental skills for the
profession. We differ as to what it is to "act accordingly".

You suggest that we allow unskilled programmers to remain so, and to
continue in the profession, if I understand your point correctly.

I alert my management as I deem my fiduciary responsibility when I
detect unskilled programmers on a project. I speak out in public forum
such as clj.programmer in favor of professional standards. I believe a
discourse such as the point-counterpoint between you and me in this
thread raises consciousness and helps others to ponder the issue of
unskilled poseurs stealing from employers who believe that they've hired
a computer programmer.

I would lie if I said that I have not occasionally had the same
feeling.

But if you wanted to get rid of developers that:
- do not understand FP
- do not know what SQL injection is and how to protect against it
- do not understand polymorphism
- do not understand why it is not good to init a new RNG every
time you need a new random number
- do not understand the difference between executing client side
and server side for web apps
etc.
then a larger software company with let us say 1000 developers
would most likely loose more than 50% of the developers.

Arne
 
L

Lew

I would lie if I said that I have not occasionally had the same
feeling.

But if you wanted to get rid of developers that:
- do not understand FP
- do not know what SQL injection is and how to protect against it
- do not understand polymorphism
- do not understand why it is not good to init a new RNG every
time you need a new random number
- do not understand the difference between executing client side
and server side for web apps
etc.
then a larger software company with let us say 1000 developers
would most likely loose more than 50% of the developers.

And would thus double its productivity and halve its defect rate. I recommend
that course of action. In fact, they likely only need about 100 of those
developers.

Absolutely that hypothetical company of yours has too many people on staff
claiming to be programmers and should downsize.

However, I would not fire someone simply for ignorance if they have the
commitment and intelligence and talent to cure it, and didn't lie about their
knowledge. I would, however, scale their pay appropriate to their skill
level. I would fire them in a nanosecond if they refuse to improve or if they
lie about their knowledge.
 
M

Martin Gregorie

However, I would not fire someone simply for ignorance if they have the
commitment and intelligence and talent to cure it, and didn't lie about
their knowledge. I would, however, scale their pay appropriate to their
skill level. I would fire them in a nanosecond if they refuse to
improve or if they lie about their knowledge.
Seems to me that a major problem in the IT industry that far too many
people refuse to accept "I don't know" as a valid answer at the
appropriate point in an interview. I take the opposite view: bullshitting
rather than admitting ignorance is always a wrong response.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,202
Latest member
MikoOslo

Latest Threads

Top