[CentOS] Dogs, trolls, and neighborly free/open source

Thu Aug 5 18:59:47 UTC 2010
Les Mikesell <lesmikesell at gmail.com>

On 8/5/2010 1:13 PM, Warren Young wrote:
>
>>> When someone says, "I'm writing a shell script, and hereabouts I need
>>> $TOOL to do such and such," a good answer is usually forthcoming.
>>>
>>> When someone says, "Tell me how to script this $PROJECT," the
>>> commmunity usually points the OP off to Google/Manual.
>>
>> I don't think it is the nature of the requests that are different
>
> I would guess that most sysadmin type scripts are under 100 LOC.  I
> can't decide if the rare few KSLOC scripts push the median out to the
> low hundreds, or if the great number of short scripts drag that median
> down into the double digits.
>
> I think a similar bell curve exists for programs/systems complex enough
> to require "coders" -- professional software developers -- but that the
> scale is magnified by at least 10, maybe 100.  If I had to pick a value,
> I'd say the median software project has 10,000 SLOC.  The range extends
> from "glorified shell script" up into the millions of lines.

Getting wildly philosophical here, but how much of those 10,000 SLOC are 
reused, or reusable, or should have been?  How much could have been a 
few shell lines coordinating existing programs?  How often to 10,000 
SLOC projects fail and get thrown out?

> The point is, a 20 line answer in each case is qualitatively different
> because it represents a different proportion of the task.

Not necessarily.

>> administrators pretend that everything they do is unique and not
>> reusable - or they don't want it to be.
>
> It's my experience that most short sysadmin type scripts on POSIXy
> systems are site-specific glue code.  The generic parts are off in
> external programs or libraries that the scripts call.

As they should be.  And most non-script programs should be re-using 
libraries for the bulk of their work.  The hard part is knowing which 
one to use.

> So, us coders are happy to maintain tar(1) and grep(1) and dialog(1) and
> whatnot for you sysadmin types, but we're not likely to write a one-off
> script that ties all these together to make a custom home directory
> backup system for you.

You are exaggerating the difference.  Look, for example, at the first 
release of backuppc (before the ambitious re-write of rsync in perl), 
which was both a conceptually simple sysadm-ish perl script layered on 
top of existing tools and an elegant coding job at the same time, 
handing other administrators a usable application instead of a toolbox 
to write his own incompatible mess.  Every administrator needs to do 
approximately the same things for every machine, although it is made a 
lot harder by the designed-in incompatibilities the coders put there.


-- 
   Les Mikesell
     lesmikesell at gmail.com