Wonderland Philosophy: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
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..."
 
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.