On Friday 15 April 2005 02:23, Colin Carter wrote: snip
Programming standards have deteriorated significantly.
My argument:
How very odd. I just ranted on this general subject on another list.
The problem with the software development world is that software developers assume their program is the beneficiary of all system resources. No matter what the technological advance, software advances as fast, or even faster, to consume and overtake it. Yes, I have noticed how most modern programs waste time poling the mirriad of open windows .... Today, developers code for their own convenience without regard or respect for system resources. While hard drives, physical RAM and CPU caches have become faster and larger, code has bloated even faster, negating the performance increase. Yes,
On Friday 15 April 2005 21:31, Synthetic Cartoonz wrote: this negates ANY argument that young programmers can write efficient code. These days modern PCs are 1000 times faster, and have 1000 times as much memory so, given that modern programmers have learnt something, their code ought to be at the very least 1000 times faster than ours, but it is not!
From what I see of the entry-level people we hire and fire at work, schools aren't teaching programmers how computers work at even a fundamental level,
Yes. And they are not interested in learning how memory is accessed et cetera. I asked if anybody knew how memory was loaded in an AMD64 and was 'told' "Don't worry, it is cached anyway." Well, I do worry because I want to know the trade-off between using 32 bit and 64 bit integer arrays. For example, is a 32 bit loaded via a 64 bit bus then masked/shifted? If so, then 64 bit would be faster, otherwise 32 bit would be faster. But the answer, even from AMD, is "Don't worry, it is cached." But one registered is not cached, the value must still be loaded from the cache. Of course this doesn't matter with pathetic little programs which interface with the user, but it does matter when the code takes up to 32 hours (yes hours) to execute.
so they have no real idea what "efficient" means. It is quite common to find some Object Oriented "expert" (that's someone with a degree and one job on their resume) who can't build a simple C char array. I've seen quite a few who have no clue at all that a C pointer corresponds to an instrumental, functional part of the CPU and is not merely a language syntax construct.
True. It is interesting that C++ programmers think that 'pointers' are wonderful - considering that addresses are the core of FORTRAN code! snip
Actually, I was reading recently in the Art of Unix Programming, that unrolling loops used to be good optimization, but with CPU caches now, it's better to keep the loop, since there is a better change that the entire code in the loop fits in the cache. Yes, I know. In fact FORTRAN compilers in the late sixties/early seventies were already unwrapping loops. FORTRAN compilers have always put loop counters into a register and counted backwards.
Anyway, why use Adobe - it takes five times as long to open a document than anything else I've seen, and the reader has no control - half the internet sites don't even let you copy it. And they keep changing it so that everybody MUST upgrade. And anyway, although it is massive, it is only a cheap version of Tex.
So you young guys, start writing faster/smarter code and forget the fancy, 'full of options', 42000 font code.
I still have an Amiga 3000 kicking around -- 25MHz 68030 and 16M RAM. (For that sytem 16M is HUGE -- especially back in 1990) I'm amazed that in 90% of practical situations there is no appreciable difference between using the Amiga and using my 1.8Ghz, 1G RAM linux system (or even "faster" Windows systems at work). The GUI is light and fast -- it even makes icewm feel bloated. The apps are a tiny fraction of the size of similar programs on the contemporary platforms and seem to load instantly. It still works as well as it does, because it was designed by a bunch of uber-geeks who had to care that the 68000 address range was only 16M. This sounds familiar.
I think it is a bit of the old K.I.S.S. Regards, Colin