Earlier quoted context omitted.
> I would go further to say that a mathematical understanding or at least inclination is required to write maintainable code. Maintainable code is more an act of writing than of mathematics.
And (good) writing is more an act of mathematics than what most people would construe.
We are done with “Hacking”
61–70 of 98 posts
Re: We are done with “Hacking”
#62Re: We are done with “Hacking”
#63> This programming bible earned a famous comment from Bill Gates: "It took incredible discipline, and several months, for me to read it." I know he's a trillionaire and all and probably smarter than me but still - as somebody who spent a full three years reading and working through the problems in the first three books, I wonder how deep an understanding he could really have walked away with after just a few months.
I believe that quote just references Vol 1, not 2 and 3 so 'several months' it's doable.
Re: We are done with “Hacking”
#64They have to know how to get help outside of an office or even a project team when working remotely and alone. Aside from Stack Overflow, which dominates the Q&A platform for programming market, there are documentation and code repositories that a professional programmer must know how to navigate. Those who previously only relied on colleagues and friends will now lose to those who know how to learn from the entire I…
Re: We are done with “Hacking”
#65Long shot, as this is a CACM article. Does anyone in Oxford UK want a 2ft foot worth of paper CACM editions from 2012 to 2015 in Oxford UK? I have been avoiding throwing them out but now getting round to it. Let me know.
If nobody takes them, there’s gotta be a small library somewhere that would accept them, or even one of those Little Free Libraries (if you have them there).
Then there's the countless libraries in the University of Oxford, some of which might want to stock it, but I'd be surprised if they didn't either already.
Re: We are done with “Hacking”
#66Being long enough in the tooth to have been 'hacking' back then, I'd strongly disagree with that since - and rather obviously given the era - there was little training to be had.
Rather, I'd characterise it as being a time where anyone (irrespective of talent or training) could get their own computer and be the master of it.
Personally, I resent the system trying to take that control away from us (in this case, trying to pass us from an age of controlling our own computers to having to be licensed, controlled and directed in what we can do with them).
Re: We are done with “Hacking”
#67Earlier quoted context omitted.
And (good) writing is more an act of mathematics than what most people would construe.
uh... no. Not that there aren't mathematics found within writing, but that argument is irrelevant to this evaluation of taking a mathmatical, formulaic approach to code vs. one that is descriptive, and caters to the ignorances and shortcomings of the human reader.
Re: We are done with “Hacking”
#68The author of that piece quotes EWD, but not in full, which is odd -- were he to have done so, it would have strengthened his thesis, viz.: "Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better." -- Edsger W. Dijkstra
-– C.A.R. Hoare
Re: We are done with “Hacking”
#69They have to know how to get help outside of an office or even a project team when working remotely and alone. Aside from Stack Overflow, which dominates the Q&A platform for programming market, there are documentation and code repositories that a professional programmer must know how to navigate. Those who previously only relied on colleagues and friends will now lose to those who know how to learn from the entire I…
Re: We are done with “Hacking”
#70> Programmers have to know how to write maintainable code... He implies that this somehow falls into “socitech” ability, which it is not. Maintainable code is precise, well-factored code — almost pedantic — which requires an orthogonal (if not counterpointed) talent to the more “social” talents. I would go further to say that a mathematical understanding or at least inclination is required to write maintainable code.…
> I would go further to say that a mathematical understanding or at least inclination is required to write maintainable code. Maintainable code is more an act of writing than of mathematics.
1. To reduce the number of changes that will need to be made to it.
2. To reduce the time it takes to make each change.
The (1) category encompasses the idea of making code that requires few changes. Such code is essentially "right" to begin with. I think about this mostly in terms of models -- i.e. does it accurately model the problem -- and quality -- i.e. does it have bugs or performance issues. Of course there are other concerns as well, but those are two big ones and they often involve thinking like a "computer scientist."
The (2) category -- reducing the effort of changes -- is achieved by using appropriate abstraction layers, encapsulation, low coupling, and other good-program design. There are many technical concerns in this category, but it seems there are some social ones as well.
I would say the programmer's experience is another huge factor. To sum it up in a phrase, perhaps "writing maintainable code is an act of prediction."