[fedora-india] Moving Forward in Open Source

Sayamindu Dasgupta sayamindu at laptop.org
Tue Jun 22 08:14:41 UTC 2010


On Tue, Jun 22, 2010 at 12:37 PM, "sankarshan (সঙ্কর্ষণ)"
<foss.mailinglists at gmail.com> wrote:
> <http://pcquest.ciol.com/content/editorscolumn/techetete/2010/110010801.asp>
>
> I think we are losing the value of Open Source. The core objective of
> Open Source has been to let people learn the internals of a software
> application with the help of source code, and improve it further so that
> everyone benefits.
>
> [...]
>
> Let's understand this with my favorite example-Anaconda installer for
> RedHat based Linux distros. Anaconda is a fantastic piece of software,
> but it lacks documentation. So to modify it, you have to be a reverse
> engineer, and not a software developer. Therefore, contributing to its
> further development is difficult.
>

"Reverse engineering", as defined by the author is a part of most
development process. It's annoying, yes, but most projects really do
not have the level of documentation the author wishes for. The reasons
for this are usually, that projects do not have enough people doing
documentation or even capable of doing documentation, since optimum
documentation of code is an art that is rarely practiced.

However that being said, in the Free/Open Source world, especially for
large projects, the code often speaks for itself (via sane/appropriate
naming of functions, variables, files, modules, etc). The reason for
itself is twofold.
(a) since the code is accessible to all, developers often are
conscious of the fact that they are often measured in terms of their
code by their peers and prospective employers, and thus maintain a
reasonable level of control on the quality, sanity and readability of
the code
(b) most projects (unless it is a one person affair) have a minimal
level of review process which ensures that the code which goes through
into the main repository makes sense.

I fear that what the author is experiencing (and even I feel this
sometimes) is difficulty coping with software which is getting bigger
and bigger and starting to handle more and more corner cases. This is
especially true for already deployed, user-facing software like
anaconda. When this type of software grows (in terms of userbase),
along with the the usual complexity and functionality increase, there
is a lot of band-aiding and duct-taping to ensure that it works well
for all possible scenarios. This reduces the readability of the code
to some extent, and trying to handle this with documentation will
probably not work well.

I took a cursory glance at the Anaconda code, and while it is a large
project, it does not seem _that_ difficult to me. But again, the
author talks of beginner programmers, and I agree that for
"opportunistic" programmers, it is really difficult to contribute more
than trivial patches to a project like Anaconda or Nautilus unless a
pretty large chunk of time is invested to figure out the code. But
this is to be expected of any software (or anything that increases in
complexity), and FOSS is not an exception. And it is for these
scenarios, that projects/concepts like gnome-love and openhatch become
important.

Thanks,
Sayamindu

PS: On a slightly related context, a few years back, there was a leak
of the Windows source code and an analysis of the code was posted. You
can see the analysis at
http://www.kuro5hin.org/story/2004/2/15/71552/7795 to see how life is
on the other side of the fence (the analysis contains only comments,
and no actual source code, so it should be safe to see - but IANAL and
you have been warned ;-)



-- 
Sayamindu Dasgupta
One Laptop Per Child


More information about the india mailing list