[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Low-level vs. High-level programming (was My First Computer)
Tjoff Tjonk <tjoff@tjonk.now> wrote:
| On Wed, 18 Jun 2003 16:59:39 +0000, Kevin Lawton wrote:
|
|| White Flame (aka David Holz) <whiteflame52@y.a.h.o.o.com> wrote:
||| "Kevin Lawton" <kepla@btinternet.com> wrote in message
||| news:bcplc6$b5e$4@titan.btinternet.com...
|||| Cobol programmers respectively. The result is that the end-user,
|||| the consumer, has to provide much bigger, faster and expensive
|||| hardware
|||| at their own cost. The software might be cheaper to produce (though
|||| looking at Micro$oft's prices you'd hardly think so !) but any
|||| advantage gained is paid for dearly with the hardware required to
|||| run it.
|||
||| ??? You can get new, complete, multi-GHz systems for only a couple
||| of hundred dollars nowadays. So while the requirements do go up,
||| hardware costs are continually plummetting.
||
|| The 2 GHz system I built a few months ago cost about 600 pounds = 900
|| dollars. Given that 200 dollars = 130 pounds, we'd be lucky to get
|| much better than a used Pentium-II for that. Maybe a used sub-GHz
|| Penium-III for a little bit more.
|
| So, you think that spending 1800 pounds on a developer's salary in
| order
| to get a 1% speed-up is a better way to spend you money?
I can't even come close to agreeing with your figures. I would expect 2 to 3
weeks development effort to either yield a significant improvement or to be
used more profitably. Are you suggesting that with modern object-oriented
languages extra time spent by an experienced developer can only be expected
to result in a 1 % performance improvement. If so, then this would mean that
either languages such as Java run so efficiently that there is very little
room for improvement or they are so bad that there is little which can
usefully be done to improve the programs. I honestly cannot accept either of
these, though I have noticed that Java runs particularly slowly compared to
most compiled languages.
||| 2) Are you as proficient in what speed-conscious decisions must be
||| made in Java to keep it fast as you are with keeping C code fast?
||
|| Maybe, maybe not. I've done the Sun Java certification course which
|| only made slight mention of performance issues. If there are any
|| techniques you'd like to point out which can make a 10-fold or even
|| 100-fold difference, then I'd be interested to know. I wouldn't have
|| thought the term 'keep it fast' was as appropriate to Java as maybe
|| 'prevent it running terribly slowly'.
|
| You usually need quite a lot more experience that a simple
| "certification course" to be able to comment on performance issues.
Fair enough, I can accept that to a degree but with over twenty years
commercial programming experience I have found that there are some 'tuning'
techniques which are fairly universal across just about all languages and
systems - albeit with varying degrees of effectiveness. It comes from a
combination of familiarity with how compilers and interpreters work and
experience of what tends to produce the best effects. Okay, we all know that
different languages have their own quirks, but something like ensuring that
the most frquently used data items are also the quickest to access make
sense in any language, as does avoiding unnecessary garbage collection and
re-using modules of code. Good programmers apply these techniques
instinctively while coding.
As a further example, a couple of years ago myself (experienced in C) and
another programmer (experienced in Java) both started working in
complimentary roles within a company dealing with interfacing software.
While training, we were given programming excercises to do in both
languages. I used C first and then Java, while my colleague used Java. When
we had completed the excercises, it was obvious that the programs written in
C ran very much faster than those written in Java - even though both had
taken about the same amount of time and effort to write. I'm not saying that
I was somehow the 'better' programmer than my colleague. My point is that
nice shiny new Java is one hell of a lot slower to execute than
old-fashioned C and yet takes about the same time and effort for a competent
programmer to write. Given that trendy pointy-haired Java programmers cost a
bit more than C programmers, where is the commercial advantage in writing in
Java as opposed to C ?