Who gets higher salary a Java Programmer or a C++ Programmer?

A

Arne Vajhøj

Daniel said:
Although I agree with Arne, I think his conception of what constitutes
"engineering" in the software sense is probably too exclusive. In
construction, the engineers design the structure then pass it off to the
builders who then build it to spec. For software, the "builders" are the
compiler, linker, and runtime environment. The writing of the code is
part of the design processes.

It is sometimes difficult to find a 100% matching analogy.

If a project do extremely detailed design, then I will consider
writing the actual code part of building.

And it fits with:
- it is very unlikely that a compiler turns good source code
into bad binary code
- it happen that a builder mess up a good blueprint
- it happen that the programmer writing the code
mess up a good design

But very few projects do detailed design to make writing
the code pure building. It is often a mix of lowel level
design and building.

Arne
 
L

LR

James said:
I conclude that you are using a rhetoric technic that isn't
being recognized or understood here. (Happens to me all the
time:).)

I suspect that I'm being misunderstood, yes, but that might be because
I'm not explaining myself well?

But no, I think that he simply didn't have an argument and chose to
complain about mine instead of responding to it. Happens to me all the
time. ;)

Well, OTOH, I must admit the possibility that it's possible that he had
a brilliant argument, and simply choose not to waste it on me.

In the same way quantum physics is a science. Mathematics is
also a science. It differs from other sciences in that it has a
somewhat particular relationship with reality, but if you've
read any Feynman, you'll realize that quantum physics is pretty
much in the same situation.

I haven't read enough Feynman to understand that. How is quantum
mechanics in the same situation?
(And if you understand quantum
physics---supposing that understanding quantum physics is
possible, or that the word "understanding" is even applicable to
quantum physics---you'll realize that it implies that all other
sciences have the same somewhat tenuous relationship to
reality.)

I seem to recall some physicist who said that anyone who claimed they
understood quantum mechanics was self-deluded. I'm not yet at the stage
where I can claim to not understand quantum mechanics because I don't
yet understand classical physics. But maybe that's not possible either? ;)


In a very real sense, one might say that science is
understanding, and engineering using that understanding.

I'm not sure that I agree with that completely. In part perhaps.



Mathematics leads to real understanding, so it is a science.

I don't agree with that. And I don't think I've ever heard anyone
describe math as a science. They differ.

OTOH, I once attended a class in "Social Sciences." I don't know what
that means either. I can say that I don't think it led to "real
understanding."

Also, not to get too involved in a semantic argument, "real
understanding" is at odds with my understanding that math is useful as a
tool because often only limited understanding is open to us.

Applied mathematics uses that understanding, so it is
engineering. In a similar way, computer science determines the
big-O for some algorithm (understanding), so it is science;
software engineering chooses between algorithms on the basis of
that understanding, weighing big-O, cost, etc., so it is
engineering.

I recently came across a link where George Soros uses the term
"financial engineering" with perhaps some of the sense of
"understanding" and "using that understanding" that you meant, although
I think he may have meant the phrase somewhat derogatorily.
http://www.georgesoros.com/crisis-and-what-to-do110608 Is there a
recognized discipline of "financial engineering"?

Of course, there's a lot more to software
engineering than just choosing the right algorithm. Much of it
is involved in choosing the right "technique"---sort of like
deciding whether a bridge should be welded or use rivets.

Like a cobbler selecting what material to use for an upper as opposed to
a sole?

LR
 
L

LR

James said:
That's because you've left us guessing what you mean by
"scientific principle".

I accept this may not have been the best choice of words and your
suggestion of scientific law may have been better.
The examples you've given have been
more akin to formula than to principles.

It may have been better to say resonance rather than give a formula for
an LC circuit.
Software has such
(e.g. big-O forula), and they do play a role in software
engineering, but a moderate role. What makes something science,
however, isn't the formula (chemistry uses a completely
different sort of formula), but rather, the principles which are
used to determine which formula are valid. Why do you accept
F=ma (which actually isn't valid according to modern science),
rather than, say F=2ma, or F=mv? (This isn't trivial. For the
longest time, scientists believed that it was acceleration which
was dependent on the gravitational masses, rather than force.
And today relativistic and quantum physics teach us something
different as well.)

I'll happily accept that correction as well, but then in some sense I'd
might have to revert to scientific principle, or maybe there's a better
word, but not probably not law. I know an engineer who says that
anytime you have to consider quantum effects you're in trouble. My
understanding is that engineering is a very pragmatic endeavor and
what's good enough is good enough. Depending on what good enough means
in the context of the work you're doing.

LR
 
L

LR

James said:
If he does so in a scientific way. If he's just guessing, no,
but if he's basing his choice of which spice to try on the known
characteristics of the spice, and if he meets the other
qualifications (considers price, etc.), then it is engineering.

I think I agreed with something similar to this elsethread.
[...]
I don't think that an engineering approach to something
doesn't mean that it's engineering.

So what is engineering. It sounds to me like using a
engineering approach would be a definition. (Not a good one,
since it is circular.)

I think that I disagreed with this elsethread.
Science tells us whether the algorithm is correct or not,

I think it's math that tells us if the algorithm is correct or not.


and
evaluates its speed (in big-O).

Engineering tells us whether it
is appropriate in the context of the given requirements, taking
into account what science tells us about it (e.g. big-O), but
also other pragmatic issues (like development time).

Sounds a little more like accounting or management to me.

LR
 
L

LR

James said:
Not really. If there are three logs, of different sizes, and I
choose the smallest, because it is easiest to lift, even though
I hae no reason to believe that it will support my weight, it's
not engineering.

No? Didn't you suggest elsewhere that part of engineering was
considering development time? How does this differ? Did I misunderstand
you?
If I choose one of the logs because of some
religious reasons (always choose the one on the right, because
things on the right are holy), it's not engineering.

And yet, I've been told that some religions have god that are technology
related. I don't know enough about them to know if it's true or not.
It's only
engineering if I choose based on scientific fact (or what is
believed to be so by me)---log A won't support me, but log C
will require a lot more effort to put into place than log B,
etc.

Easiest to lift doesn't fall into this problem space?

[snip]
The fact that it costs money:).
Bwahaha.


Seriously: mathematics or
logic, in the classical sense, are sciences.

We disagree on this. Might I ask how you define math and science?
They're concerned
with some sort of abstract truth, determined according to
certain criteria.

Every definition I recall ever reading about science and math differs
from this.
Programming is concerned with solutions, not
the abstract truth. Which makes it engineering, instead of
science.

I don't think this is particularly how math and science and engineering
differ.

(If you accept that programming is a branch of applied
mathematics, then you've accepted the "scientific principles"
aspect;

No, I don't think that's true either. If I need to know the formula a
volume, and I look it up, and calculate it, I might be doing that as
part of an engineering process, but I'm still doing, or using, mathematics.



[snip]

LR
 
T

Tim Roberts

Daniel T. said:
Aren't bridge blueprints carefully drawn one line at a time as well?

I would argue "no". For the most part, bridges are built up from
pre-defined and well-understood modules with limited options and provable
behavior.

You might get an artist's rendering drawn one line at a time.

Even if we do grant your point, the analogy is not valid. I don't drive
over a bridge blueprint. The blueprint is the design document. The bridge
is engineered. With software, that "hand-crafted" artistry is exactly what
I am driving on.
 
T

Tim Roberts

Arne Vajhøj said:
Software engineer is a widely used title in the US.

Try search on dice.com or monster.com !

The fact that it is widely used does not mean that it is CORRECTLY used.
There are many states in which it is illegal to call yourself an "engineer"
of any kind unless you have received an engineering license from the state,
and those license examinations often involve topics in which a software
engineer has no training.
 
L

LR

Tom said:
But i'm right in thinking that one doesn't need either of those to call
oneself a software engineer, i hope?

IANAL, so this is just my understanding and shouldn't in any way be
construed as being advice, mere observation.

Most of the places I know about, you'd need a license to use the word
engineer. There's a test. And perhaps something like an apprenticeship.
And I think the license has to be endorsed by other engineers who will
agree that you have the requisite skills.

AFAIK, calling yourself an engineer without the license is illegal in
many jurisdictions, although, I don't know what the penalty is and I
really do with to emphasize this, IANAL.

OTOH, I've never heard of someone actually being prosecuted for calling
themselves an engineer. I repeat IANAL, but I suspect, but do not know,
that if you did something that might be considered to be malpractice
whilst calling yourself an engineer things might get interesting.

OTOOH, I've read at least one or two arguments in an engineering ng
about what is called a locomotive engineer in the US. From what I've
seen engineers don't like that usage much. Some get upset about it.


Did I mention IANAL? Good, didn't want to forget that. ;)

LR
 
L

LR

Matthias said:
You can only do this if you are writing software that basically is made
up of subparts that have been done before. This doesn't work for all
software. If you've never built something like a bridge before, you
can't apply proven patterns and procedures.

But there is now, a reasonable, if imperfect, understanding of how
materials work and the physics of things like fluids for wind loading,
and these may be applied to almost any structure with care. So for
bridges this isn't, IMO, the same kind of problem.

LR
 
L

LR

Alexander said:
The problem with a program provability that in real life, you only can
formulate complete requirements for small pieces of it. Like for a sort
algorithm, for some calculation, etc, etc. When you start to formulate usage
scenarios for an OS or interactive application, it's not quite possible to
write them down in a form that would be useful for formal proof. Modern
software operates in an environment so indeterministic and chaotic (its
input ispretty much white noise), that one would have very hard time trying
to mathematically prove that a program will do as specified.

I think I agree with that.

But there's something else about this that's been nagging at me, and I
think it might be the issue of system size. I think I've read, either
in this thread, or maybe in a link someone provided that software
engineering was about big systems. You seem to be saying that some of
what people are claiming "SE" can do can't really apply to large systems.

And AFAICT size doesn't seem to be an issue with other kinds of
engineers. Some engineers design bridges, some design the bolts that
hold them together. Both are engineering. But maybe we'd need a better
definition of large since I suspect screws have complications that I
don't imagine.


[snip]
He's saying that for a given set of requirements, you can write
a program which provably meets those requirements. Whether
"halting" is part of those requirements or not---if halting is
part of the requirements, then you write the program in a way
that it can be proved to halt.

I don't mean to be obvious, but can the program be proved to halt?

It seems to me that "SE" is going to have to limit itself to a very
small set of problems about which things can be proven.


Of course, unless provable halting (or anything else) is part of
the unnegociable requirements, it might be poor engineering to
do so. Engineering is a lot about finding cost-efficient
solutions (as opposed to pure science, where cost is not a
factor).

I'm not sure I understand, doesn't this conflict with what you wrote above?

LR
 
L

LR

Martin said:
This:
"But I think I made it plain that engineers don't consider the entire
physics of the bridge. They might not consider fluid interactions or
wind loading or some such."

I suggest you do some reading about those bridges.

I have read a bit about them. Sorry, but I really am quite confused now.
You said that they ignored wind loading and I agreed that they might
not consider fluid interactions or wind loading. Perhaps you object to
the redundancy?

Could you please explain to me where we disagree?

LR
 
A

Arne Vajhøj

LR said:
What is your understanding of the requirements to call yourself a
software engineer?

In most places it is a job title not an academic title or other
type of certification.

So in most places the requirements is that a company will give
you a job with that title.

Arne
 
L

LR

Paavo Helde wrote:

[snip]
So it appears
that my source code file represents an enormous simplification and
approximation of the actual computing process taking place on the machine
at the time my program is run. In other words, I can predict with some
certainty that my program will work correctly,

Makes the process easier, but doesn't change it fundamentally, because
of it's mathematical nature. It isn't a physical process.

LR
 
A

Arne Vajhøj

Tim said:
The fact that it is widely used does not mean that it is CORRECTLY used.

I am very skeptical about so called "correct" definitions of words
that are different from the way they are used in practice.

Arne
 
L

LR

Ian said:
Just like they test their circuits with all possible inputs!

Heh heh. But that's part of the point isn't it?

Engineers don't do that, because they rely on the physics to make
predictions about how things will work over a range of physical conditions.

I think that's more difficult for programmers who work with what is a
mathematical construct where provability is more of an issue.

LR
 
A

Arne Vajhøj

LR said:
OTOH, I've never heard of someone actually being prosecuted for calling
themselves an engineer. I repeat IANAL, but I suspect, but do not know,
that if you did something that might be considered to be malpractice
whilst calling yourself an engineer things might get interesting.

If someone design a bridge, it collapses and it turns out he is a
software engineer with degree in computer science, then I am sure
all hell will break out.

But if a software engineer designs a piece of software that crashes
then I can not imagine him being prosecuted for not having an
engineering degree in bridge building.

Arne
 
L

LR

Tom said:
Hold up - those examples show that, in the cases of those bridges (or
Tacoma Narrows, at least), the engineers indeed did not consider wind
loading!

Maybe you can clear this up then. I think that's what I wrote or at
least implied I think that's what MG wrote above. I honestly don't see
where we have a disagreement.

Confusedly,

LR
 
L

LR

James said:
There are similarities, but testing is not an option for all
disciplines. How do you "test" a skyscraper?

They build mathematical models, with the knowledge that since our
knowledge of the physical world is imperfect the models won't work
perfectly. But these are used to come as close as you can with the
scientific knowledge (law?) available. Then you make some physical
models, maybe full size ones, for testing various kinds of things.

I only know this from reading about it in some book long ago, since
besides not being an engineer, I'm not an architect either. ;)

The model I read about was to test for windows leaking in rainstorms.

I'm not sure if they'd still do that today. Maybe use some CFD code to
check, although more recently, I think Boeing had a bit of a surprise
when an engine they were testing let loose like a flame thrower on
takeoff. The computer models did not predict this. Well, like I said,
our understanding of the physics is imperfect.

There are some other interesting things about building failures
including that they tend to be publicly investigated. Both formally and
informally. People make documentaries about those failures.

Also, I suppose it depends exactly what you are testing the skyscraper
for. I saw a documentary about how the people who study how groups of
people act during catastrophic events, like fires, or earthquakes build
full scale tiltable models of staircases to see how people will move on
them in various stressful situations.

LR
 
L

LR

Martin said:
Why on earth would it do that?

We're not yet /required/ to belong to a professional association like
medical doctors.

Are doctors required to belong to a professional association? May I ask
what jurisdiction you're speaking of.

However, in almost every jurisdiction that I know of where it would
matter, software engineers, actually anyone who calls themselves an
engineer, like doctors, lawyers and hairdressers are required to have a
license.

Am I wrong?

LR
 

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,813
Messages
2,569,699
Members
45,489
Latest member
SwethaJ

Latest Threads

Top