On Wed, Jun 25, 2014 at 12:38:01PM -0500, M Farkas-Dyck wrote:
> Computers are meant to do tedious work for us. That includes us who
> program them. The appropriate metric of code quality, ergo, is how
> much easier it makes one's life. To this end, mental costs trump
> technical costs by far.
>
> A reusable component with well-specified interfaces makes my life much
> easier, for I need not reimplementate that functionality each time I
> need it, and it works uniformly across all usage sites, which means
> less to remember. Even if it takes more computer time, to a point I
> care not, for computer time is cheap and my time is costly.
>
> Make is such a component. I needn't care how many files I need to
> build; I just write a makefile and it does so.
>
> You clearly deem a shell an acceptable technical cost, tho itself not
> a simple program. C compilers and OS kernels are yet other technical
> costs. I use all these programs as they give me a uniform common
> interface to launching and connecting programs, machine code
> generation for various architectures, and the machine itself.
>
> Losses arise when components cause more grief than they're worth. Make
> itself is easy to build and use. GNU autoshit ain't; its mental costs
> due to nonuniform interfaces and other faults are too great.