Re: Who gets higher salary a Java Programmer or a C++ Programmer?
On Nov 27, 2:05 pm, LR <lr...@superlink.net> wrote:
Sabine Dinis Blochberger wrote:
LR wrote:
[...]
If I accept the definition given above. But to my mind that
would make "software engineering" a unique thing. Different
from say chemical, mechanical or civil.
Well, the same thing could be said about chemical engineering.
Or electronics engineering. Each engineering discipline is
unique. What makes them "engineering" is that they use a
scientific approach to solving pragmatic problems.
But perhaps there is another branch of engineering that
doesn't require the application of scientific principle?
They all do, including software engineering. That's part of
what makes them engineering.
There is a certain personal satisfact to be had in knowing
that you've just delivered a program which actually works.
Do the programs provably work? To the same extent that an
engineer could "prove" that the bridge they designed will
work? What kinds of metrics are used? Does software have
a stress point beyond which it will deform, like the metal
in the bridge will?
The criteria are different, so you can't apply physical
strength to any project. There is stress testing in software
development.
There are viruses and bugs too. Is software development
biology? I don't mean to be flippant, but the mere use of a
word doesn't confer meaning on the object it refers to, does
it?
Certainly, but as I've pointed out elsewhere, software
engineering is as rigorous in this regard---perhaps
moreso---than e.g. bridge design, or some of the other
activities you've named.
The engineering part makes sure the software has been tested
for all possible (and impossible) events/usages.
I suspect that this is not even likely. I gave a counter
example else thread involving input for a number of boolean
variables, let's say 64. Tough to test all of those.
It's sufficient that it takes a double as input, and it is, for
all intents and purposes, impossible to test exhaustively.
People who claim the software is correct because it passes some
test suite aren't engineers. (Nor are people who forego testing
entirely, on the grounds that it can't catch everything.)
And to repeat, I once spoke to a EE who told me his company
was going to test software for all possible inputs. Once I did
the arithmetic for him he withdrew his statement.
Just because there are incompetents making unreasonable claims
doesn't mean that the field doesn't exist.
And AFAIK civil engineers have formulas to calculate
physical strengths and such, that are based on observation
and experimentation.
They do. I'm sorry, did I say anything to indicate otherwise?
My understanding was that you were forwarding the opposite
argument; that you'd only accept software engineering as an
engineering discipline if it had such formulas. And of course,
we don't have formulas based on physical strengths (although
things like the big-O notation are related in some ways). On
the other hand, the formulas aren't the scientific principle;
the reason which causes the civil engineer to accept them and to
use them is. And there are other "formulas" in software
engineering, to which the same principles can be applied.
If so, please allow me to withdraw that. Although, I suspect
they may not know all there is to know about this yet. I also
note that, AFAIK, at least some of these are of comparatively
recent origin. For example, I think the use of timber in
bridges wasn't even reasonably understood until Herman Haupt
did the experiments to figure out what the strength of the
beams were.
An aspect of engineering that hasn't been mentionned yet is that
it is continuously evolving. It took real engineering talent to
design the pont du Gard, but a modern civil engineer would
probably not recognize (or even accept as usable) any of the
"engineering" techniques used.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34