On 03/11/2010 01:21:19 PM, Gert Doering wrote:

> This might be the other big misunderstanding here.  As of today, if
> you
> want to use "ifplugd + dhcp + ..." on a TAP interface, just do so -
> OpenVPN
> won't stand in your way.  This is not the issue at hand - the issue 
> is
> that OpenVPN wants to be friendly to the users, and give them an
> option
> to do DHCP-on-TAP without(!) having to fiddle with their local 
> network
> setup.

This is not so much a mis-understanding as a big rift in
design approach.  Both sides can be "right", for some
value of right.

On one side we have those who want tight integration and
multi-functionality within a single tool.  The argument
is that then you only ever need to use the 1 tool.
On the other side is the Unix philosophy of having
each tool do one thing well.  The argument is that
once you learn to do "thing", you're done learning
forever until you decide to switch tools.

Frankly I always get stuck bumping up against the
limits of the 'do everything' tools, whether
it's a "framework", a computer language,
or an app like mozilla before firefox
when there was a web browser, an email reader,
a usenet reader and whatever all else bundled
in one program.  To address Gert's point above,
bundling yet more into OpenVPN makes it just
a little bit harder for a new user to figure
out what to ignore to get OpenVPN to do a VPN.
But that's minor.  The more important point
is that the user is much better served learning
how to fiddle with their local network setup
than how to fiddle with OpenVPN because there
is much more opportunity and reason to do the
former.

To re-state this last point, there are good (and bad too
but that's immaterial here) reasons
why Un*x has multiple ways to configure
interfaces and setup dhcp.  OpenVPN
won't be able to replicate all this functionality.

There are exceptions to the one-tool-per-task
rule.  I find I use emacs/readline
quite a bit and make a little bit of extra
effort to plug it into my work flow.  I believe
this makes sense because, in this case, using
a single application leverages "muscle memory".
This kind of argument cannot often be made.

So, the discussion has uncovered a fundamental
rift over whether to help OpenVPN users integrate
OpenVPN into their existing systems or whether
OpenVPN should _be_ the user's system.   Gert is
right, so long as OpenVPN does not interfere with
integration with existing tools then in some sense
the Unix philosophy people shouldn't care.  They
would not be the ones doing the code maintenance.
But it does not save the "Unix people" from having
to do the work they'd otherwise have to do because
there will still be people for whom OpenVPN won't
work who will have to revert to integrating with
the Unix environment.  It will be harder for
those people because they will have to discover
that they have a problem and un-learn what they've
tried and discover the less-often-used approach
that fixes the problem.

"Unix makes easy things hard and hard
things possible."  The corollary is that making
the easy things easier makes the harder things
harder.

James seems to want DHCP integration and
nobody's mind seems to be changing at this
point.  So if somebody steps up to maintain
the DHCP code and docs then that will happen.
Hopefully there's also a place in the documentation
and examples for some of the U*ix side alternatives
if somebody wants to step up and provide those.
I can't help but think that documentation that
points the user to the Un*x tools will be a whole
lot easer to maintain, but at this point it comes
down to people actually doing the work so which
approach works best over time remains to be
discovered.

Regards,

Karl <k...@meme.com>
Free Software:  "You don't pay back, you pay forward."
                 -- Robert A. Heinlein


Reply via email to