4 ms·
Develop a methodology for writing correct software. No bugs, guaranteed.
by RNeff 7y ago
Develop a methodology for writing correct software. No bugs, guaranteed.
- js4ever 7y agoWould you agree to spend 5 to 10 more time and budget to write a software in exchange for the no bugs guarantee? I have thinked a lot about this and my conclusion is that this requirement is foolish when you compare it to the cost/time drawback.
- Ididntdothis 7y agoIt’s conceivable to have a language or markup where you can specify on more detail what the code should do. This could then be checked automatically. Things are already going in that direction with things like non-nullable but I am pretty sure this could be taken much further.
- acoma 7y agoI imagine an implementation of this is equivalent to writing code and tests with the same level of detail as one might today. Language features put constraints on the solution, but do not reduce the essential complexity of a problem. Could you elaborate more on what you mean by "could be taken much further"?
- Ididntdothis 7y agoI think a language could even more constrain expected behavior so the compiler can catch problems without having to write tests. With tests you have describe the design constraints in two places: the code and the tests. If we could reduce the number of tests and more information into the code it would be a big win. Or a language that can model distributed systems and their interactions. The problem is to still be flexible enough so it will be hard to find the right level. I am pretty sure we will see a lot of development in the next decades. Systems are becoming very complex. If you think an old COBOL codebase is hard to maintain, good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.
- acoma 7y agoGot it, thank you for that explanation. I completely agree that we can eliminate all kinds of erroneous behaviors with better type systems. > good luck with a legacy microservice architecture in a few years. And it seems to be getting worse. It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.
- claudiawerner 7y agoThere's never such a thing as no bugs, even in any future hypothesized development methodology, for any given non-trivial program. The most you can do from the language side is reduce or eliminate certain types of bugs. The most you can get from a methodology is pour time (and/or money) into it.