Hacker News new | ask | show | jobs
by pjc50 2304 days ago
> How do I run this thing? Where does the code start? Is my system configured correctly?

This is why there are occasional spasms of "back to basics" or plaintive remembering of the BBC Micro. You power it on, it beeps, and within a second you're in the interactive development environment. Typing code runs it directly. Typing code with a line number adds it to the program. No configuration, containers, downloads, updates, dependencies or uninformed choices to make.

> Why do we treat this as a moral failing instead of a usability issue?

Yes. This applies in so many places. Learn from "Poka-yoke". The system should make it easier to do safe things and harder to do unsafe things.

> Tests are a usability dead end

Depends what you mean by "tests". A strong type system does away with certain categories of test (and conversely a lot of the heavy unit testing usage comes from communities with weakly typechecked languages). But both types and tests are capturing a human-level requirement of "if X then Y", a constraining of the problem space.

This is why many successful code archaeology maintenance projects start by building a test suite to capture the current functionality of the program. An executable requirements document.