Wonderland Philosophy

From Adam Colton
Jump to navigation Jump to search

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.

Empirical

Selected Projects

Get a few projects spun up on the language and cater to their needs, solve the problems that come up for them.

Bug Corpus

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.