3 ms·
So, I'd like to know others' opinions. Is computer programming today primarily: A form of communication? Arts n' crafts? A virtualized form of assembly/cons
by EdSharkey 11y ago
So, I'd like to know others' opinions. Is computer programming today primarily: A form of communication? Arts n' crafts? A virtualized form of assembly/construction? None of the above?
I'm in the arts n' crafts camp. Craftily building up abstractions and playing them off each other -over time- seems to be what we're doing here.
I think any program representation should fit your use case. If Excel or SQL fits for data simulations, use that to program, if C++ and Assembler fits for your systems coding, use that, etc...
I'm not a fan of CASE tools, BPEL, instarepl, naked objects, or any other visual or visual/textual modes of coding for general programming work. I agree with the scalability and productivity issues others have mentioned with visual programming systems. Visual probably has a relevant place somewhere in effective software development, but they're just not general purpose enough because the visual bits and bobs tend to muddle the abstractions and are generally too fiddly.
I intuitively agree/sympathize with the myth that less lines of code == less bugs. I think we should seek for languages and libraries that require less lines of code to get stuff done.
Before we can bravely board our starships and chat with our sentient computers in order to program them, we'll need people to write less buggy code with existing systems. For me, that requires:
* TDD which allows everyone to verify their work
* Employing Agile teams to encourage robust communication and to reduce YAGNI, and
* Establishing software architectures where tools and libraries are chosen -primarily- for their ability to promote developer productivity