| Since I'm trying out my CODE keyboard [1] I thought I'd go into a bit more detail. My statement about inefficient code quickly is in terms of joules per computation. So while it is absolutely true that a junior perl programmer might slowly generate inefficient code and an experienced (lazy) perl programmer might quickly generate optimal perl code, neither of them would produce the same product written in assembly code (or better yet pure machine code). To put that in a different perspective, I once wrote a BASIC interpreter in Java (one of my columns for JavaWorld) and it was pretty quick to do, and yet looking at the "source" to Microsoft BASIC written in 8080 assembler it was not very efficient. But it took Bill a lot longer to write Microsoft BASIC in assembler, and you couldn't even begin to port a full up Java VM to the 8080 (let's not argue about J2ME). But step back then from that precipice, you have two versions of BASIC, one runs in a Browser and one runs on a 16 line by 64 character TVText S-100 card. (or 24 x 80 CRT terminal). Now you can run the same program in both contexts, unchanged, but the amount of energy you expend to do so varies a lot. So which is more "efficient?" I'd argue the one written in 8080 assembly is more efficient from a joules per kilo-core-second standpoint. Which was written more quickly? Mine, it only took about a week. That is why talking about efficiency and productivity without getting anally crisp in your definitions can lead to two opposite interpretations of exactly the same statement. [1] I find the lack of a wrist pad to rest on a challenge. |