Comment On Rise of the Optimizers

A few years back, Brian F. was doing some consulting for a small web startup that was trying to build a platform for struggling artists to sell their music online. After about a year of "nothing of significance" (READ: they ran out of money before signing on any customers), there was little left for Brian to do and his billable hours were "indefinitely" reduced to zero. However, a year after leaving, the CEO called Brian to say that said investors had been found and that he needed some help taking his vision to the next stage. [expand full text]
« PrevPage 1 | Page 2Next »

Re: Rise of the Optimizers

2009-05-26 11:06 • by Cro
First!

This sounds like the project I'm currently working on...

Re: Rise of the Optimizers

2009-05-26 11:08 • by Fubar (unregistered)
Hey, I'm an embedded coder.

Hey, I have a brother.

Thankfully, if I EVER tried ANYTHING close to that. He'd ground and pound me before I got the words 'single letter variables' out my mouth.

Re: Rise of the Optimizers

2009-05-26 11:10 • by Charles400
What do you mean, "Add a comment?"

Re: Rise of the Optimizers

2009-05-26 11:20 • by Kermos
The whole variable naming thing reminds me of this one guy at a company I worked at. He did exceed 1 letters in his names, usually but this names were still not any more useful.

Generally, they looked like this:

button1
button2
button3
button4
...
button20 (no, I'm not kidding).

That is assuming they were even spelled correctly in the first place. Really a pain to work with someone's code when they can't even spell the word 'minimum' right and have several variables with varying spellings throughout their code.

Luckily he was eventually let go and I replaced him and completely replaced all his code with non-WTF code.

Sadly, he thanked me later as because of this he got hired somewhere else at twice my salary. Is there no justice in this world?

Re: Rise of the Optimizers

2009-05-26 11:22 • by That Troper (unregistered)
I have "x" as a parameter in a couple functions in the media player I'm working on:

setShuffle (bool x) { shuffle = x; cout << "Shuffle was set" << endl; }

Only because it's super-obvious what the function does.a

Re: Rise of the Optimizers

2009-05-26 11:26 • by Capt. Obvious (unregistered)
265342 in reply to 265335
Fubar:
Hey, I'm an embedded coder... and pound me before I got the words 'single letter variables' out my mouth.


That's because you're using compiled source code. Variable name length doesn't matter (up to a limit imposed by the compiler... 32 chars for C?). But for an interperted runtime, single-letter variables are faster*. And whitespace, indentation and whatnot, is just extra characters that have to be processed*.

If you grew up watching clock cycles, you too would know this.

*Sure, the amount of saved time will be next to negligable, or the code can be compiled to an optimized/obfuscated form while keeping a modifiable version somewhere else. But why not get right in there with the 1s and 0s.

Re: Rise of the Optimizers

2009-05-26 11:27 • by Joseph (unregistered)
tchbo

Translation:
This comment has been optimized.

Re: Rise of the Optimizers

2009-05-26 11:27 • by Sven (unregistered)
265344 in reply to 265340
That Troper:
I have "x" as a parameter in a couple functions in the media player I'm working on:

setShuffle (bool x) { shuffle = x; cout << "Shuffle was set" << endl; }

Only because it's super-obvious what the function does.a

And replacing x with something like "value" would hurt nothing and make the code even more super-obvious.

Re: Rise of the Optimizers

2009-05-26 11:32 • by Wonz (unregistered)
265346 in reply to 265344
Sven:
That Troper:
I have "x" as a parameter in a couple functions in the media player I'm working on:

setShuffle (bool x) { shuffle = x; cout << "Shuffle was set" << endl; }

Only because it's super-obvious what the function does.a

And replacing x with something like "value" would hurt nothing and make the code even more super-obvious.


But then you would have to type 8 extra characters!!!

Re: Rise of the Optimizers

2009-05-26 11:32 • by Capt. Obvious (unregistered)
265347 in reply to 265344
Sven:
That Troper:
setShuffle (bool x) { shuffle = x; cout << "Shuffle was set" << endl; }
And replacing x with something like "value" would hurt nothing and make the code even more super-obvious.


A good coding standard would have a way of naming a temporary variable. Mine says that "in the case of only one variable of that type, just the [Apps] Hungarian wart is acceptable". Others I've seen specify ndx, ndy, etc. and still others Temp1, Temp2.

Value is a perfectly acceptable usage, but it's hard to see how that adds anything.

Re: Rise of the Optimizers

2009-05-26 11:33 • by Kermos
265348 in reply to 265342
Capt. Obvious:
Fubar:
Hey, I'm an embedded coder... and pound me before I got the words 'single letter variables' out my mouth.


That's because you're using compiled source code. Variable name length doesn't matter (up to a limit imposed by the compiler... 32 chars for C?). But for an interperted runtime, single-letter variables are faster*. And whitespace, indentation and whatnot, is just extra characters that have to be processed*.

If you grew up watching clock cycles, you too would know this.

*Sure, the amount of saved time will be next to negligable, or the code can be compiled to an optimized/obfuscated form while keeping a modifiable version somewhere else. But why not get right in there with the 1s and 0s.


Wouldn't any reasonable runtime interpreter, regardless of whatever language, be written intelligent enough to keep a cache of the code it has previously executed to avoid reparsing the source file?


Re: Rise of the Optimizers

2009-05-26 11:43 • by Harold (unregistered)
265349 in reply to 265348
[quote user="Kermos"][quote user="Capt. Obvious"][quote user="Fubar"]Hey, I'm an embedded coder... and pound me before I got the words 'single letter variables' out my mouth.[/quote]

...

Wouldn't any reasonable runtime interpreter, regardless of whatever language, be written intelligent enough to keep a cache of the code it has previously executed to avoid reparsing the source file?


[/quote]


Absolutely not. Code I am looking at has a major performacne problem because it does not have nay such optimization. "hardware is cheap"

Re: Rise of the Optimizers

2009-05-26 11:45 • by Omroth (unregistered)
The interpreted language I use has a stringtable for almost everything... so length of variable names doesn't matter. I don't think.

Re: Rise of the Optimizers

2009-05-26 11:48 • by Anon (unregistered)
265351 in reply to 265339
Kermos:
Is there no justice in this world?


No. Justice belongs in a "theoretical course on the computer science" and has "no application in the real world".

Re: Rise of the Optimizers

2009-05-26 12:06 • by Jay (unregistered)
I once worked on a system where all the integers were named n1, n2, n3, etc, and all the strings were s1, s2, etc. I spent hours figuring out what variables really held. Finally I realized that the smart thing to do was, each time I opened a new module, spend a couple of hours figuring out what the variables really were and do a search-and-replace to change the names to something meaningful. Except ... I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description. Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more. While renaming the variables could be done with a quick search-and-replace, trying to untangle these re-used variables was a huge job. After all, if I got confused and renamed "s1" to "customername" when it was really the product name, the program would still work. But if I renamed it to "customername" up here and "productname" down there, and got one reference wrong, now it could be broken.

I still wake up screaming over that one sometimes.

Re: Rise of the Optimizers

2009-05-26 12:11 • by #NA (unregistered)
<00000000cffbe0b0> The text of this comment has been optimized out.

Re: Rise of the Optimizers

2009-05-26 12:15 • by AndyL (unregistered)
In my experience, anyone who is paranoid that you're going to "steal their idea" and go "make a fortune" with it, does not have a single idea worth stealing. Ever.

Re: Rise of the Optimizers

2009-05-26 12:16 • by DStaal (unregistered)
265355 in reply to 265352
I had a boss that coded like that.

The code itself was amazing, and worked really well. He never could understand why I didn't want to mess with it, and left it up to him. (It was his company, founded on the code...)

Re: Rise of the Optimizers

2009-05-26 12:21 • by Paul W. Homer (unregistered)
I've seen way too many startups that precisely match this position. There is a distinction between being able to write some working code and actually being able to build big working systems, that always seems to be missed.

Re: Rise of the Optimizers

2009-05-26 12:24 • by tragomaskhalos (unregistered)
265358 in reply to 265352
Jay:
I once worked on a system where all the integers were named n1, n2, n3, etc, and all the strings were s1, s2, etc. I spent hours figuring out what variables really held. Finally I realized that the smart thing to do was, each time I opened a new module, spend a couple of hours figuring out what the variables really were and do a search-and-replace to change the names to something meaningful. Except ... I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description. Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more. While renaming the variables could be done with a quick search-and-replace, trying to untangle these re-used variables was a huge job. After all, if I got confused and renamed "s1" to "customername" when it was really the product name, the program would still work. But if I renamed it to "customername" up here and "productname" down there, and got one reference wrong, now it could be broken.

I still wake up screaming over that one sometimes.

This reminds me of the "eliminate all local variables and instead use member variables (usually called "m_temp1" etc)" antipattern. Funnily enough, also usually defended by the clueless author as being "more efficient".

Re: Rise of the Optimizers

2009-05-26 12:25 • by schmitter (unregistered)
265359 in reply to 265339
Kermos:
The whole variable naming thing reminds me of this one guy at a company I worked at. He did exceed 1 letters in his names, usually but this names were still not any more useful.

Generally, they looked like this:

button1
button2
button3
button4
...
button20 (no, I'm not kidding).

That is assuming they were even spelled correctly in the first place. Really a pain to work with someone's code when they can't even spell the word 'minimum' right and have several variables with varying spellings throughout their code.

Luckily he was eventually let go and I replaced him and completely replaced all his code with non-WTF code.

Sadly, he thanked me later as because of this he got hired somewhere else at twice my salary. Is there no justice in this world?




No.

Re: Rise of the Optimizers

2009-05-26 12:27 • by CSK (unregistered)
I use i,j and k for loop counters (integers only and always in local scope to the current method) but I'll admit that I'm a bit of a neophyte in regards to working on team projects. I have to ask, is that going to land me on this site one of these days?

Re: Rise of the Optimizers

2009-05-26 12:35 • by A Gould (unregistered)
265362 in reply to 265347
Capt. Obvious:

Value is a perfectly acceptable usage, but it's hard to see how that adds anything.


Well, obviously it adds VALUE!

Re: Rise of the Optimizers

2009-05-26 12:41 • by Alin (unregistered)
$W-$T-$F

Re: Rise of the Optimizers

2009-05-26 12:43 • by Madox (unregistered)
265366 in reply to 265339
Kermos:
The whole variable naming thing reminds me of this one guy at a company I worked at. He did exceed 1 letters in his names, usually but this names were still not any more useful.

Generally, they looked like this:

button1
button2
button3
button4
...
button20 (no, I'm not kidding).


And is this coder's name "Visual Basic"?

Re: Rise of the Optimizers

2009-05-26 12:47 • by ObiWayneKenobi
The most disheartening thing about this, and all the stories like it, is that the company remains in business. Seriously - I want all these lame-ass, shit companies run by clueless CEOs and owners who want to pretend that they're a business owner to just go away. It's a travesty that all these shitty businesses who cut corners every which way on everything and anything imaginable still manage to flounder around in the business world, or sometimes even turn a profit, instead of just closing up.

Also, at my current job I have to maintain a cesspit of spaghetti Classic ASP where all of the recordset objects are named some variation on "rsTemp" (e.g. rstmp, rstemp2, restemp3, stmp, rtmp) and sometimes get reused immediately following a database call.

Re: Rise of the Optimizers

2009-05-26 12:49 • by SCB (unregistered)
265368 in reply to 265352
Jay:
I once worked on a system where all the integers were named n1, n2, n3, etc, and all the strings were s1, s2, etc. I spent hours figuring out what variables really held. Finally I realized that the smart thing to do was, each time I opened a new module, spend a couple of hours figuring out what the variables really were and do a search-and-replace to change the names to something meaningful. Except ... I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description. Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more. While renaming the variables could be done with a quick search-and-replace, trying to untangle these re-used variables was a huge job. After all, if I got confused and renamed "s1" to "customername" when it was really the product name, the program would still work. But if I renamed it to "customername" up here and "productname" down there, and got one reference wrong, now it could be broken.

I still wake up screaming over that one sometimes.

You could have gone with
"customerorproductname"

Re: Rise of the Optimizers

2009-05-26 12:51 • by Madox (unregistered)
265369 in reply to 265354
AndyL:
In my experience, anyone who is paranoid that you're going to "steal their idea" and go "make a fortune" with it, does not have a single idea worth stealing. Ever.



One thing that successful entrepreneurs realize that most idiots don't is that business ideas are cheap; it's all in the execution. So some nut might think "If anyone finds out, they'll get rich off my idea". But of course there's a whole lot of question marks between 'idea' and 'profit'.

How idiots view reality
1) Idea
2) A little bit of work
3) Guaranteed Profit

Reality
1) Idea
2) Insane amount of hard work. Dedication. Risk taking.
3) Possible profit. Or lose everything in the process.

Captcha: distineo - It's not about the distineo, it's about the journey.

Re: Rise of the Optimizers

2009-05-26 13:01 • by Leak
265370 in reply to 265350
Omroth:
I don't think.

Still - you might want to try it once in a while. It's really useful sometimes... *g,d&r*

np: Warren Suicide - Picnic On A Minefield (Strike 100 (Disc 1))

Re: Rise of the Optimizers

2009-05-26 13:01 • by zoips (unregistered)
265371 in reply to 265349
Harold:
Kermos:


Wouldn't any reasonable runtime interpreter, regardless of whatever language, be written intelligent enough to keep a cache of the code it has previously executed to avoid reparsing the source file?



Absolutely not. Code I am looking at has a major performacne problem because it does not have nay such optimization. "hardware is cheap"


I'm pretty sure that fails the "reasonable runtime interpreter" test, which makes whatever WTF you are working with irrelevant. The least reasonable would be to parse the source to build an AST and execute from that, eg old Ruby. More reasonable is to compile and interpret bytecode like most scripting languages.

Re: Rise of the Optimizers

2009-05-26 13:10 • by Giskard (unregistered)
265372 in reply to 265358
tragomaskhalos:
Jay:
...

This reminds me of the "eliminate all local variables and instead use member variables (usually called "m_temp1" etc)" antipattern. Funnily enough, also usually defended by the clueless author as being "more efficient".


To be fair... I've actually done that once. But it was for a simulator project written in Java that would throw away a handful of objects per simulation step (a fractional millisecond of sim time). After a bit the garbage collector would be invoked nearly constantly to try and clean up all the temporary objects been created and destroyed by the simulator and it would slow down to less than real time.

Re-wrote all the classes I used to work with member variables and fixed sets of classes and prevented the gc from being invoked and it was a very noticeable gain.

That being said... I still wouldn't do that for anything that goes into my daily code.

Re: Rise of the Optimizers

2009-05-26 13:12 • by Crash Magnet (unregistered)
265373 in reply to 265360
CSK:
I use i,j and k for loop counters (integers only and always in local scope to the current method) but I'll admit that I'm a bit of a neophyte in regards to working on team projects. I have to ask, is that going to land me on this site one of these days?


It just did.

But I do the same thing.

Re: Rise of the Optimizers

2009-05-26 13:14 • by Kermos
265374 in reply to 265366
Madox:
Kermos:
The whole variable naming thing reminds me of this one guy at a company I worked at. He did exceed 1 letters in his names, usually but this names were still not any more useful.

Generally, they looked like this:

button1
button2
button3
button4
...
button20 (no, I'm not kidding).


And is this coder's name "Visual Basic"?


Actually his name was MFC.

Re: Rise of the Optimizers

2009-05-26 13:22 • by Booboo (unregistered)
265375 in reply to 265354
AndyL:
In my experience, anyone who is paranoid that you're going to "steal their idea" and go "make a fortune" with it, does not have a single idea worth stealing. Ever.

Firstly, it wasn't their idea that could have been stolen, it was the source code of their software... which could have been pinched if it was any good.

Secondly, I love how the ones scared of having their code stolen were the ones who stole someone else's forum software in the first place.

Re: Rise of the Optimizers

2009-05-26 13:23 • by Dennis (unregistered)
265376 in reply to 265368
SCB:
Jay:
I once worked on a system where all the integers were named n1, n2, n3, etc, and all the strings were s1, s2, etc. I spent hours figuring out what variables really held. Finally I realized that the smart thing to do was, each time I opened a new module, spend a couple of hours figuring out what the variables really were and do a search-and-replace to change the names to something meaningful. Except ... I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description. Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more. While renaming the variables could be done with a quick search-and-replace, trying to untangle these re-used variables was a huge job. After all, if I got confused and renamed "s1" to "customername" when it was really the product name, the program would still work. But if I renamed it to "customername" up here and "productname" down there, and got one reference wrong, now it could be broken.

I still wake up screaming over that one sometimes.

You could have gone with
"customerorproductname"

"customerandorproductname" more completely captures the uncertainty.

Re: Rise of the Optimizers

2009-05-26 13:23 • by Dragnslcr
265377 in reply to 265360
CSK:
I use i,j and k for loop counters (integers only and always in local scope to the current method) but I'll admit that I'm a bit of a neophyte in regards to working on team projects. I have to ask, is that going to land me on this site one of these days?


I doubt it. Using those single letters for loop counters is generally considered acceptable practice. The reason that it's acceptable is that loop counters usually don't have any real meaning beyond an array index. A lot of the time, you're probably only using the counter variable once or twice the loop, such as having value = values[i]; at the beginning of the loop and assigning a modified value back to the array. If the loop counter has a more significant meaning than being just an array index, you should probably give it a more significant name.

Re: Rise of the Optimizers

2009-05-26 13:24 • by Damian (unregistered)
I worked with a guy that used those type of variable. We are using java and every variable is one and two letters. 20,000 line of source code in hundreds of classes all with variables like sp, ss, cc, em... and he would use the same ones in every file he wrote

Plus he pretty much used java as a functional language instead of objects.

Re: Rise of the Optimizers

2009-05-26 13:25 • by Booboo (unregistered)
265379 in reply to 265367
ObiWayneKenobi:
The most disheartening thing about this, and all the stories like it, is that the company remains in business. Seriously - I want all these lame-ass, shit companies run by clueless CEOs and owners who want to pretend that they're a business owner to just go away. It's a travesty that all these shitty businesses who cut corners every which way on everything and anything imaginable still manage to flounder around in the business world, or sometimes even turn a profit, instead of just closing up.
Yeah whatever. Because the code is absolutely the most important part of any business. Nevermind attracting investment and customers and providing an application which works well enough, the absolute most important thing is having really well indented code. Users really appreciate waiting extra months for that kind of thing.

Re: Rise of the Optimizers

2009-05-26 13:35 • by Franz Kafka (unregistered)
265383 in reply to 265379
Booboo:
ObiWayneKenobi:
The most disheartening thing about this, and all the stories like it, is that the company remains in business. Seriously - I want all these lame-ass, shit companies run by clueless CEOs and owners who want to pretend that they're a business owner to just go away. It's a travesty that all these shitty businesses who cut corners every which way on everything and anything imaginable still manage to flounder around in the business world, or sometimes even turn a profit, instead of just closing up.
Yeah whatever. Because the code is absolutely the most important part of any business. Nevermind attracting investment and customers and providing an application which works well enough, the absolute most important thing is having really well indented code. Users really appreciate waiting extra months for that kind of thing.


If you've noticed, the company doesn't make a profit, has an awful codebase that frustrates new features, and the CEO is clueless. They shouldn't be in business.

Re: Rise of the Optimizers

2009-05-26 13:36 • by Code Dependent
265384 in reply to 265349
Harold:
...has a major performacne problem...
Performacne (n): skin blemishes produced as a result of stage fright.

Re: Rise of the Optimizers

2009-05-26 13:40 • by Code Dependent
265386 in reply to 265352
Jay:
I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description. Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more.
How very COBOL of him.

Re: Rise of the Optimizers

2009-05-26 14:09 • by sameasiteverwas (unregistered)
"Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats."

-- Howard Aiken, pioneer of computer science

Re: Rise of the Optimizers

2009-05-26 14:17 • by Capt. Obvious (unregistered)
265395 in reply to 265386
Code Dependent:
Jay:
Apparently the original author thought it would be a waste of memory to create a new variable when he had this one sitting around that he wasn't using any more.
How very COBOL of him.

I've reused variables to prevent GC in high-level languages. The object creation/deletion was a measurable bottleneck, and it had to be done to make the program run quickly enough.

Now, I named the variables in ways that indicated what was being done, and commented their usage well. Ex:


ExpensiveObject* pLocalObject = g_pPermenantObject; // Local object actually points to a permenant object. This is necessary to prevent object creation/deletion from becoming a performance bottleneck.
pLocalObject->Reset(); // Reset the global object's state to that of a new ExpensiveObject.

//Do Stuff

pLocalObject = NULL; // Local object actually points to a permenant object. This is necessary to prevent object creation/deletion from becoming a performance bottleneck. As such, the "local object" should not be deleted, and, since it is no longer being used, is set to NULL to prevent accidental reuse/misuse/deletion later on.

Re: Rise of the Optimizers

2009-05-26 14:19 • by mbv (unregistered)
265396 in reply to 265378
Damian:
I worked with a guy that used those type of variable. We are using java and every variable is one and two letters. 20,000 line of source code in hundreds of classes all with variables like sp, ss, cc, em... and he would use the same ones in every file he wrote

Plus he pretty much used java as a functional language instead of objects.


I'd love to see how he does that. As far as I know you need different languages to use functional, although someone made a functional language that compiles into java class files.

I assume you meant procedural language?

Re: Rise of the Optimizers

2009-05-26 14:21 • by jojo (unregistered)
265397 in reply to 265383
Franz Kafka:
If you've noticed, the company doesn't make a profit, has an awful codebase that frustrates new features, and the CEO is clueless. They shouldn't be in business.


Maybe he's not as clueless as he seems if he's able to keep his company in business despite all that...

Re: Rise of the Optimizers

2009-05-26 14:25 • by Andrés Medina (unregistered)
265401 in reply to 265343
lol, the "tchbo" comment was a perfect example about why naming variables that way is not good.

Re: Rise of the Optimizers

2009-05-26 14:43 • by ObiWayneKenobi
265404 in reply to 265397
jojo:
Franz Kafka:
If you've noticed, the company doesn't make a profit, has an awful codebase that frustrates new features, and the CEO is clueless. They shouldn't be in business.


Maybe he's not as clueless as he seems if he's able to keep his company in business despite all that...


No, I'm sure he is. Remember all it takes to run a business is money to keep pumping into it; you don't have to actually know jack shit about what you're doing.

I'm sure this "CEO" just has a lot of money and figures that his idea is great and that because he's John Smith he deserves to make millions, and rather than admit defeat continues to pump money into a losing business. You'd be surprised at how many businesses seem to run under that model; the owner is too egotistical to be anything other than a business owner even though they don't understand anything, and gleefully pump money into the business so they can stay "the boss".

Code isn't the most important thing, but there is NEVER any benefit in rushing out garbage and cutting corners when software is the very lifeblood of your company. That's just asking for trouble, and if you're idiotic enough to think that you can do things better/quicker by avoiding paying for quality, then you don't deserve to be in business.

Re: Rise of the Optimizers

2009-05-26 14:48 • by wee
265405 in reply to 265352
Jay:
I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description.


Holy jumping jebus that is a colossal WTF. Globals are bad enough, but re-using them? Add to that the entire program was in one file, and... just wow.

I feel your pain, man, but never want to really experience it.

Re: Rise of the Optimizers

2009-05-26 14:50 • by Dazed (unregistered)
265406 in reply to 265376
Dennis:
SCB:
Jay:
Except ... I quickly discovered that while at the top of the program s1 might be the customer name, later on s1 might be used for the product description.

I still wake up screaming over that one sometimes.

You could have gone with
"customerorproductname"

"customerandorproductname" more completely captures the uncertainty.

Or use the Java convention:
customerNameAtTheTopOfTheCodeAndProductNameFurtherDown

Re: Rise of the Optimizers

2009-05-26 14:51 • by Cooksey (unregistered)
This is exemplary of how to optimize your way out of profitibility.

Efficient code is easy to maintain and runs fast enough to not sandbag the host machine.

If the code takes hours just to devine its actions then the project has been sabotaged by bad programmers and poor management of the bad programmers.

When you directly reap the benefit of your developmental and maintenance efforts you quickly cop to a 20%+ comment metric and meaningful variable names (and I dont mean lpdw!).

If the code is difficult to maintain then you lose profit which to me has always been the point of the game.

Of course assembler programmers always have a certain level of disdain for writers of high level languages where you get to say something more expressive then MZE.

Oh well. NOP.
« PrevPage 1 | Page 2Next »

Add Comment