Marcus Denker wrote:
On Jan 27, 2012, at 6:13 AM, dimitris chloupis wrote:
This article is really encapsulates the attitude and what is wrong with
programming in general. The attitude of superiority and intelligence that seems
to plague coders and being the biggest obstacle to progress.
Yes! The "Everyone is dumb but me" phenomenon...
What those "intelligent" people don't get is that complexity is inherently exponential. So even if you are
10 times more intelligent than me (very well possible), it is *completely* irrelevant considering that complexity
grows non-linearly.
If you combine this with the notion of Evolution: that it is impossible to creat
"the perfect" out of nothing, yet
entropy grows when you incrementally improve things... than this has some very
serious consequences.
The philosophy "Given enough eyeballs, all bugs are shallow" [1] appears
to have worked well for Linux. I particularly like this... "[the]
original formulation was that every problem 'will be transparent to
somebody'. Linus demurred that the person who understands and fixes the
problem is not necessarily or even usually the person who first
characterizes it. 'Somebody finds the problem,' he says, 'and somebody
/else/ understands it. And I'll go on record as saying that finding it
is the bigger challenge.' "
The success of Linux is attributed not to Linus' great hacking skills
but to his cultivation of his co-developers.
[1] http://catb.org/~esr/writings/homesteading/cathedral-bazaar/ar01s04.html
For me the main problem with is the whole aura of "elitism" , what better
example than Lisp, where beginners are attacked and be excluded.
We had the same effect in Squeak at the end. No progress, every improvement was
actively fighted against, if needed with the nice argument that
one can do it even better, and only "the best" is worth for Squeak.
Another thing that "intelligent" people don't get is that critizising is
trivial: You can *always* do better, there is no perfection. It's an endless process.
This implies that one has to accept and embrace imperfection if one wants to
have a future. Else you end up never finishing anything, the death of any
incremental progress.
Pharo was started with the explicit goal to do as many mistakes as possible, as
fast as possible.
Same link [1] above... " In those early times (around 1991) it wasn't
unknown for [Linus] to release a new kernel more than once a /day!/"
alternatively at [2] Linus relates how today a more mature Linux manages
"low risk" users as well as how features are selected to match the two
month release cycle based on "the most important thing about features
are simply whether they are ready, and whether they have actual real
users. A lot of that is tied to our release process - it's largely
based on _timing_ rather than on features. If something is ready to be
merged, works, and has real users, it gets merged." [3]
[2]
http://www.itwire.com/opinion-and-analysis/open-sauce/44975-linus-torvalds-looking-back-looking-forward?start=2
[3]
http://www.itwire.com/opinion-and-analysis/open-sauce/44975-linus-torvalds-looking-back-looking-forward?start=3
Marcus
--
Marcus Denker -- http://marcusdenker.de