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





Reply via email to