Subject: Unattainable Goals that are Silll Worse Pursuing

From: Shlomi Fish <[email-masked]>
Date: Tue, 22 Apr 2008 04:39:22 +0300

[ Note: This essay has a more universal message than computers, but it also
applies to it, as I shall demonstrate. I'd like to post it on my blog, but
I'm going to use you guys as my guinea pigs. Comments are welcome. ]

One thought that occured to me lately was the fact that there are some goals 
in
life that can never be fully attained, but are nevertheless worth pursuing and
getting nearer and nearer to them. Like an asymptotic function in mathematics
if you may.

One example that I thought about it (and I think was featured in Hackers-IL
before) is the case of objectivity. Human beings are subjective by nature
and so can never be completely objective. However, it doesn't mean that we
shouldn't try to be as objective as possible, or completely give up on being
objective. (And by being objective I don't mean 
http://en.wikipedia.org/wiki/Wikipedia:Neutral_point_of_view ). Other people
can disagree with me that objectivity is a virtue but it's besides the point.

Now a co-worker of mine is a Hassidic Jew, and when I told him that I'm
an Objectivist, he said that one cannot be completely Objective. He then
gave the fact that it is said that God brought the great
draught because "Yetzer ha'adam Ra' Mine'urav" (= the desire of the Human
is bad from his youth.), and later on decided not to do it again for
the same reason. He brought that as an indication that the Jewish sources
indicated that a man is not Objective by nature.

I thought about it for a moment and understood that the same can be said
about honesty (or "righteousness" in a more religious language). We can never
be completely honest and never lie or do the right thing everytime. But that
doesn't mean we shouldn't constantly try to be as honest as possible, or
worse succumb to complete dishonesty.[1]

{{{{
[1] - I was told Immanuel Kant said something along the lines that if one
wished, for example, to be sincere, he must not lie even if threatened
by death. However, this is silly, because ethical and moral ideals are 
supposed
to help you lead a happier life (as identified by Aristotle in the first
part of "Nicomachean Ethics"), not to terminate them prematurely under
someone who employs force or threat of force against you, who otherwise
did not do anything wrong.
}}}}

After I told it to my co-worker in an MSN conversation he agreed with me
that I was right on both the honesty aspect and, in accordance with
the prinicipal, also the Objectivity one.

This concept can be applied to many other values or capabilities
we desire. For example, one can always improve as a programmer, which is
evident by the fact that most good programmers who take a look at their
old code are unhappy with it. But it doesn't mean we shouldn't try to always
improve as programmers.

Likewise, if a particular computing technology is large (e.g: Perl, Java, PHP,
.NET) and also has possibly spanned a large number of halo technologies (e.g:
CPAN, Apache Jakarta, etc.), then mastering the core language would be hard, 
and time consuming. In the Perl world we constantly say that "no one knows
all of Perl, not even Larry Wall". But it doesn't mean you shouldn't do
your best to master as much as you can out of it, or need to.

One example that I'm especially sensitive about is politics in a software
project (possibly an open-source one ). Obviously, there can never be zero
politics, but the project leaders and members should always try to reduce its
amount, because not keeping it at bay is a recipe for disaster. I constantly
hear about important features that are not implemented or even bugs that are
left unfixed in open-source projects due to political reasons.

I can give Subversion ( http://subversion.tigris.org/ ) and to a lesser extent
the perl5-core development tools as good examples of projects with very little
politics and a value-maximising attitude.

One can think of many other examples.

My point is that while it is true that we are humans and can never be perfect,
we should always aim for perfection in some aspects. And given enough
willingness and by learning from our mistakes, we can remain close to 
perfection in those respects all the time.

Regards,

    Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish      [email-masked]
Homepage:        http://www.shlomifish.org/

The bad thing about hardware is that it sometimes work and sometimes doesn't.
The good thing about software is that it's consistent: it always does not 
work,
and it always does not work in exactly the same way.

---

From: Omer Zak <[email-masked]>
Date: Tue, 22 Apr 2008 12:24:15 +0300

> getting nearer and nearer to them. Like an asymptotic function in mathematics

Other examples:
1. Getting as wealthy as possible.
2. Overcoming a never-ending series of challenges (scientific
discoveries, extreme sports, Guiness-level world records, etc.) one by
one.

> left unfixed in open-source projects due to political reasons.

My take about politics in FOSS projects (or in other spheres of human
acitvity) is to agree with whomever said (I don't remember the source)
that in any project involving multiple stakeholders, there are always
different interests, which sometimes contradict each other.  For the
project to proceed, some process is needed to allocate limited resources
to satisfy the various interests.  This process is the political
process.

The difference between well-managed projects and projects mired in dirty
politics is in the management of the inevitable politics.
It would be interesting to discuss how to make politics our servant
rather than our master.

                                              --- Omer

-- 
In civilized societies, captions are as important in movies as
soundtracks, professional photography and expert editing.
My own blog is at http://www.zak.co.il/tddpirate/

My opinions, as expressed in this E-mail message, are mine alone.
They do not represent the official policy of any organization with which
I may be affiliated in any way.
WARNING TO SPAMMERS:  at http://www.zak.co.il/spamwarning.html

---

From: Shlomi Fish <[email-masked]>
Date: Tue, 22 Apr 2008 15:43:17 +0300

On Tuesday 22 April 2008, Omer Zak wrote:
> > [ Note: This essay has a more universal message than computers, but it
> > also applies to it, as I shall demonstrate. I'd like to post it on my
> > blog, but I'm going to use you guys as my guinea pigs. Comments are
> > welcome. ]
> >
> > One thought that occured to me lately was the fact that there are some
> > goals in
> > life that can never be fully attained, but are nevertheless worth
> > pursuing and getting nearer and nearer to them. Like an asymptotic
> > function in mathematics if you may.
>
> Other examples:

True to some extent, but while I would love to be rich, I don't see myself 
needing to be very rich. It is known that Alexander Dumas who wrote many 
popular historical fiction, made and lost several fortunes during his 
lifetime and died pennyless. On the other hand, Jules Verne wrote a great 
deal of bestsellers, and earned a fortune, but nevertheless still lived 
relatively modestly and didn't spend his money on extravagant things. As far 
as I know, he died very rich and it's highly possible his descendants are 
still very well-off.

> discoveries, extreme sports, Guiness-level world records, etc.) one by

That's right. There was a Star Trek Deep Space Nine episode about a 
terraformer (someone who designs entire landscapes) who kept looking for 
bigger and bigger challenges:

http://memory-alpha.org/en/wiki/Second_Sight

> > project (possibly an open-source one ). Obviously, there can never be
> > zero politics, but the project leaders and members should always try to
> > reduce its amount, because not keeping it at bay is a recipe for
> > disaster. I constantly hear about important features that are not
> > implemented or even bugs that are left unfixed in open-source projects
> > due to political reasons.
>

Hmmm.... obviously you're right that some process needs to take place, which 
may involve any of the following:

1. Monarchy/Dictatorship - appointing someone as the "head honcho" who has the 
ultimate decision.

2. Convincing - trying to convince someone that something may be better off 
your way.

3. Prioritising.

4. Compromising.

5. Democracy/etc. - in my opinion it is sub-optimal.

6. "Show me the code!" - if you want it done, just write a patch that does it.

7. Mutiny/Fork/Split-off.

I'm not sure I can call any of these things "politics", but we obviously need 
a word for them. Probably I can say that a project needs to reduce the bad 
politics, which is anti "do and let do" and the rest of the Hacker ideology. 

Of course we can argue whether it is "good procedures" vs. "politics" or "good 
politics" vs. "bad politics" all day long, and not reach a conclusion. 
> It would be interesting to discuss how to make politics our servant

That would be nice, yes. 

Regards,

	Shlomi Fish

-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
What does "Zionism" mean? - http://xrl.us/bjn8u

The bad thing about hardware is that it sometimes work and sometimes doesn't.
The good thing about software is that it's consistent: it always does not
work, and it always does not work in exactly the same way.

---

From: "Nadav Har'El" <[email-masked]>
Date: Wed, 23 Apr 2008 08:13:43 +0300

On Tue, Apr 22, 2008, Shlomi Fish wrote about "Re: [hackers-il] Politics in software development projects (was: Unattainable Goals?that are Silll Worse Pursuing)":
> needing to be very rich.

I guess you studied differential equations in the Technion, right? Then you
should know why exponential growth happens. It happens when the change of
the function over time isn't constant (which would have led to linear growth)
but rather proprtional to the existing value of the function.

Bringing this theory to wealth accumulation, it is a natural phenomenon that
people think about their wealth in proporion to what they already have.
If you have saved 10,000 shekels, then earning another 1,000 looks good.
But after you have 1,000,000, suddenly another 1,000 looks insignificant.
No matter how much money you have saved, the natural tendency is to want
to double your savings, not to add to it a fixed amount. This is why rich
people always want their wealth to grow exponentially, not stopping at
a million, and not even at a billion.

When you have saved 10,000 shekels, it's easy to think that once you
get to a 1,000,000 you'll stop the rat race. But my guess is that when you
do get to that 1,000,000, you'll be even deeper in the rat race: that million
will look less than it did before (sure, I can buy 100,000 slices of pizza
with it which sounded great when I was a student, but it doesn't buy me my
dream house today), it will be more fragile than ever (if something bad
happens, a million won't be enough, etc.), and you'll be tempted to work
towards the second million.

Needless to say, there are good reasons to try to avoid (or at least curb)
this temptation, but it is a temptation nontheless.

My random signature at the bottom turned out to be quite relevant to this
discussion :-)

-- 
Nadav Har'El                        |    Wednesday, Apr 23 2008, 18 Nisan 5768
[email-masked]             |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |Despite the cost of living, have you
http://nadav.harel.org.il           |noticed how it remains so popular?