J
jacob navia
If there is a common sacred cow in this newsgroup it is the
"portability" sacred cow.
In the name of it everything will be accepted. Portability means in this
context, let's take the worst system around, and make it the common
base. Reject all the improvements that other software contexts offer and
just use the worst. This will guarantee that your code runs everywhere
Now, there is no free lunch and the portability crazyness has some
obvious costs.
For instance, OpenBSD has a function free() that is security conscious
and erases the freed memory before reuse. This would have stopped the
heartbleed bug in OpenSSL but it wasn't used.
Why?
Because some systems had a very slow "malloc" function and the OpenSSL
team decided to write their own malloc/free replacements. Also in the
name of portability, all kinds of cruft was left cluttering the code to
cater systems like VMS, for instance, that nobody uses today.
Because, portability has a REAL COST, in terms of levelling by the lower
common denominator, making for a conservative attitude (that fits this
newsgroup very well) that hinders progress in software development and
provokes all kinds of cruft to be added to ALL implementation of a
software to cater for the bug of some system.
Portability should be weighted with USABILITY and STABILITY, two things
that we never discuss since they tend to be non portable
In my opinion, portability comes AFTER STABILITY and USABILITY, well
after those.
jacob
"portability" sacred cow.
In the name of it everything will be accepted. Portability means in this
context, let's take the worst system around, and make it the common
base. Reject all the improvements that other software contexts offer and
just use the worst. This will guarantee that your code runs everywhere
Now, there is no free lunch and the portability crazyness has some
obvious costs.
For instance, OpenBSD has a function free() that is security conscious
and erases the freed memory before reuse. This would have stopped the
heartbleed bug in OpenSSL but it wasn't used.
Why?
Because some systems had a very slow "malloc" function and the OpenSSL
team decided to write their own malloc/free replacements. Also in the
name of portability, all kinds of cruft was left cluttering the code to
cater systems like VMS, for instance, that nobody uses today.
Because, portability has a REAL COST, in terms of levelling by the lower
common denominator, making for a conservative attitude (that fits this
newsgroup very well) that hinders progress in software development and
provokes all kinds of cruft to be added to ALL implementation of a
software to cater for the bug of some system.
Portability should be weighted with USABILITY and STABILITY, two things
that we never discuss since they tend to be non portable
In my opinion, portability comes AFTER STABILITY and USABILITY, well
after those.
jacob