The Evolution of Linux
Taiko writes: "Kerneltrap.org has posted some of the more interesting messages from a recent kernel mailing list discussion. It started with a post on proper indentation, but turned into something a bit more. There are some posts by Linus and Alan Cox about the nature of design, computer science, Linux development, evolution, and more. Quite interesting and funny."
...that a post on proper indentation hasn't turned into a flame war :)
That's what I thought til he started getting all scientific and comparing our planet to a computer. Oh well...
If I wasn't so lazy, I'd have a sig.
The role of Linux in the history of computer science will turn out to be that Linux kept the Open Source model _open_ on the inevitable pathway to Technological Singularity.
Take for example the latest hot Linux gadget, the Sharp SL-5000D Zaurus PDA for Developers which runs both Linux and Java, and is therefore an appealing platform for the further development of Mind.JAVA Artificial Intelligence in the Linux environment -- everyman's last great hope of avoiding a catastrophic Microsoft take-over of the 'Net.
The world owes a lot to Linus Torvalds, Richard Stallman, Eric S. Raymond, Tim Berners-Lee and the countless other heroes of the Open Source futurity either posting here on SlashDot or toiling messianically away in obscurity.
Will use Outlook only -- "Prayer will defend us from viruses", says school principal.
This will not do good for the acceptance of Linux in the Bible Belt -- Linux evolved through natural selection, while Windows was created by God.
I found this quote to be interesting: And don't EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That's giving your intelligence _much_ too much credit.
Quite frankly, Sun is doomed. And it has nothing to do with their engineering practices or their coding style.
--Linus
I mean he's just so right There's no way that Sn could outlive companies like VALinux or penguin computing!
autopr0n is like, down and stuff.
s/Sn/Sun.
rrr.
autopr0n is like, down and stuff.
I enjoy reading Linus' thoughts so much.
All around him, people try to make him or Linux more than it really is - and invariably, Linus brings it down a notch and puts it in perspective
It's amazing that this guy gets constantly hero-worshiped, his baby created billion dollars of wealth (at one point, at least), and yet just keeps his feet firmly planted
Compare that to the clowns that get high and mighty because they rUleZ at Quake, or on some IRC channel ... The geek community could learn a LOT from trying to emulate Linus' behaviour.
I think the whole thing with software design really depends on a few things, how big is the project, how many lines of code, how many developers, and finally, are you ever going to make more new versions?
Bare with me here as i ramble on a bit
I'm a small time coder, i write stuff, it works. the design is in my head, in teams of coding, you definatly atleast need to explain to them waht this code is going to do, thats obvious, but do you really need to take it to the next step and start drawing up diagrams etc? Can you explain it better with the very basic start of the code of your little idea and see them understand it? I do, whenever i work in teams, i comment my code, i write function stubs, and thats it. Most people pick up what i mean really quickly. I design only if for reasons below
If the project is small, theres absolutly no point in doing a design stage, all you need to know, is what must it do.
The amonut of code you think you are going to write is stupidly important, the more code you need to write decides just how much design you are going to do, i consider function stubs to be a design idea. And i dont have any functions in my code unless its over 100 lines, whats the point? if its only 100 lines...
If you are planning on making more versions: scrap all your design parts and just write up a list of requirments, as each version grows, your going to add more and more features, design will come to mean shit, and its all about evolution, for example, i wrote a small php editor, and when i first started it, it was painfully small, 100 lines, it was notepad only allowing you to save bigger files, but as i added version after version, it grew and now, i compare the two, the source is so diffirent, its not funny, i only see 2 LINES from my existing source code, it really does change that much.
Linus is right, software is evolution.
Microsoft IIS is to webserving as KFC is to healthy eating
Science provides the tools that engineers use to build stuff.
Engineers would be useless without science to provide new raw materials.
Science would be pointless if raw knowledge wasnt moulded into something practical by an engineer.
In all seriousness, would this article have been given a second glance if Linus wasn't involved? If I were to post a message saying "Hey, my friends and I were discussing the meaning of life after arguing about pencils, check out the log," I doubt a single editor on slashdot would have given it a 2nd glance. What kind of sick twist on celebrity worship is this?
Can anyone really say that computing as a field or science was designed? What we have today is the result of a form of evolution and a result of a market economy. Nobody knew where we were going, we just started going someplace.
The company I work for has spent the past 4 years slowly evolving a fairly complex graphics and haptic (see: Intelligent Scalpels Through Touch Technology for more about haptics) API. At the start we had only a vague idea of what it should be like. We knew from our experiences in graphics that it should be scene-graph based -- so we borrowed the VRML design. We knew that we wanted to be able to do a few things with it. This gave us the basic framework to start with, much like Linus had with Linux.
Then we basically evolved the product. Every time we worked on a project that used the API, we learnt more about what it was good at and what it lacked. We modified it, fixed things, extended it with new features. After 4 years we have something far better than we could ever have dreamed of designing.
The most important reason for using this approach was not because we believed in an evolutionary approach to software engineering (I don't think that Linus' advice should be taken too literally). It was because we were dealing with making an API out of cutting-edge research - much of which hadn't been done when we started. We simply couldn't have designed it.
And don't EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That's giving your intelligence _much_ too much credit.
Hmm... anyone ever tried to build an O/S with genetic programming? How about using GP to modify little chunks of the Linux kernel? I'm guessing the problem would be testing thousands of kernels...
Following that thread, can I now propose Linus' Law:
Any software system with a large enough user base can rely on the accumulated experience of its users to add features, and also picking ideas from smaller systems now and then (at a very low incremental effort).
Corollary. The onus is on the smaller players to come up with new features to distinguish themselves from the masses -- but ultimately it's no-win for them because their *really useful* ideas will be subsumed into more popular systems anyway
I need sleep and I'm quite possibly not thinking straight, but am I right in thinking this would create enormous pressures for specialized players like Sun and Apple (and Be, as they found out) in the long term?
If that is the case, where does that leave the "small is beautiful" rule? Does it mutate to "small is beautiful, provided you are part of a *big* idea that has incredible amounts of 'traction'"?
"Survival" is a very clear term in biology, it means
being able to keep yourself alive.
What does survival mean in software terms? Does
it mean that you make the most money (Microsoft?),
that you get to have the most users?, that you
endure in time and get written in textbooks?,
that you show clear technical superiority?
I think that any of these can be taken as
proof of "survival" of a software project, yet
the fact that MS-DOS lasted extremely long and
became extremely popular cannot possibly
mean that it is something we want to copy or
admire.
An argument that I would happily accept is that
evolution exists in linux-world as the result
of survival of different linux
ideas/implementations (e.g. new VM, new
low-latency etc) in the linux user subspace.
Now, the linux users space is a group of
technically aware people (?!) and evolution
of different linux variants in that space
can be said to be constructive in a technical
sense, thus producing real progress.
This process cannot universally guarantee
software quality (from a purely technical
standpoint)
P.
Sun is doomed? Sure, tell that to the E15k running in the datacenter. Tell me when GNU/GNU/GNU/GNU/Linux scales well on more than 4 cpus.
1- Get latest kernel source 2- Open a random file, go to a random location in that file 3- Roll a d100, use this table: 0-10 insert a random C keyword 11-20 delete nearest statement 21-50 define a new variable 51-80 delete a variable declaration 81-85 change your keyboard layout to some language, switch off monitor and start typing headlines of slashdot. Stop when you feel like it 86-90 delete rand(20) characters 91 delete file 92 merge file with other random 93 copy file with a new name 94 move file to another location 95+ merge file with a random C source from net 4- try building source. If all goes well,submit a patch. Otherwise roll d6, on 1-5 return to step 2, on a 6 return to step 1.
Gentlemen, you can't fight in here, this is the War Room!
You need to take chances for evolution to work, but you also need to select your next step carefully, or you will drown in the myriad of possibilities.
Uhm, thats not too deep.
So what do we learn from this?
Geniusses can mindfuck too! (But let them have their fun!)
The only skin on a computer should be porn.
I wonder what Christians would think of Linus' evolutionary ideas?
I wonder if Linux would have been the phenomena it is today if Linus had been brought up in evolution-bashing Kansas...
Ubi dubium ibi libertas: Where there is doubt, there is freedom.
According to Rik:
Biological selection does nothing except removing the weak ones, it cannot automatically create systems which work well.
In short, I believe the biological selection is just that, selection. The creation of stuff will need some direction.
And I have to nod vigorously to that. Even taking the model of accelerated evolution through human breeding of species: you direct two animals together to breed. You don't just let the Ps, the F1s, the F2s, etc. just all wander around in a pen, have a sniper sitting on a post shooting the ones you don't want, and hoping the rest go at it...
The people claiming evolution to be a process to slow for software development seems to miss out on an important point. Measurement of evolution speed cannot be carried out in years. Evolution must be measured in lifecycles. The number of lifecycles needed for a program/snippet to evolve is about 1-20 lifecycles (releases) and by multiplying this with the time it takes for one lifecycle to complete you've got an approximat value of how fast computer programs evolve.
Another important point is that in this evolution - tough on som level about "survival of the fittest" - there is a certain level of continious "trial and error". This is in fact the way most programming - and learning - is done and this is done through the lifecycle. In real life, DNA can't remember actions carried on by their owners.
Look a monkey!
Reading it, does anybody else get a strong sense of deja vu? It sounds like the two sides are arguing Evolution vs. Creationism -- well, they *are* -- but in this case they're arguing it over Linux instead of over human beings. Only in this case, we *know* there was a creator, and he says "I didn't create it, it evolved". Which makes me wonder if we ever did find the "creator" of human beings, and what would happen if he/she/it/they said the same thing about us :-) Picture it (and pardon my Eurocentricity):
Us: "God! At last we have found you! Now tell us, please... WHY ARE WE THE WAY WE ARE? WHY ARE WE HERE?"
God: "I dunno. I created you to eat the lions, and you just kinda got out of hand"
Its NOT offtopic if your actually read the EMAIL you'd know !!
Don't take it too hard, Larry. Stay with us!
I hold it, that a little rebellion, now and then, is a good thing. -- Thomas Jefferson
You should see JesusGeeks.net. Linux is almost like God to these wackos.
bollocks, no way this is insightful!!!
you don't understand the concepts of evolutiuon, and neither does mr. van riel.
biological selection (actually, the terminology is "natural selection") does not work by weeding out the weak ones. natural selection favours the multiplication of successfull ones (ie 'survival of the fittest').
the argument you (and rik van riel) are using, is essentially the same as most creationists use: mutation can only break down and not build up.
this is wrong. read some darwin before you comment on this stuff please.
regards,
meneer de koekepeer
I wrote about this stuff a while ago. See `The Competitive advantages of Free Software', on my home page. And then, perhaps I wasn't original myself, but I certainly hadn't read about it before.
Having read through a number of turgid interviews with journalists where Linus has basically offered no strong opinion on anything, I was struck by the passion that this thread on lkml brought out in him.
I think he is right too.
- From: Rik van Riel
Since Linus is comparing biological selection to the way things work in Linux, these are ironic words coming from Rik.Subject: Re: Coding style - a non-issue
[...]
Biological selection does nothing except removing the weak ones, it cannot automatically create systems which work well.
[...]
I'd say the slashdot editors should grow up a bit and develop a "subitastory" system
I'd say you're free to put up your own weblog if you don't like this one, and publish whatever you want on it. Nobody's forcing you to stay here and whine. On the contrary, I'd be glad to read less "100% useless whining, 0% content" posts on slashdot.
I don't disagree that it's interesting and funny. But it's also good to remember that while these are outstanding developers, the level of "Philosophy of Science" being discussed here is still in the undergraduate range. You could go to any Philosophy of Science 201 class in any university and hear these points. If you enjoyed the discussion, consider enrolling. And keep in mind that there's a whole level of discussion beyond this, for those who have been debating philosophy of science for decades, that'll make your head spin.
And once you've delved into that level long enough you want to say "Well, that was a fun break" and go back to hacking. It all goes round and round and round.
Excuse me, I just needed to dump some Karma. I've been asked to moderate too many times lately. :-)
_I_ _thought_ _this_ _was_ _a_ _really_ _good_ _read_.
Oh well...
the problem with that witty finsk is that he appaprently was forced to endure a few real bad CS classes back in Helsinki.
He's wrong, of course. Whatever works in Linux works because at some point somebody did some serious thinking before starting to spew out code. Planning data structures. Maybe even read about how others tackled the problem.
Thats called Design. In a few areas Linux serously lacks design. and it shows.
f.
Linux has a point that through random mutation and selection the weakest do not resist.
Evolutionary game theory studies exactly this problem: let agents operate in a random environment and match, and let their survival probability depend (loosely speaking) on their payoff from the match. What will the steady state of this dynamic system be?
It can be shown that, depending on the environment, multiple steady states are possible, not necessarily equivalent in terms of their "quality". It is possible for the system to converge to a suboptimal outcome.
Think about the QWERTY keybord layout and assume that it is suboptimal as many claim (some have recently disagreed). There is no way for a random secretary to change to the optimal layout (alone) and create incentives for other secretaries to shift. Any secretary cannot change layout because she knows that if she gets used to it she'll find herself confused when moving to any desk other than hers. Hence we're stuck at a suboptimal position. QWERTY must be better than some other layout (otherwise we wouldn't use it: evolution helps, yes, Linus), but it not necessarily better than all (yes, design also helps to direct evolution to better outcomes).
Even then, it won't better than human designed code
Err... why? GP has produced lots of impressive solutions to problems that consist of better code than produced by any human before.
Start with bad mapping (such as genotype consists of ascii characters and phenotype is a copy of genotype until first EOF) and you wouldn't even be able to get any compilable code in a lifetime
You've obviously ever even looked at genetic programming (as opposed to genetic algorithms) before. For a start, there is no mapping (genotype == phenotype), and all code produced is syntactically valid.
GAs are not good at "planning" kind of tasks.
Linus's point was that there wasn't much planning involved! I was working from that assumption, though I'm not sure to what degree I agree with him.
You should check "no free lunch theorem."
Thanks, I'm well aware of the NFL theorems. Perhaps you'd like to say how it applies in this case?
OK, linux is evolving (=changing incrementally) and not controlling tightly how it evolves is a nice idea, but this is how far the analogy goes. Linus is taking the analogy too far and use biological evolution out of its context. People do design pieces of code they submit, linus do control which ones are released in the main tree. Both of these facts, especially the latter one, make evolution of linux fundementally different than natural evolution. If you agree with linus please carefully state what do you agree with. Do you agree that any complicated engineering project can not be designed in advance? Or the fact that linux is not particularly directed to a defined goal is a good thing? Or natural evolution is a proof that not designing linux is a good idea? I agree with first two, but third one is plain wrong.
Gentlemen, you can't fight in here, this is the War Room!
Bridge building has also had tens of thousands of years of trial and error which surely helps. Another thing is competition: There's none in bridge building AFTER you've got the contract. Nobody is going to build another bridge next to it to see if they can make a better one.
When discussing the need for proper 'scientific' design, Alan Cox said:
"Engineering does not require science. Science helps a lot but people built perfectly good brick walls long before they knew why cement works."
To me, this seems to be a very poor analogy. The fact is that before the widespread use of maths and materials science in structual engineering ('building a good wall'), structual engineering didn't really exist at all - there were just builders and designers. 'Engineering' only really began when the science was added; before it was an art or trade. As for building a 'perfectly good wall', yes, the walls did indeed usually stand up; but:
a) Not always. Take the case of medaeval cathedrals. In order to stop the weight of the roof pushing the walls apart, the walls had flying buttresses built for support; however in some cases the buttresses actually were so big that they collapsed the wall in the other direction!
b) Not very efficiently. Due to the builders being unable to optimise their design, buildings were often very wasteful of materials in design.
c) How many medaeval skyscrapers were there? You just can't build many of todays huge structures without 'sciencey' engineering.
All in all, I think Alan would have been better advised not to compare it to building a wall; the problem is more that an operating system has such wide scope and enormous complexity (due to different areas of code affecting each other), as well as being flexible enough to change over time, that it isn't feasible to desgin the whole system as you would a dam or skyscraper.
Chris Cunningham
Don't we all have to endure some really bad CS classes? The worst programmer I ever had working for me is now teaching at a university. After we fired him for just not being able to write any useful code. This guy believed in design and had extensive knowledge but it just didn't help.
Linus is not saying that nobody did any thinking. People sure did thinking but it small scale. Nobody did any large scale design. So Linux is just about combining the best ideas of a large number of individuals.
That's a fairly immature statement. You're "make your own press" is like forcing all citizens to make up their own newspaper because they might lie or have prejudices.
See Slashdot has the money and equipment. I say gimme 10K and I can setup [and professionally host] my own news system too!
And considering that Slashdot types are all OSS gung-ho super anti-everything I'm surprised to see that reject virtually everything. Sure I bet they get alot of crap but I am not the only one "whining" about having legitimate posts rejected...
Tom
Someday, I'll have a real sig.
Just how many new SIGs are going to come from this one thread?
-Spackler
I'm not claiming to be deep, I'm claiming to do it for fun. -Linus
... over linus' coockoo's nest....
While i agree that software evolves...
That definetely does not exclude design from
the equation. What about all the design decisions
that were made by those who submitted the patches/
features? Are you really telling me that they were just "directed evolution" and "sheer luck".
Not it took "design decisions" by those who
,a, created the patch,b, those who accepted
the patch.
point also made by Rik van Riel
So this mumbo jumbo about no "macro design",
is really over simplifying things a bit too much.
There is no "one design methodology", and claiming that no "macro design" exists in linux or is needed is a bit too much bs.
Maybe am being a bit too harsh on the guy,
he's obviously magnitudes more knowledgeable
in programing that i'll ever dream to be.
But in his little rant about evolution,
he himself goes by this "gut feeling" he talked
about.
Heck, am mildly tempted to open up an editor on auto same, have a monkey type random stuff,
and turn on and off the power periodically,
and see what i come up with.. who knows...
it might be kernel 2.5.10
FreeBSD... Macro designed and proud...
The success of a project is not the sum of design plus evolution, where enough of one can make up for too little of the other. It's more like the product of design multiplied by evolution: if either is too small, your project goes nowhere fast.
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
Actually, I thought the best and funniest comments were posted below the article by a user on KernelTrap from Al Viro on this thread. All Al Viro's points begin with "buggers who...". Now that's entertainment ;)
Glenn
Sounds like a couple of harsh extremes to me.
Of course software is designed. But this does not mean that the design is complete, correct, or optimal. And that's where evolution comes in.
All these people who scoff at formal design do have a point: so many times so called formal designs end up being one way paths to the wrong thing.
The formal design advocates repond by saying, "well, you didn't have a correct design." A fat lot of good that does. I've been part of development teams where there is this mantra of design it, check it, double check it, lets not do anything until the design is complete, because failure is uncorrectable. And you end up progressing e v e r s o s l o w l y. This is design by perfection -- the idea is to be so careful about the design that it can't be flawed.
Of course, this never works. Nobody can make anything non-trivial right the first time around. It requires some kind of step-wise refinement. Now, this does not mean the design should be abandoned, but one should design in anticipation of making mistakes. Then, the design permits the local correction of errors, without them becoming a global fiasco.
Design for flexibility then: separate APIs from implementations. Version your APIs so when they're lacking you can produce a new back-compatible version. Don't know all the details about every possible kind of device? Gee, throw in an open-ended IOCTL into the device control API. Refine IOCTLs for similar devices later, when we figure out what they need besides the basics.
The point is that it is possible to design adaptable and refinable systems in order to accomodate the inevitable "opps" with a fix that is local and not global in nature. Now, you can't be flexible in everything and sometimes correcting things hurts: witness the Linux VM. It wasn't really planned to abstract it's API away to allow for interchangable plug-ins, was it. And the VM wars were somewhat painful precisely because one had to chose and couldn't punt.
Nevertheless, experienced software designers try to provide an "out" whenever they can, and think that a particular course might require modification in the future.
You could've hired me.
The whole thread makes me ill. Many projects are designed up front -- the basic feature set, the UI, the object interfaces. It's a shame they did not put more emphasis on this reality.
[Linus]
> Quite frankly, Sun is doomed. And it has
> nothing to do with their engineering practices
> or their coding style.
It may have everthing to do with evolution, but only because the baby is growing up, and the engineers have little or nothing new to toss out of the womb.
Sun made middleware happen; now MS is cloning it and taking their one big chance. Less evolution and more population.
Sun and SGI could have made small fairly inexpensive game cubes years ago -- cubes that could have doubled as engineering workstations or even clustered. They chose not to, going for the server market. Neither has seriously approached the asian manufacturing giants. Poor thought processes up front!
IMHO, of all the Unix giants, Irix and SGI had the best chance to make it big -- Irix, for all it's flaws, did the best job ever of hiding Unix, and they did it many years ago. Too bad they dropped the ball and failed to make a consumer device with the help of asia.
MS rises, and continues to rise. It may be evolution in the end, but it's the overwhelming size of their population, not the superiority of product.
Add in the failure of the USA to enforce it's laws, add in the poor strategies of the big iron Unix corps, and there you have it. Little evolution, since their was never a competitive population.
Treatment, not tyranny. End the drug war and free our American POWs.
See my user info for links.
what does survival mean in software???
--exactly what it means in biology. things that survive from a biological point of view are necessarily good or better. sometimes they are. sometimes they're not. humans survived because they were able to overcome certain hardships created by the world. But i dont exactly admire humans; if you read Ishmael by good old mr. Quinn, he clearly (as do I) dislike human nature, despite the fact that we can't avoid it. humans do the exact same thing that microsoft does: they kill everything around them, and take more than they need.
There was one thing that Bill Gates did not foresee: the advent of a FREE os...something that he could not counter. the human race (analogous to M$) has killed everything, and eventually there will come a species that can not be killed off (in my opinion this will be the sentiet AI that I, err...i mean people will create). However, until there comes along something analogous to linux, humans will continue to dominate.
QED
BSD is for people who love UNIX. Linux is for those who hate Microsoft.
So what does that say about evolution? or maybe your understanding of it.
So then, when if we ask him why he created us, he can lie and say: "I created you evolve and become gods yourselfs, because I am the only one who can create such wonders."
If you want to see a system that was more thoroughly _designed_, you
should probably point not to Dennis and Ken, but to systems like L4 and
Plan-9, and people like Jochen Liedtk and Rob Pike.
And notice how they aren't all that popular or well known? "Design" is
like a religion - too much of it makes you inflexibly and unpopular.
I hardly think that plan9's unpopularity is down to that fact that's it's been well designed!
working in it is a joy. It suffers from lack of a good web browser (not exactly a small undertaking) and 23 char filenames (wave bye bye to those ream soon now [tm])
but I guess not everyone likes design. I'm sure more ppl reading this are in an untidy hell hole of a room. If you've not got some dirty crockery in reaching distance of you then I doff my hat to you.
but good design brings pleasure, and working with plan9 brings more joy than frustration.
linux is winning not because it's a great piece of software but rather one of those historical flukes of the right place at the right time and captured people's imagination. Feeding my pc with my first slackware floppy disk set was liberating and discovering the joy of hitting co-operate rather than default has justly brought it's reward.
but hey, come on, keep your mind open. there's always a spare pc lying around, spend an evening with somethign else for a change.
http://plan9.bell-labs.com/plan9
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Linus wrote[
Like somebody had to keep an eye on our evolution so that you had a chance
to be around?
Who's naive?
]
Linus seems pretty smart and reasonable. I find it disappointing that he so smugly suggests there is no God. Just because he cannot see the hand of God at work, he reasons it is not there. How arrogant is that?
--- -- - -
Give me LIBERTY, or give me a check.
Linus is cool. When is he going to be on Oprah?
Will he make it before David Letterman, do you think?
I don't think a god exists. How arrogant is that? Why is it arrogant when he suggests (maybe not, maybe he just thinks god left evolution alone knowing in advance it would eventually produce humans)/I claim that there is no god but it is perfectly acceptable you claim that there is a God? If you are offended by people expressing different views about religious matters, maybe you should try to convert Osama to christianity. He would be a perfect ally.
Gentlemen, you can't fight in here, this is the War Room!
But don't take my word for it.
Just add the support for the advanced hardware features of the E15k and you're ready to go. Get the enterprise level reliability and management features that it needs, and you'll see Solaris floundering on every single bit of Sun's hardware.
Even Slashdot wants to hide some things
I have tremendous respect for Linux & co. with regards to software development, and it is always nice to see people who are not philosophers (or biologists) discussing philosophy (and biology).
However with respect to their opinions on philosophy (and biology), they are, as a previous poster commented, quite undergraduate. Actually I might be inclined to say worse about them, as I am self educated beyond High School, and I am aware of a much broader world of philosophy (and biology) than they seem to be.
Actually, it reminds me of nothing so much as Alan Cox' posturing on the DMCA, where my opinion was that people who do not understand such issues at all should refrain from making lawyerly or political comments in a broader public form where they have respect that is not meritted for the comments they are making.
While it is nice to see these people expressing interest in broader topics, I feel that they should keep their public discussions to the issues of which they have some understanding, namely software development. All that can come of their ponderings otherwise is to spread their ignorance further than they already have.
Even Slashdot wants to hide some things
I didn't read the whole thread rant with Linus et. al. - but from my own experience and observation EVERY successful project mixes both initial design and evolution in design AND implementation. If you fix the design absolutely up front at both the macro level AND of every sub-system in a large project, you will invariably run into huge roadblocks at some point. Something will not work as planned. As I see the Linux Bazaar process, it reaps benefits when this happens - some person or organization stumbles into a roadblock with poor networking code, poor SCSI subsystem behavior at high loads, or an unreliable VM. These emergent behaviors may only affect some small portion of the user base - but the subsystems then enter an evolutionary phase where people varyingly fix what's there or design something new, and some design ends up surviving based on what the most people seem to like and want and in the end, if all else fails, what Linus dictates.
So no, this isn't strict "evolution" after the style of Darwin. If we let purely random decisions drive software and forked every few minutes, the analogy would be pretty complete. It would also take as long to write good software as it does to evolve a well adapted creature. An eternity.
I see where the idea of selective breeding comes in - Linus sees himself and the kernel leading guns as picking and choosing the best patches and suggestions. Up to a point, this means they are exercising design and discretion, but they generally don't "assign" work from their central database of TODO tasks to IBM, Red Hat, and other individuals or organizations participating in kernel development - those organizations and individuals scratch their own itches and their work usually finds its way back into the kernel. Other posters accurately said that a more random evolution could be effected by letting people check in free-for-all into CVS. This is true, but I don't think that would necessarily improve the results and timeline of kernel development.
You have to realize that the comparison here is, as others pointed out, to a monolithic software development process - in the Cathedral, a centralized decision is made - "we are going to make Windows NT better able to support large enterprise database deployments" and a team is assigned to break it down and work through all the implications, then implement. In Linux-land, the interested parties don't call to schmooze with MS biz dev people who pass info down to technical guiding councils, they pony up and write their own patches to the subsystems they see that need improvement. If there are enough interest parties, presumably enough patches will get submitted that the best from all get incorporated into the set of relevant subsystems that effect large enterprise database deployment, and we end up with a Linux kernel that supports exactly that. Of course the primary difference is that at the same time, somebody else may have made complementary and/or conflicting changes to make Linux a better desktop OS. Chaos ensues and flames erupt on kernel-dev and wonderously, eventually, something better for everyone results after compromises are made.
In engineering, maintenance is performed for one purpose: to achieve homeostasis. For example, a building is maintained so that it remains standing, etc. With software, maintenance consists of homeostatic things (bug fixes), but also of things to enhance, or change, functionality. You would never add new storeys in the middle of a high-rise building, or modify a jet fighter to carry large amounts of freight. Yet changes like this do occur with software.
And they always will occur. Or at least they should: software that is not receiving change requests is software that is dying. Be glad for those requests. And don't complain when users change their minds, or don't really know what they want. Users are people. In geek-speak, this means that they are not reprogrammable: you must deal with them as they are.
When developers really accept this, they tend to accept that the correct paradigm really is evolution. I dream that more advocates of the engineering approach to software will someday be among those people.
Here is my entry. At 45 mph cross-country I can give the horse a good run for the money, even before I start shooting.
Oh right. And my entry laughs at your puny wolf-packs. (Of course it doesn't live on grass either..damned spec changes...)
As I understood, evolution does not know where it is going.
But in the case of linux there are definite directions it is going. One of them is unix compatibility (posix and whatnot). The windowing systems are try to emulate win95 or macos (and these have some design in them).
I think evolution is the wrong term to use.
I was about to give him a really witty answer but the power blinked, and that was that. Too bad I didn't bother to record the co-ordinates :-(
Brackets contain world's first nanosig, highly magnified:[.]
So this is what they do with their good ideas...
.sig last updated Jan. 14, 2000
Gidday
:)
I found it a little silly where Linus uses the theory of evolution as a way of describing open source development of the Linux kernel.
Reason being, is that Linus has not and will not write, create, develop, or however you wish to word it, any living things. Hypothetically, even if the 'source' for a grass seed were given to Linus in C/C++ format, I believe Linus would find it to be well and truly over his head, or anyone else's head for that matter. Its is life, which no man understands or can create.
In addition to this, The theory of evolution, is, still, a theory. And a poor one, IMO.
However the above is not to say that Linus is clued up in kernel development
Cheers
Even taking the model of accelerated evolution through human breeding of species: you direct two animals together to breed.
... but I digress.
... one of the more intensive random breeding programs in the history of human cultures. It's even futher randomized because the rapist traditionally has no good view of the woman before the act. (This has led to something of a preference for boys among many of the brigands ... that and, of course, the Afghani success in producing good looking ones.)
Has anyone else been impressed with how good looking many of the Afghani men are? This from a society where marriage is not only arranged, but in its most traditional form arranged by families where the groom's family has never seen the bride's face. If it results in men so handsome and devilish (some truly evil, I have it on our highest authority), perhaps they do have good cause to hide the women
Fans of Afghani family values would tell the story as above, of designed matches resulting in superior beauty, not to mention performance and endurance on the battlefield. But in truth a great many births in Afghanistan result from widespread practice of rape
Where is the new Bill Burroughs among the war correspondents?
I'm reminded of the story that when Bill Gates' mother was on her death bed, Bill promised her he'd finally settle down and get married. Soon after, he presented her with portfolios on three candidate wives, from which Mom selected Melinda for him.
"with their freedom lost all virtue lose" - Milton
>You know what the most complex piece of engineering known to man in the whole solar system is?
>Guess what - it's not Linux, it's not Solaris, and it's not your car.
>It's you. And me.
>And think about how you and me actually came about - not through any complex design.
>Right. "sheer luck".
Merriam-Webster definition of the words "Engineering" and "Engineer"
Engineering : The practical applications of scientific and mathmatical principals.
Engineer: 1. To lay out or to manage as an engineer. 2. To guide the course of, to pilot or steer, lead.
To claim that Mankind is a ( quoting Linus ) "A most complex piece of engineering" AND THEN to claim that said engineering is the result of "sheer luck" is a gross contradiction.
The definition of the words "engineer" or "engineering" implys the thing or creation engineered was guided, lead, built with intent, built to a specific plan or set of blueprints.
Which would be the exact opposite of "sheer luck"
"sheer luck" is chaos not engineering.
If mankind is a work of engineering, and I think mankind is just that, a work of engineering, that would strongly in no uncertian terms imply the existance of an engineer, or creator.
The creator in this case being the individual entity holding the plans, and blueprints of our design.
And of couse we are talking about God.
God engineered us.
We know this through observation, becuase looking at ourselves we see far too much design, and intent of purpose, in ourselves we see the creators fingerprints.
To conclude we are engineered is to conclude that God exists.
Thanks for saying the most intelligent thing I've heard all week: The geek community could learn a LOT from trying to emulate Linus' behaviour
I've been swashdotted -- Elmer Fudd
I agree with Linus.. projects that I've spent several years on came out at the end with features and design elements I could never have predicted going in. I've spent 6 months doing design work on pen and paper at the start of a project, and during the years of implementation thereafter, far more 'design' was done by reacting to the state of the code in any given moment and the problems it was having both internally and with regard to the userbase. My biggest project has evolved tremendously, even though I was essentially the only coder working on it for most of its existence. I can't imagine, then, how much less 'designed' by any individual the linux kernel must be, with the hundreds or thousands of developers contributing to it.
On the topic of Sun's doom, I understand why he says that. Sun's software is co-evolved with their hardware, but neither change very quickly. Linux has to cope with a much more wild, much more genetically diverse hardware base, and as a result it tends to move faster to support new types of devices. Solaris on Intel is a joke compare with Linux on Intel in terms of its hardware support.
Of course, there is nothing magical about a process that allows more evolutionary freedom.. if the hackers working on it don't have the good sense to be effective natural selectors and mutators, then the process won't have a terrific outcome. Linux is thriving because it has so darn many hackers working on it, and because it has so very, very many users using it, and because Linus has a deep and proper understanding of both good taste and evolution.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Why do so many people read Linus comments and try to simplify them further missing the point completely? Obviously When Linus says that the Kernel evolves through "sheer luck", he is not trying to say that the changes made to Linux were not intentional. Each individual believes his change is good and necessary, and many are... Linux and his support staff, like Alan, are there to audit the changes and ensure that the ones that matter get in. In the end, however, each change is not what moves Linux forward at the pace it does, it's the fact that moving all of the bits around finds "lucky" combinations that create sparks of genius which create new intentional changes that make some of those earlier changes, that at the time seemed like the most important, to become irrelevant in the light of the newest revelation.
Why this is on slashdot?
This is just another case of experts speaking about subject area that is outside they expertise.
Interesting reading (with some (understandable flaws), but nothing really new if one has ever read a bit about genetic algorithms and/or other system analysis related topics.
But that was all I could take. Still, a rather good philisophical discussion on software evolution. Now time to think of other things... hehehe
-Restil
Play with my webcams and lights here
When you have too much free time on your hands. Surely there are better people to talk about these kind of topics ?
Enjoyed to read both their comments and I am glad that not every guru takes himself (and his intelligence) too serious.
Alan also made clear to me why I like Chemistry more than Alchemy and much more than software design...:-) I was always amazed about the amount of trial and error and mutations of code while watching someone develop a project over the years. I think what Linus said is very true and I could observe it without being a software developer myself. Survival of the fittest mutation is also very true.
I liked the comments quite a bit.
Thanks.
Individuals are great for design -- particularly if they have some other individuals with whom they can communicate well for reality checks during design. Consider Seymour Cray's designs -- not very complex by the standards of today's computer systems, but Cray's ability to pick a team and then listen well combined with his individualistic design habits led him to beat IBM's army of well funded PhD. The problem with individuals is that there is a natural limit to the complexity that an individual can fit in his head -- where the internal bandwidths of an individual's mind are enormous enough that engineering tradeoffs can occur at rates vastly exceeding those allowed by the bottlenecks of verbal and/or literate communication.
Similarly, it is a mistake to believe that once a gifted individual's limits are hit that a group of gifted individuals are going to be able to beat a broad evolutionary process in advancing the design.
That's why the gifted individual designer's first and foremost design goal should be to maximize the evolutionary flexibility of his design -- so that the advantages of individualist design are maximally leveraged before complexity dictates that distributed evolution dominates further design.
PS: As for Torvalds' understanding of evolution and breeding -- he underestimates the importance of niches. It is precisely the ability to fill niches that makes an evolutionary system viable. Consider, for instance, sexual reproduction's tendency to, upon encountering the periphery of ecological ranges where population is sparse (like, ahem, Finland) automatically inbreed and therefore express mutations -- most of which fail, of course. The point is that without expressing those mutations the advantages of new genetic patterns can't translate into population increases at those peripheral ranges. Linux isn't a good example of this, since UNIX was a well-populated "ecological range", so Linus should take care not to generalize too far his insights derived therefrom.
Seastead this.
Sounds like Linus is in accord with Dick Gabriel's "Worse is Better" essay, or rather the "New Jersey" school of design. The "worse" package gets out quickly to a place where "natural [user/hacker] selection" can work on it.
Step one: pick two words to describe the two different sides. The words should be commonly used, but laden with emotion and varying connotations so that they will not mean the same thing to any two different people, but the people will feel very strongly about them nonetheless. Also try to apply them as broadly as possible. "Evolution" and "design" are very good choices.
Step two: Select a medium where the "discussion" will propagate quickly. Preferrably it will also make it hard to communicate less straight-forward and non-technical ideas effectively and will also have a wide audience of people with little to do and little knowledge of anything (but high esteem of their opinions). The internet is by far the best choice.
Step Three: Create a statement that is fundamentally correct and impossible to disagree with, but obfuscate it by applying the ideas from Step One and further complicate it by presenting it in the fashion described in Step Two.
Bingo! A neat observation to flame war (complete with hurt feelings, personal insults, amazingly broad generalizations and god) in no time flat!
(please don't bother pointing out that I contribute more to step two than even most people - that just supports what I am saying)
sic transit gloria mundi
EARN that 10K and you have the right to do exactly that. of no one agrees with you then go jump off a cliff cause you wont be starting your own weblog. and quit whining you twit.,
I don't think I agree with the full analogy. Obviously Code is not randomly generated or selected for mutation. We use intelligence to know what's wrong, then we use knowledge to improve. What really evolves in good software is the design, not the code. Sometimes you have to start from scratch again to implement design changes.
We could probably design a new, better human, but sheer evolution will _NEVER_ result in perfection. Design can perfect many small peices of code. Combining these smaller pieces, one can achieve near perfection in a lot less time than sheer luck. Evolution produces local minima's, where design can find the absolute minimum error, and move toward it much quicker. (Think if multiple layer perceptron networks.)
Karma Clown
Mod This Up
Blah Blah Blah.
Total bullshit. Linus said it is somewhat directed evolution, but evolution nonetheless which is why Linux has turned into (and continues to) something he had never intended.
Your point 2
Totally ridiculous. Linus made a simple loose analogy, and you are taking it WAY too literally.
Your point 3
WTF? This has NOTHING TO DO WITH ANYTHING. The fact that MS succeeds through aggressive marketing and business tactics has nothing to do with anything, AT ALL, period! How is this relevent to anything at all in the discussion?
Sticking feathers up your butt does not make you a chicken - Tyler Durden
I'm really shocked to read that thread on the kernel mailing list... I can't believe Linux really thinks what he posted... This is pityful... From philosophy to engineering man never had the time to only play 'try and fail' games. However people here should take a look at this research website as their algorithms for the automatic code creation in AI is really close to the ways Linus seems to see the world :
http://www.ia-stud.hiof.no/~rolando/
I've tried... maybe I've failed...
Come to think of it, why would I spend 10K on a news/feedback website just to have twirps write insightful things like "suck my dick"...
Bah new slogon
Slashdot. Bad habbit!
Someday, I'll have a real sig.
Infinite-Monkey Theorem n.
"If you put an infinite number of monkeys at typewriters, eventually one will bash out the script for Hamlet." (One may also hypothesize a small number of monkeys and a very long period of time.) This theorem asserts nothing about the intelligence of the one random monkey that eventually comes up with the script (and note that the mob will also type out all the possible incorrect versions of Hamlet). It may be referred to semi-seriously when justifying a brute force method; the implication is that, with enough resources thrown at it, any technical challenge becomes a one-banana problem . This argument gets more respect since Linux justified the bazaar mode of development.
False. The evidence is all around you (and in fact you are part of the evidence).
2 there is no reason for a god to exist
False.
3 based on our conception of logic, a god cannot exist
To the contrary, rationality depends upon the existence of God.
4 we know why, when and how the stories of gods were made up and propagated
This, at least, is partly true. It is true, in that we know that evil men in times past refused to worship the true and living God, and instead fabricated false gods for themselves.
5 we know why and how the stories of gods were accepted and used, and for what purposes
You're repeating yourself.;-)
Far from being "undermined" by belief in God, as the evolutionist fantasizes, rationality is actually dependent upon God. On the other hand, rationality is undermined and utterly demolished by evolution.
DFL
Never send a human to do a machine's job.
The worship Linus faction won't like it, but I think Linus is just out of his league. He is not an academic, but he is trying to comment on an academic topic.
There is a difference between design and implementation. Linus is confusing the two, and thereby simply confusing himself and anyone "arguing" with him. (I think that it's impossible to argue with someone who maintains a self-inconsistent stance.) Let me try to clarify the distinction
Design: The process of determining requirements, classifying them, then planning out a system which satisfies these requirements to a desireable degree.
Implementation: The process of building a system which performs certain actions.
In the case of implementing a design, the actions performed somehow lead to satisfaction of the design requirements.
Now that that is clear, there is one more point of to clarify:
Subsystem: Part of a system, which typically performs a certain action, i.e. partially implements.
Critical point: One can DESIGN a subsystem. This can often lead to confusion on the difference between design and implementation.
One MUST realize that one of the most critical parts of design is the creation of the requirements! Improving implementation NEVER helps if you're solving the wrong problem!!!!
One well-known way of designing is to generate a bunch of ideas which might satisfy the requirements, you then go through, rank the ideas and then eliminate the ones that don't satisfy the requirements as well. This is a "natural selection" approach to design.
With all of that said, Linus' problem is that he is an implementor. The design is DONE! It's unix. All he has to do is implement. Now, in implementation subsystems will be designed and implemented on and on. And better designs for subsystems will be created all the time. The kernel itself is a subsystem, and as such isn't really part of the design, but part of the implementation. He has designed the kernel - Modularity, timeslicing, portability requirements, even making it open-source was a design decision. Oh and designs can evolve, i.e. be amended when more knowledge is gleaned. Example: One of the principle differences between the two VM's is that they set out to accomplish different goals. Many of the requirements are the same (they're both VM's after all) but some are different. By changing to a new VM, one is simply changing the design of a sub-system because it provides a better implementation of its functionality than the previous design. So the design of the kernel hasn't changed, part of its implementation has, it needs a VM subsystem just like before. Changing the kernel design would have been something along the lines of removing the VM, say because memory is so cheap that it is simply unecessary complication.
And for those wondering, his argument that we've never been able to design anything as good as ourselves is stupid. Can you crunch numbers as fast as a computer? Didn't think so, guess what, it was DESIGNED for that purpose. If we knew what conciousness was, I'm sure we could design something that's better at it than us since we just got it by accident.
I have to say this is all very intresting. It reminds me of listening to most any conversation between 2 sexs. Mostly because I can see truth to both sides of this debate while the involved parties are quite sure they are disagreeing. My .02 would have to say I agree with both. From the side of the 'evolutionist' I would have to agree this is the case with Linux as a whole. For the side of the 'creationist' I think that anyone would agree that the specific peices of any project must have some sort of direction or there wouldnt be a project to begin with. At least I'm fairly certain that if you sit down to work on say a network driver that you will most likely not end up with a new spreadsheet application. It is the bonding of these individual goals that create the unknown and the end result on the larger scale is unknown until its seen. Can't we all just agree to disagree and dont take things so personally when it seems at first to hit home(pride) =)
kerneltrap.org is having MySQL troubles. Fortunatly, Google Groups, is not.
This would probably still be front page news if it was Bill Gates talking, and he certainly isn't worshiped here.
Linus got where he is through hard work and a little luck. I'd want to hear what he has to say, even if it was about pencils, because it's much less likely to be mere background noise in a sea of information. This has nothing to do with worship and everything to do with filtering and statistics.
Go cry to your mommy.
I must say, the following quote from Linus from the article is one that strikes me with fear and awe:
When someone with the prestige that Linus has says something as powerful as this, I cannot help but feel that this topic is something that he is absolutely passionate about, much in the same way Stallman is passionate about Free Software. Linus doesn't seem like the type of person to use this sort of phrase on a whim; like he says, "I'm deadly serious".
The challenge is to come to terms with the fact that the bulk of humanity will never see the deep truth in what he is saying.
The mythology of design is pervasive but just plain wrong. Design only ever happens in marginal increments. Quotes about standing on the shoulders of giants come to mind.
A deeper challenge is that most people are incapable of understanding evolution, not because of any lack of inherent intelligence but because they haven't ever gotten out of the comfort zone.
An interesting but neglected mid-80s paper by Marcia Salner, then at the Saybrook Institute in San Francisco, but now at the University of Illinois at Springfield, as I see following a Google search I now need to spend some time following up on, pointed out that it helps greatly to have got through some genuine crises, firstly to break our naive and seductive faith in the universality of right and wrong answers and secondly to force us to look beyond the naive relativism which first replaces the right-wrong dichotomy.
Evolution, be it biological, social, technical or whatever, is about what works in practice, and even more so about the uses made of its products, because evolution does not happen in a vacuum. (Yes I am using "vacuum" metaphorically. The real vacuum of 3D space is also highly evolved.)
Now I find myself caught up with the even deeper challenge that if too many people actually believed what Linus is saying that the whole system would collapse. It seems only possible to build viable social institutions on rhetoric that does not stand scrutiny.
-- Our systemic servants do not good masters make.
When I was in college, I read the book Software Tools in Pascal by Kernighan and Plauger. The most valuable thing I learned in college was the system of design set forth in that book, which the authors called "left-corner design".
The idea is simple: when creating a program, start with the most important thing the program needs to do. Once you have that working, add more features. Ideally, as you go, you should be releasing working versions to whoever will be using your program.
This is so right in so many ways. For one thing, if you run out of time during a project, at least you have something you can release, and it may very well do much of what the users need. (There is a line in the book to the effect of "80% of the problem solved now is better than 100% solved later.") Also, early feedback from the users can show you what's wrong with your design, before you write a whole bunch of code that you would later have had to rip out. (I seem to recall an example in the book where a large system spec turned out to be totally wrong; the users didn't know what they wanted until they had something to play with.)
I never before noticed that the standard open-source development techniques match up with the left-corner methodology. Open-source projects such as Linux are all about "release early and often".
When I read Linus's comments, I was nodding my head all over the place. You create some code that solves some problem, possibly not very well. You release it. Feedback and patches start to arrive, and the code grows, possibly in directions you never foresaw. The more popular the code gets, the more robust it gets, as people patch it to work in a wide variety of situations and on a wide variety of hardware. This is why Linux has come so far, so fast.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
[off-topic] Hey I thought slashdotter were up-to-date. The creationists lost badly in last year's elections, so evolution is back in the syllabus. Actually it was never out, it was a local option and most schools continued to teach evolution.
[back on topic] What a wonderful exchange of ideas! Linus has me convinced. OS/free software is about chaos (as in math). It's about an infinite number of monkeys on an infinite number of keyboards. Sure if you've got a small team and a tight time-frame you'll need to have tight control over the project. But linux is great because of the chaotic (as in math) processes which produce it.
Only thru _TIGHT_ CONTROL and superior foresight will quality software be written. Without a verbose design, structured development process, perfect testing procedure and most importantly superior direction, software will fail to be of any value to society.
:)
This universe might be based on pure uncertainty (as shown in quantum mechcanics) but we as observers are completely outside of this random system and must structure this randomness into something consistent and predictable thru solid design. If not, progress will be slow and fraught with failures (evolution). Evolution is slow and seeing as we are of the universe, yet outside of it (we can observe), we need not be restricted by it's short comings.
Thru perfect top down control we will write perfect software which is second to none!
On the other hand, maybe function precedes form. Maybe it is better to focus on the task at hand, allowing external events to dictate the direction, then to separate ourselves from the environment we are tending, after all, we create things be _useful_ and not just to be used
Maybe.. just maybe there is a point where control is harmful and hinders progress, maybe.. just maybe.. progress is unavoidable.
-- You can be a geeklord too
and all I can tell is from my G4 Darwin fucking rules!
Linus sounds tired and irratible. I think that the adoption of his idea and the media's desecration of "it's itent" have gotten to Linus to the point that he's comparing hiself to God or Godlike figure who's created a thing that evolves according to natural, hence random, process.
I hope he gets the rest he needs.
Meanwhile go get yourself a Mac this OSX is what I was thinking about when I installed RH5.1 all those years ago ('96?)
This
i still have this in my sig :
"Seriously though, if there's a germ of an important idea in Perl
Culture, it's this: that too much control is just as deadly as too
little control. We need control and we need chaos. We need order, and
disorder. Simplicity, and complexity. Carefulness, and recklessness.
Poise, and panic. Science, and art. And if you trace it all back to
its roots, we need God, the ultimate in control, and we need
evolution, the ultimate in chaos. "
- Larry Wall in "Perl Culture"
Linus said that evolution can be accelerated, so as to not take millions of years. Acceleration of evolution is just making more and more intelligent mutations; isn't that design?
Badgers? Badgers! We don't need no stinkin' Badgers!
This topic is very much about a "post on proper indentation". Read the story BEFORE moderating.
-- @rjamestaylor on Ello
-- @rjamestaylor on Ello
How many /. ers would cream thier pants if linus(AKA GOD) Shot them an emial on this topic.... "AWMYGOD it can be him our savior Linus here to slaw the evil Dragon Linus!" BTW doesnt anyone care about what Charlie Brown Has to Say?
"All I can tell the "lesser of two evils" folks is that if they keep voting for evil, they'll keep getting evil."-Lp.org
Gould wrote an entire essay about how people used that misquote.
Why don't you track down the source for the quote, his essay on the misquote, compare with the bullshit you have been told about the quote, and open your eyes to the fact that the snippets you hear from scientists are being systematically distorted.
And no, I won't bother telling you where the mis-quote is from or where the essay on how ticked off Gould is about it. If you actually give a damn you can find out either with an internet search or by wandering down to your local bookstore or library, looking for all of the collections of essays that Gould has published, and leafing through them. I am actually hoping you might do the latter and actually learn something beyond the bigoted ignorance you are regurgitating back out on the world.
If you want to be lazy, looking for something called talk.origins might help. They even have an easy to find website with a FAQ on this very issue.
Allow me to assure you that I have never met a creationist who knew the facts, was honest, and continued to spout the usual bull. I have, however, known many creationists who thought they had learned something because they had read many creationist tracts and could vomit the lies back verbatim. (They didn't, of course, realize that it was lies they were spewing, but don't let that matter.)
As for you, you are not worth any more of my time. There are a thousand more where you came from. If you actually give a shit about being honest you will find out the truth behind your misquote, and hopefully realize how much and consistently you have been lied to. If you don't, then nothing I could say in the space of this post would convince you.
Propagating misquotes does not proof make.
Gould said that while supporting his theory of punctuated evolution, which says that there tends to be a granularity to evolution, certain types of change take place in small areas over fairly short periods of time (tens of thousands of years is short in this context). Said theory was put forth in a paper which managed to trace the evolution of a particular tribolite over several million years and actually caught - in the fossil record - the critical transitions.
But you don't have to believe me. Just go pick up virtually any book by the man you misquoted and read about the copious evidence in the fossil record. You at least owe that to him for having lied about the meaning of what he said.
I think this whole discussion is a matter of perspective.
Of course Linus can say that Linux was not designed, when he is viewing it from this time. Im shure he didnt think the same way back when he was starting.
I mean, as a student, any geek here can tell you that, had he taken a task such as building a UNIX clone, he wouldve had at least some premises on which to base the creation of the software. Namely:
A) Architecture: i386
B) Version that we are cloning: In the spirit of POSIX and as close to it as I can.
C) It runs on my hardware with the "stuff" I can understand (say, the Minix filesystem which was the only fs he had acces to in terms of code)
Of course, most software projects run into changes of requirements and Linux was no exception, so the list of premises may grow, shrink and change but it doesnt mean that we cannot make a list and trace every element to someone's necessities.
So, here we run into the perspective part. Is this list something all kernhackers run and check to make their stuff, or is it a way of analizing the Linux's kernel evolution in time?
We can look back and say Linux was not designed to be what it is today. And we can say that what it is today is the result of evolution, the evolution of its design.
So I guess I agree whith the spirit of what Linus is saying. He is merely pointing out that he has no control over Linux in any way other than allowing or rejecting changes. And then, not even that (ask the TurboLinux guys or the USSS).
Now, is it good that requirements grow out of your hands? In a commercial environment it shure is bad since it messes up your planning and, ultimatley, you get less money because you didnt plan for this. But under the Open Source model of development? No, its not bad because it doesnt cost anyone.
Hell, I make money with Linux but I know for shure the kernel hackers arent doing anything so that I can have a nice working system. They do it because THEY want to have a nice working system. So if they mess up I may suffer a bit, but theyll suffer the most because its their money in the table.
I think if one understands this, one can make this piece of software into some dough,
Okay, im drifting now. The point is that Linux can be analyzed in terms of how has it evolved into what it is today. Noone can argue that it isnt a good production system for many situations so noone can say it's evolution has been a faliure.
So this whole argument about creationism Vs. evolutionism is a matter of the way you look at it. From one point you can see that Linux has had an evolution from its first design premises but that it does not lack a list of guidelines that constitute a design. From another point you can say that its a system that has evolved and that the fact that you can list some set of design premises does not mean the whole system HAS been designed to do what it does now.
Its a useless discussion anyway. Linux will keep doing what its doing no matter what we discuss here.
Alex
NO SIG
When a process looks only to the best immediate move, without regard to the overall picture, that's a "greedy" algorithm. Example: Dijkstra's Shortest-Path algorithm.
And, like Djikstra's algorithm, the open source movement doesn't seem to be very good at finding simple, direct "paths", but the efficiency of the final results is hard to question. (even if it's not a very efficient way of achieving them)
if($YouDontBelieveInEvolution){ &mass_mob() }h an Linus){
if($YouThinkYourSmarterThanLinus{ &mass_mob() }
if($YouDontKnowWhatProgrammingLanguageThisIs{
&mass_mob();
}
if($YouThinkYouManageProgrammingProjectsBetterT
&mass_mob();
}
if($YouEverUsedScalarsAsLongAsTheOnesIAmUsing){
&mass_mob();
}
sub mass_mob() {
print "Please stop reading this and go away\n";
}
The book Chance and Necessity by Jacques Monod talks - about evolution in terms of chance operating within the bounds of some structure that changes only very slowly. So in biological evolution, mutations of individual genes happen within a more permenant framework for translating the information contained within genes into proteins. (or something like that, i'm no biologist) Monod talks about this in terms of Invarience and Perturbations.
;)
But the mechanism of biological evolution is only one example of this. What Linus is talking about is an evolution that is happening within the framework of standards (unix, coding standards) and hardware.
There is much more that could be said about this and I hope someone who knows what they are talking about will say it. Or at least provide a link.
I misquoted nothing. Did he say it or not? No one is going to pretend -- certainly I am not -- that Gould is not utterly devoted to his evolutionist fideism. So it would be ludicrous to even think that Gould would not attempt to explain away the facts he admits in the quotation. Of course he makes the attempt. Duh.
actually caught - in the fossil record - the critical transitions.
Rubbish. No "transitions" have been caught anywhere. For this to be actually verified, you would have to have a fossil from every generation between parent and "evolved", "transitional" child. You would furthermore have to be able to demonstrate that what you have are actually direct biological descendants, or else Gould's "proof" is nothing but post hoc nonsense.
So what Gould has -- as he actually said -- is inference, and nothing more.
DFL
Never send a human to do a machine's job.
And I submit to you that design is inherent to evolution.
Evolution, in my view, is a process comprised of two cycling stages, as others have pointed out. Mutation is a random process, as random events cause (perhaps a number of) individuals in a species to develop a new trait. Selection is a process of deciding which "mutants" are able to reproduce and propagate.
In biology, is there decision-making in mutation? Depends on what kind of mutation. If a gamma ray snips a DNA molecule, there's no decision made there - it just happens. But decisions can affect mutation. DNA researchers and biologists create mutants in labs everyday. And as a society, we've accepted a technologically advanced quality of life that we know affects our environment and in turn affects us. What goes around comes around.
Decision making takes a more active role in selection and propagation. In anthropology, we measure evolutionary success generally by the number of viable offspring produced by the variation. That means that a successful variation of a species in a world of scarce resources (such as food and useful time) manages and allocates its resources in such a way that it is able to have more children than other variations of the species and thus have more influence on the future direction of the species. Successful management requires successful decision-making. Just try to manage without making a decision and you'll see. It doesn't matter if radioactive spiders turn whole packs of dogs into super-intelligent beings able to telepathically move fire-hydrants and build solid-gold toilets to drink out of - if those dogs decide to spend their time doing that and never have any puppies, they're an evolutionary dead-end. This is actually an issue that's been discussed in Anthro...people we see as being more more successful in our society are having fewer kids than less successful people...anyhow, we see that decision-making (and thus, design) is not mutually exclusive to evolution and in fact plays a large role in it.
In software, mutation could be described as a change to either the source code of a software "component" or the configuration of a collection of software components. Any such modification is a mutation of software, whether intentional or not. Most changes in software, for good or ill, are intentional. Some are caused by gamma rays hitting storage devices and flipping bits, but more are done on purpose as an act that serves some purpose (bug-killing, optimization, etc.) So there is a decision there to serve the purpose via change. There's also a decision to either let a modification stand (because it serves the purpose, or because reversing the change is not worth it), or to revert to the pre-modification state. The decision is there even if it's only to ignore the issue. Decision making and, by extension, design is present in the selection of software changes. You cannot separate design from software evolution, because you cannot separate the evaluation and decision making process from the software development process. Doing such a thing about amount to putting a million monkeys on a million consoles banging away and hoping Linux 3.0 magically results. Statistically it could happen, but animal control would have a cow.
Linus originally decided to go with Rik's VM code for 2.4, then later switched to Andrea's code. Neither move was decided by a coin toss. Evolution? Yes. Design? Yes. It's both, and why can't it be both?
I'll finish by quoting from "Modern C++ Design" by Andrei Alexandrescu (page 4):
-- John Truong
Did he say those exact words?
Yes.
And he said then in an article where he made it abundantly clear that by "transitional forms" he meant the transitions between relatively small gaps from one form to another. He clearly didn't mean transitional forms along the major pathways of evolution. Those have been found, found in abundance, and documented verbosely. As you would know if you stopped studying your creationist tracts and learned what scientists have been doing in the last couple of hundred years.
Don't believe me? I already pointed you at a site which includes a FAQ on transitional vertebrates, and another on observed speciation.
And before you continue regurgitating lies, note that Gould's words were, extreme rarity. Not, complete absence. Even in transitional species with the very tight meaning of transition that he had, there are documented instances. In fact Gould was one of the people (as I already told you) who documented them.
Which means that Gould has, as I said, a hell of a lot more than just inference. If this doesn't fit with the crap you read, it is because you read crap. I do not speak lightly. I very likely have examined more creationist arguments than you have. There was not one which was not based on factual misunderstandings, out of context misrepresentation, or outright lies.
Take this one for instance. In context, Gould sure as hell obviously meant something different by "transitional" than you were told it meant. Gould sure as hell never intended to imply that there were none ever observed. But he has been systematically misquoted and misinterpreted by people like yourself, with absolutely zero intellectual integrity. Because if you had some you wouldn't just take someone's word that Gould said that and it means what you hope it means, you would actually go out and find the original, read it in the original, and understand that he was talking about something radically different than what you thought.
Go here and read the story. It gives the quote in the original, and gives the name of the article it is from, and the widely available book you can find the original in. It shows how the quote as you have it is not the wording that Gould uses, and explains fairly clearly how the modifications and omissions manage to make Gould appear as if he is saying the exact opposite of what he says.
You don't have to believe me. Read the link. Then go to Amazon or Borders or Barnes and Noble and buy the original. And you will see that the quote and inference that you draw from it are both lies.
You will have to do more work to find out that those lies are typical and persistant throughout the Creationist literature. (It truly is fiction.) And part of the problem is, of course, that the Creationists never encourage anyone to go out and check their sources, or challenge their conclusions. Science doesn't work that way. In science people challenge each other's work all of the time. Mistakes are part of any human process, and the process of learning to verify and validate what we think we know is an important and necessary correction mechanism.
However people who think they know Truth rarely see any value in doing likewise. After all they already know what is True, and a few errors here or there in how they convince others aren't that important, it isn't their reasoning process which causes them certainty in their answers, it is the fact that they believe they Know The Truth. Which ironically means that great certainty in your particular vision of The Truth provides fertile soil for the propagation of lies. (A tendancy that has worked to the benefit of many cults.)
As an example I offer your misquote of Gould. If the quote did not fit what you want to believe to be true, wouldn't you have innately doubted a quote from someone that clearly says they believe the opposite of what you are certain they believe? How do you reconcile their possessing the certain knowledge that you are right with their belief that they are wrong? Wouldn't any person with a modicum of common sense smell a rat and want to investigate before repeating such a convenient story?
Yet, despite the fact that investigation of this story was quite easy, you never did. Ask yourself why you didn't. Why did you never question whether this quote fit with anything you knew of Stephen J. Gould, fervent evolutionary advocate? Are there any other questions which in retrospect might seem obvious which you never asked yourself?
I can't see why some people need to feel that programming or chemistry or whatever science has to be complicated? Take a look at that article about it/ginger/segway and tell me: is it complicated? It isn't. It's cool and it's clever implementation of existing technologies but it isn't that complicated.
It's taking too much time to most of us to realize that inventing new and exciting things is as easy as using hotglue gun or messing around with your old computer. If you need something that doesn't exist, make it and use that. Don't worry if somebody somewhere has somehow already done it, just invent it again, your way. Reinventing wheel is not that bad thing, it's not wasted time because you'll be rethinking it and one job done several different ways gives you choices.
One more analogy doesn't harm, does it? : Linux is like a hotglue gun; it's sticky and it burns... uhh, no.
I think I don't absolutely agree with Linus - it depends from
case to case. He's talking about operating systems, which are
easier to build than, say, accounting packages (see Tao of
Programming - http://www.users.cloud9.net/~hennessy/tao.html).
When you have to confirm to someone else's requirements (rather
than your own creative instincts) design is a must. Of course,
many of us suffer from over-design, but it's still required.
Then again, I don't care because I'll take each project as it
comes and learn from my experiences. Linus had UNIX as a base,
but many a time (esp. in the world of proprietary software)
there's no base to start with.
Basically Linus has the freedom which a lot of project managers,
software architects and developers don't have. Every project
has overall goals (one universal being to make money (the
*biggest* hurdle to good products and one absent in the case of
Linux), in addition to other project-specific goals). Yes, we
have a boss/client/both to please.
Manish
At least his thougts about development (evolution)
are the same as those of "them" who "developed" reality. Or does he just copy these ideas?
Yeah, I have this vision of the Straumli Blight in A Fire Upon the Deep, asking its victims "Where do you want to go today?" before it installs the mind-control hardware :)
I said:
Rubbish. No "transitions" have been caught anywhere. For this to be actually verified, you would have to have a fossil from every generation between parent and "evolved", "transitional" child. You would furthermore have to be able to demonstrate that what you have are actually direct biological descendants, or else Gould's "proof" is nothing but post hoc nonsense.
So what Gould has -- as he actually said -- is inference, and nothing more.
Do you get it, friend? I am denying that Gould's defense of his admission has any weight whatsoever. He hasn't got any "transitional forms" of anything. He is claiming that he does, but he would have to prove that critter X is a direct lineal descendant of critter Y, or else he is resorting to inference.
And this he cannot do. It's tantamount to lining up a bunch of different breeds of dogs and saying that the Norwegian Elkhound "evolved" from the Chihuahua (in fact, it's worse, since he can at least show that Elkhounds and Chihuahuas are the same species). It's like showing me a gecko and a gila monster and saying that one "evolved" from the other. Okay, fine: prove it. And he can't. He can only make inferences. Inferences ain't proof, pal. This is blatantly fallacious post hoc nonsense. This is fideism of a transcendent order.
The only ones being intellectually dishonest are Gould & Co., when they assert as "proofs" of evolution stuff that doesn't even pass the smell test, never mind actual scientific examination. Evolution is fideist at its core.
Sputtering nonsense without reading what I say makes you and evolutionists look dumb. Please try harder.
DFL
Never send a human to do a machine's job.
Rik's right. Evolution is all about selection of a bunch of crap that was put down in the first place. In the end, the best crap wins. But that says nothing about *creating new stuff*. Sometimes the "best crap" is not good enough, so we have to start looking into stuff and saying "ok, this appendix is just useless and may give this organism appendicitis". Evolution is excellent at producing results which are "just good enough", which sadly, is the same situation in which *nix, including Linux is in: just-good-enough. Evolution is not really great at producing novel things (yes, very very very rare "mutations"), and we don't exactly have time to do "while everything_is_not_perfect; do cat /dev/random > source; perform_fitness_test; done". Yes evolution is great at (all together now) RISK AVERSION. But risk aversion doesn't necessarily lead to the best things. Witness all sorts of organims which evolve in a fragile ecosystem, and then get utterly ruined when any given variable changes (climate change, cutting down rainforests), or organisms which are good at absolutely nothing but propagating themselves (ahem, viruses). It's silly to think millions of codemonkeys will just magically produce software which is always superior. Just look at all the hundreds (maybe thousands?) of useless projects on SourceForge...has this magical "evolution" helped these projects any? No. Decent management, coherent vision, intelligent coders, and yes, very often, a well-thought-out *design* are needed.
Users most often want software with a certain set of features at a certain point in time...not a guarantee that the magical process of evolution will eventually give them a real-time, fully-pre-emptable, "multimedia", embedded operating system that will butter their toast while reading aloud cluetrain and giving them an enema.
It's 10 PM. Do you know if you're un-American?
I don't see you yet admitting that you were repeating lies and misquotes of what Gould had to say.
As for your standard of proof, your reasoning is approaching the sophmoric nadhir of standing up and saying, "You can't prove that I exist. Nya nya, nya nya, nya nya!"
What you want is nothing less than a complete geneology from something that goes "Ook!" to something that goes "Yo! What's hanging?" Which basically means that you are deciding, "I am not going to even try to find out why scientists think what they think. I am going to stand in my little corner and scream at the top of my lungs, YOU CAN'T CONVINCE ME!"
Asking for proof is an amazing thing. Nobody has it. Not even the mathematicians. (Ask a mathematician to prove that they have made no logical errors in their proof. Then ask them to prove that. You can't. If humans are involved, you can't prove that they are infallible. Even with a few centuries with the cumulative analysis of millions can you be sure. For instance Euclid made additional assumptions beyond his axioms and it wasn't until 1882 that anyone noticed. Back to discussion.) Crying out that you need absolute proof is a quick way to demonstrate that you want to shut off your brain and eyes.
No, Gould doesn't have absolute proof. Of anything. Never said he did. In fact he has written extensively about how provisional knowledge is. Not that you probably care.
If you want to deride him for relying on the best inferences he can draw, then deride yourself for thinking you have shoes. Because you have no proof of that. You have no proof of anything. For all you really know, you might be in a padded cell. All you have are inferences.
But when you stop trying your hand at juvenile philosophy, you get into much more interesting ground. Evolution has been checked over and over again. You clearly have no clue how carefully it has been examined for flaws. By contrast your own theories about history don't stand up even to casual examination. You are a creationist, you believe the Earth is a few thousand years old? What is your evidence? A book? The Moonies have books as well. What makes your book better? It is infallible? Then tell me how Judas died, what he did with the 30 silvers, and why the field of blood is called the field of blood. Stop. Don't answer that immediately. Find both versions and compare.
What is my evidence that your theories are wrong? Well in fact geologists had demonstrated that England went through no world flood in the last few thousand years about 180 years ago - several decades before Darwin. (They were surprised, but were forced by the physical evidence to the conclusion that England was covered in ice.) But I don't need to trace their arguemnts, we have an embarassement of riches here.
Try this one. Ice sheets lay down layers. One per year. The same basic principles are behind it that are behind tree rings, the process is known, understood, and readily documented. Oh right. And any interruption (eg being covered in water) leaves big obvious marks. You can see the interruption. You don't know what was erased, but you see that something happened. So you can go to an ice field, drill a core, and literally count back layers.
People studying past climates have done this with the Greenland ice cap. They have cores with 300,000 layers. Without any interruptions characteristic of a World Flood.
So you have a Book which contradicts itself. And based on that you say that scientists should disregard the evidence of their eyes that they just dug through 20 times more history than you think exists?
Both are making inferences. True. But I think it is clear whose theories don't pass the basic smell test of common sense!