Hacker News new | past | comments | ask | show | jobs | submit login
The Greatest Invention in Computer Science (codinghorror.com)
7 points by bdfh42 on June 7, 2008 | hide | past | favorite | 7 comments



Instead of "routines" why not just say "functions" - which then opens another can of worms because functions were studied long before they were ever used in programming.


Perhaps-- but we need to be able to make a distinction between a mathematical function and the procedure which implements it.


...and here I was, guessing "recursion".


Ok, I guess I'm officially grumpy.

"The routines in your code should be treated like tiny, highly polished diamonds, each one more exquisitely polished and finely cut than the next."

This makes no sense. Each routine can't be more exquisitely polished than the others. And if you try to make it make sense by interpreting 'next' strictly, to mean 'next in sequence', then it means your functions should get worse as development proceeds. Even if you replace 'next' with 'last', to try to turn it into a semi-coherent statement ("Each routine you write should be the best routine you've ever written") it's still bad advice: You should spend your time on the important questions, and not every function is equally important.


Interesting choice with the routine. I'd argue for the CMOS, without which none of this would be possible...but let me know if that's too much on the EE side to fit the title.


Backspace.


"Routine" as he means it is a control structure with an implicit stack with a memory range associated with each JMP. (That is foo(int x) has four bytes on the stack devoted to x). If a language has no routines, they can be faked out if you can make a stack data structure, which would be a little difficult in basic, having no pointers or references. Hence, I'd say pointers are somewhat more "great".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: