I don't think it was implied good enough tools can replace qualified engineers. But I feel sometimes engineers don't realize that tools can not only be valuable for beginners (itself worthwhile, imo) but actually make experienced professionals more reliable (less error-prone) and work faster.
Taking the Lego analogy further, even if I, an experienced Lego builder, can construct a set entirely in my head, and write a correct assembly script, building it physically is likely faster and certainly less error-prone.
Those kinds of goals are hard to achieve with software (especially considering what we have is already pretty good!), but I think they're a worthy pursuit.
Examples of language/interface design that seem strictly beneficial: (regardless of experience or project)
- Showing the result of [valid] code changes as soon as possible (a feedback problem);
- Disallowing invalid expressions (a consistency problem);
Okay, but who is your customer, the engineer or the layperson? At a certain point, our needs are going to pull in separate directions. Simple is good, but certain problems have a baseline of complexity that can't be eliminated. Who are you planning to side with?
Taking the Lego analogy further, even if I, an experienced Lego builder, can construct a set entirely in my head, and write a correct assembly script, building it physically is likely faster and certainly less error-prone.
Those kinds of goals are hard to achieve with software (especially considering what we have is already pretty good!), but I think they're a worthy pursuit.
Examples of language/interface design that seem strictly beneficial: (regardless of experience or project)
- Showing the result of [valid] code changes as soon as possible (a feedback problem);
- Disallowing invalid expressions (a consistency problem);
- Displaying relevant components (functions, libraries, APIs, variables, etc) (a visibility problem);
- Bringing documentation closer to code (making functionality obvious)
Eve tries to tackle some of those challenges, especially the documentation problem and the visibility problem.
Solving those issues can both improve productivity and bring more people into programming.