Wonderland Philosophy: Difference between revisions
Adamcolton (talk | contribs) Created page with "== No Big Ideas == Taken from Jonathan Blow; a lot of languages set out to prove some concept and rarely does that concept work out. Classical languages tried to prove inherit..." |
Adamcolton (talk | contribs) No edit summary |
||
| Line 7: | Line 7: | ||
== Debugging == | == Debugging == | ||
The next most important thing (though also a significant part of maintenance) is debugging. The important philosophical point here is not to avoid bugs, but make them easy to find and making it possible to prove that code meets a set of specifications. | The next most important thing (though also a significant part of maintenance) is debugging. The important philosophical point here is not to avoid bugs, but make them easy to find and making it possible to prove that code meets a set of specifications. | ||
To meet this, I do want to collect a corpus of hard bugs. Case studies of bugs that took people a long time to find. | |||
I also want to focus on debugging and assertion tools. | |||
[[Category:Wonderland]] | [[Category:Wonderland]] | ||
Revision as of 15:25, 15 October 2019
No Big Ideas
Taken from Jonathan Blow; a lot of languages set out to prove some concept and rarely does that concept work out. Classical languages tried to prove inheritance, yet it's hardly used. Go tried to prove channels, they are nothing special. Rust tries to prove the borrow checker, yet many accounts say it's only moderatly useful. Don't try to do anything big, just try to bring together the minimal set of functionality that is proven.
Maintenance
The most important thing is the ability to maintain code because this is the most expensive. We preference the reader of the code and the maintainer of the code over the author of the code. Because of this we put an emphasis on testing and documentation.
Debugging
The next most important thing (though also a significant part of maintenance) is debugging. The important philosophical point here is not to avoid bugs, but make them easy to find and making it possible to prove that code meets a set of specifications.
To meet this, I do want to collect a corpus of hard bugs. Case studies of bugs that took people a long time to find.
I also want to focus on debugging and assertion tools.