R
RobG
entirely subjective.
Of course. You seem more interested in a philosophical discussion
about what is (or isn't) science, I'm not.
Science snobbery probably.
No, an attempt to arrive at a conclusion to this ever more pointless
discussion.
I dont notice trees doing quantum physics. Wat else would it be?
Pointless philosophical theorising?
Actually, its not.
Beacause it leads to a general theory of Knowledge, and enables you to
e.g. pit creationism against science on the CORRECT terms.
Heck, it's all just conjecture in the final analysis. What is correct?
How may circles do you want to turn? Why would I be interested in
discussing science versus creationism? I'm not interested in going
there.
, and see them
for what they are.
You introduced isms, I'm not going to discuss them.
[...]Ultimately an engineer is a caveman who, with no science at all, ties a
stone on the end of a stick, and bashes idiots who are still looking for
Explanations as to *why* it works, over the head, and eases their
troubled minds that way.That caveman is not an engineer by my definition. The original
question is "What is a software engineer". My position was that the
difference between an engineer and a tradesman is that the engineer
uses scientific methods to develop solutions. Doing something simply
because it works without any understanding is not a scientific
approach. It might be successful (i.e. it might "work"), but it's not
scientific.Which is a suitable analogy for developers who have no understanding
of why the code they write works, and therefore no understanding of
when it will fail. Your caveman will be bewildered by the mob who work
out how clubs work and develop suitable defences or superior weaponry.
Sure, but he got there first.
In your hypothetical example created to support your argument. But it
says nothing about whether his actions quality him as an engineer or
not. I say not because his methodology doesn't fit my definition of an
engineer. You say he's an engineer because you say he's an engineer.
That's more akin to faith than reason, it certainly isn't a logical or
scientific conclusion.
[...]You should note that this is why computer *scientists* are such an
infernal waste of space. They want to know how it all works. Software
engineers don't need to know how it works.Such broad generalisations are a poor substitute for reasoned
argument. It's absurd to argue that computer scientists are a waste of
space as without them there'd be no computers or software engineers,
or this discussion. Or were computers invented by a bunch of people
connecting a stack of valves together and messing around with them
until the light (literally) came on? Was the first logic circuit
simply chance, or did someone actually design it from first
principles?
Actually the first logic circuits were invented by mathematicians, not
computer scientists,
That is hardly surprising as mathematics is a fundamental tool
required for much of science. That someone calls themselves a
mathematician does not preclude them working in the field of computer
science nor also being called computer scientists.
and the first electronic computer was built by a
post office engineer, because the mathematicians hadn't got a clue how
to make 20,000 valves run for more than a minute without one failing.
So there we have it, an engineer who applied scientific knowledge and
methods to build a device. So you do have criteria for what an
engineer is, you just aren't prepared to supply a definition.
Here's the Wikipedia definition (which is as good as any I can come up
with):
"Engineers are concerned with developing economical and safe solutions
to practical problems, by applying mathematics and scientific
knowledge while considering technical constraints[1][2]"
<URL: http://en.wikipedia.org/wiki/Engineer >
That is pretty consistent with what we've both been saying, except you
want to introduce philosophy into it to remove the word
"scientific" (perhaps you'd also like to remove "mathematics" too).
[...]
Only if you apply the science correctly, can do the massive
calculations, needed, and do actually ask the right questions.
Now you're back to quality. The methodology is the primary criterion,
how well the principles are applied just tells you how good an
individual is at being an engineer. If they are particularly bad at
it, you might stop calling them an engineer. If no scientific
methodology at all is applied, I wouldn't call them an engineer..
In just about every place I've ever worked the actual science underlying
the engineering has been really really small as a part of the overall
project.
At best it shows what the theoretical limits are. At worst it is simply
too long winded to get the answers needed in the timescales available,
and too simplistic to cover all the bases.99% of engineering is trial
and error testing and calculation by rule of thumb, or tables.
Which is, more or less, a scientific methodology. So we're in
agreement, engineers employ scientific methods to develop things.
One pof my professors was a world expert in pre-stressed concrete beams,
He had been for 20 years. I asked him how he could spend 20 years
understanding concrete beams. "Its very complicated", he said, "many
factors to be taken into account, and an awful lot of statistics".
"So how do we manage to use it when we don't fully understand it"
"Oh, we test its to make sure it works" he said. "And there are tables
of the results of all those tests available. Then we add a safety
margin, and that's what we build to"
Not quite the learned science I was expecting with hard clear answers.
But absolutely consistent with practical use of scientific
methodology. Sometimes there is no theory or algorithm for doing
stuff, so experimentation and application of results is all that is
available. It is particularly true in the area of materials science
(or you might prefer it was called materials engineering).
That is true.
That is not.
It is, you described it yourself above. It is exactly what your
concrete beam specialist was doing. He was performing science, that he
calls himself an engineer simply means he likes to identify with the
more practical side of things and apply knowledge to find solutions
rather than looking for more theoretical outcomes.
You obviously haven't been involved in developing things.
I have, and I've never called myself an engineer or scientist. Though
someone tried to call me an "application engineer" once, I didn't like
it. I preferred to call myself a software developer, even though I
wrote very little code. At that time, people who would now be called
"developers" were called "programmers", so developer was apt.
Development is
an iterative process of build-test-redesign until its 'good enough'.
And what is that other than application of a scientific methodology?
You're agreeing more furiously the more you write.
The concepts of e.g. the gas turbine were written up in a paper in 1925,
it was about 1942 before materials technology was good enough to make one.
Which doesn't disprove the hypothesis that engineers employ scientific
methods.
No, in my EXPERIENCE of reality, as a practicing engineer across many
fields, most engineers work most of the time purely by trial and error.
Not purely. They start somewhere, they experiment, they record the
results, they see if it's good enough yet. If not, they attempt to
predict what to do next to make it "better". They don't blindly just
do stuff hoping something just works.
Nothing of what you have written disproves the notion that engineers
apply scientific methods to developing things. They are usually at the
more practical end of invention and innovation, which means a primary
research tool is experimentation (only boffins like Newton and Hawkins
think they can figure it all out in their head).
Some of the greatest human minds have been at once mathematicians,
scientists, engineers and artists - people like Archimedes and
Galileo. Experimentation was fundamental to their learning and
discovery. Archimedes was on the cusp of discovering differential
calculus in 200 BC, now that would have put the Greeks well ahead of
those pesky Romans (if they'd had the engineers to apply the
knowledge, of course). But the Romans managed to kill him while trying
to kidnap him, it took nearly 1,800 years for someone else to publish
similar work.
<URL: http://en.wikipedia.org/wiki/Archimedes_Palimpsest >
[...]
Many a compsci have I seen grappling with code when it was obvious to an
engineer, that there was a hardware fault ;-)
- you can't win a debate by simply defining your protagonist out> of the argument.
I am merely trying to point out, that the scientific disciplines are not
about developing usable artefacts:
I think you simply draw a line and put science on the theoretical side
and engineering on the practical side. You then introduce all sorts of
philosophical argument to show that "east is east and west is west and
never the two shall meet". But they do, and they can exist in perfect
harmony, as Kipling's ballad goes on to explain.
at best they lay the groundwork for
them, and all technological development is tedious trial and error
testing to attempt to fulfil the theoretical promise of what the science
or mathematics actually shows.
I didn't say engineers *are* scientists (though they might be), but
that they employ scientific methods. You seem to think those methods
are reserved for engineers and that their use defines an individual as
an engineer.
At the end of all that, were discussing terminology. You have an
aversion to scientists and don't like the idea that you, as an
engineer, employ scientific methods. Perhaps you'd rather say
scientists employ engineering methods - whatever. We're talking about
the same thing.
The arguments here are essentially spurious, as the the concept of
'correct' code in absolute terms: There is only stuff that works, and
stuff that doesn't. All the 'correctness' doesn't guarantee jack shit,
and has been proven to be that way. Its pure intellectual snobbery by
people who think they know what science is, but don't.
You really have a bee in your bonnet about scientists. Science covers
a vast array of disciplines, some technical and some not. Some areas
are based almost solely on experimentation, others almost solely on
theory. To mire yourself in argument about what is or isn't science is
pointless when looking for a description of what is an engineer. All
I've got from you so far is that an engineer isn't a scientist and
that they employ what I call scientific methods and you call (more or
less) trial and error.
But inherent in that is the requirement to observe and record results,
then apply analysis to determine where to go in the next iteration.
And when you run out of ideas (or money or time), you might take a
leap to some unknown point in the hope it gives a better result
because so far logical deduction has failed. And if you're lucky,
you'll discover not only a suitable solution, but also a theory or
algorithm to help with similar problems in the future, which might be
no more than a more efficient method of trial and error.
That is applying scientific methodology. And the person who did it
might be called an engineer (or scientist, or technician, or
developer, or whatever you think they should be called).
Thomas pointed ears had the only real valid point. If you see a bit of
code you don't understand, you RTFM till you do. If it turns out that it
works DESPITE what the manual says, you are on very thin ice.
But a proper professional engineer wouldn't even do that. He wouldn't
write it in the first place.
How would this hypothetical engineer have known not to do it? Where
did the knowledge come from? You've said engineers work by
experimentation alone, now a criterion is added that they can't employ
any technique or method that isn't popularly known - where is the role
for, or even possibility of, experimentation in this scenario?
Your professional engineer can only be discovered by asking you which
one is the professional engineer, because you won't supply a
definition and apparently they're not allowed to use the very
techniques and methods that distinguish then as engineers.
I've been there, and told my coders 'I dont
care how fucking elegant it is, and how smug you feel having written it,
no one but you understands it, no one has the time to read the obscure
page in the manual where it says it will work, potentially not even the
next browser writers to come along, and frankly you are not the most
essential person here, and I won't have you writing code that makes you
so: There are no prizes for elegance. The prizes go to the humble people
who turn out plain standard workmanlike code that everyone else can
understand and fix, and if that's too dull for you, the door is over
there ->, and if you like intellectual puzzles, do the crossword in your
lunch break'
I can agree with most of that from a pragmatic "get it out the door"
perspective, but you still haven't provided a definition of what a
software engineer is.
THAT is software engineering.
But which person in the above scenario is the software engineer?
The management of people whose egos exceed
their overall understanding and usefulness. They generally have compsci
degrees.
Ah, so in your definition-by-example methodology, being an engineer
also requires management skill. I'd dispute that it is a requirement
of being an engineer, while recognising that it is a very useful skill
to have and that many engineers take on project management roles.
I have participated in project management seminars attended by
engineering project managers who didn't consider that project
management might extend beyond the construction industry. Needless to
say an IT project manager is something of an oddity to them, but they
generally accept me in the end.