3 ms·
> the DoD did fund the research and development of several programming languages and tools that would have offered precisely the hygiene Dijkstra would like to
by Ace17 9y ago
> the DoD did fund the research and development of several programming languages and tools that would have offered precisely the hygiene Dijkstra would like to see in software development.
No tool will force you to wash your hands.
Hygiene is a matter of knowledge, and discipline ; and it's mostly unrelated to the tools you're using.
- Jtsummers 9y agoBut tools make it easier. I can write damned fine assembly code. But if you give me a language and tools that can ensure the guarantees I've tried to compute by hand I can get much better results, much faster, and get much more done.
- Ace17 9y ago"What killed Smalltalk? it was just too easy to make a mess" (Ward Cunningham) The power of your tools is an orthogonal issue. It isn't related to the discipline and cleanliness issue: for example, dynamic typing allows you to make design miracles, as well as stinking piles of obscure-broken-beyond-repair code. Actually, a lot of powerful tools have this double-edged sword quality: dynamic typing. C++ templates. shared_ptr/garbage collection. inheritancy. lambdas/closures. "eval". monkey patching. tests (!). Sure, tools like Coq or even Rust's static type system will provide, at compile time, extra guarantees that your code will work as intended. However, they won't provide guarantees that your program will be easy to maintain/modify. Actually, if misused, they could have the opposite effect (i.e as soon as you try modifying the smallest bit of code, compilation/checking fails with unhelpful error messages). Don't get me wrong: good tools are important, and nobody's going to make me write a webserver in assembly language, or a NES emulator in PHP! However, in my experience, their impact on code maintainability is negligible in front the impact of the developper herself. Ultimately, it all hinges on who's writing the code.
- ThrustVectoring 9y agoUhm, this is wrong. Checklists. You can cheat the checklist, but it makes washing your hands a matter of following known procedures, not knowledge and discipline. Like, airlines cut down on pilot errors through checklists and improving procedures, not by making pilots more knowledgable and disciplined.