My two messages to the discussion on the ICS-L list
A simple problem with ‘<‘ in Matlab?
I have browsed the current discussion and it was quite entertaining. It helped me to relax a bit after a long working day.
The question that I am asking myself often recently, who is worse: software developers or users. This discussion shows that users seem to blame more than developers. It happens that many MATLAB users expect miracles and do not want to understand basics of numerics.
The first question to ask yourself is whether you want symbolic computations or numerical ones. If you decide for numerics, then you have to learn how to work with floating numbers. Whether you choose a free software or commercial, this does not matter, the technology for floating numbers is the same.
One can definitely bet that in numerics
0.01 + 0.01 + 0.01 + 0.01 + 0.01 +
0.01 + 0.01 + 0.01 + 0.01 + 0.01 + 0.01 == 0.11
and sometimes it may even work but it would be much better to take a course in numerics.
A couple of comments.
First I was talking not about “become a serious software developer” (Klaas). My point was that it is necessary to understand technology, that is, if someone decides for floating number, he/she must understand that the associativity for example is not there anymore
(a + b) + c != a + (b + c)
The concept of the machine epsilon is also very important. I remember very well the Fortran statement from Forsythe’s Computer Methods for Mathematical Computations
if (1. + eps .eq. 1.)
It took me awhile to understand it. First I thought that this is just a misprint (it is evident that this could not be right) and only when I have run the code I have got the point.
By the way, a very nice book, it is written not for serious software development but rather for public education.
Second, I have recently read A Different Universe by R. B. Laughlin. A nice quote
“One of the more interesting trends of the computer age is that physical science students are increasingly unwilling or unable to write computer code. I was very upset when I first observed this and took stern measures in my department to counteract it … Eventually, however, I realized that the students were right and I was wrong, and stopped the crusade. … The truth is that it is no longer cost-effective for most well-educated people to program their own computers, or even to learn how to do so. The wise use of time is to spend a few bucks to buy a program that does what one wants or, in extreme cases, search the internet for free software.”