John Doty <j...@noqsi.com> writes:

> On Feb 15, 2011, at 9:40 AM, Stephan Boettcher wrote:
>
>> DJ Delorie <d...@delorie.com> writes:
>> 
>>> The two words mean two different things in the English language.
>> 
>> sorry, I wasn't clear on these distinctions.
>
> DJ has a very narrow and negative viewpoint on factoring.

In the end, I do not care how you call what is being done, as long as
the results are more like Unix, and less like Multics :-)

Stephan



>>> Refactoring means changing nonfunctional attributes of the software
>>> (i.e. rearranging code to be more maintainable).
>
> Way, way too narrow. Refactoring can dramatically increase the power at the 
> users' fingertips. Consider a favorite Brian Kernighan example. Take the 
> Multics command:
>
> how_many_users
>
> In Unix, refactor it into:
>
> who | wc -l
>
> Now, you've given the user much more power with fewer commands. For example,
>
> ls | wc -l
>
> counts files, something I recall there was no command for in Multics. 
>
> The large suite of inflexible, specialized commands in Multics collapsed into 
> a much smaller set of commands that were specialized in one sense (what 
> abstraction was served) but generalized in another (what end was served) in 
> Unix. This put a lot more power in users' hands: many things that would have 
> required a page of tricky PL/I code in Multics became simple shell one-liners 
> in Unix. It was much easier to master and remember the smaller, but more 
> powerful, set of Unix commands.
>
>>>  If we're talking
>>> about changing functionality (as we were in this case), we need to use
>>> a different word.
>
> Functionality emerges naturally from good factoring. Without good factoring, 
> functionality requires a large number of complex "features" that are 
> difficult to remember and often don't play well with each other.
>


_______________________________________________
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to