You-Read-It-Here-First Forum Index You-Read-It-Here-First
A collection of textual novelties
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
If you want to read the articles here, go ahead, just click on a forum and find a thread that interests you...no need to register! If you want to post something... either new or in response to someone here, then click the Register link above. It's free... and it's fun to write your ideas here. You can even create a "blog" by starting a personal thread in the Daily Life Every Thread A Diary section...

Selfish Software (reposted thread)

 
Post new topic   Reply to topic    You-Read-It-Here-First Forum Index -> Ideas about software
View previous topic :: View next topic  
Author Message
brian-hansen
Site Admin


Joined: 17 Mar 2006
Posts: 712
Location: Oregon

PostPosted: Sun Mar 19, 2006 10:35 pm    Post subject: Selfish Software (reposted thread) Reply with quote

Original posting by John Bailo.

I'm starting a new company called Selfish Software. It will be a division of the Texeme Construct (jabailo@texeme.com). Or maybe it's own domain.

This is my "prior art" that gives me exclusive rights to these concepts. Selfish Software is based on the ideas of Richard Dawkins, the selfish gene. Dawkins performs a "reductio" on evolution and boils it down to: evolution is about a gene doing whatever it takes to survive. If that means building a huge body around itself, with arms and teeth and poisonous venom, and coloration and a big brain and fast legs -- then so be it. But the only point of all these things, is simply to insure the survival of the gene. The fact that we have societies and art and ants have anthills, and the fact that bulls have horns and bees have hives has nothing to do with all the silly backwards ideas that people have about evolution -- it's all just the gene, doing selfish things, in its own interests. This also explains about 90 percent of human misery. Selfish Software? Selfish software is software that does whatever it takes to insure its own use and survival.

What we've seen in the past is Socialized Software. Developers for the past 30 years have had it browbeat into to them to do all these "nice" things to make their software "compatible" and follow the "rules of the road" and so on. The code has to be "user friendly" and documented. It has to follow a "Factory Pattern" or some other format, so less skilled programmer can come in and enhance it (translation: screw it up). All of this software socialization has led to very boring and useless software that often ends up being useless, and unused and ultimately put in the trash can.

Selfish Software lives for itself. It does whatever it takes to "survive". Selfish builds whatever structures it needs to propagate -- but even propagation can be counter-evolutionary. I mean look at viruses -- yes, they propogate, but that only makes them more visible and subject to attack and elimination. How about a piece of software that exists in only one copy, and just hangs around in one place for years and years? That's selfish! How about software that has some critical need, but refuses to add an "easy to use GUI" and makes its user learn a cryptic and arcane CLI that also makes the program super efficient. That's very selfish.

I say, Welcome to the Texeme Construct: Home of Selfish Software.
_________________
John Bailo Kent East Hill




brian-hansen

Joined: 11 Mar 2006
Posts: 2
Location: Portland, Oregon
Posted: Thu Mar 16, 2006 8:11 am Post subject:

What a fascinating point of departure! Brilliant!

I hope you'll indulge me if I provide a couple of bits of evidence pro and con about this idea.

Pro: I've found that one good strategy for keeping information alive (pre-web), is to "shrink-wrap" the computer/OS/software along with the data, or else it becomes unreadable over time. Selfish Software is that which gets treated this way, as an example.

Pro: I'm reminded of the movie "Tron", which has an ending which must be mystifying to non-computer nerds, in which we see some ancient programmer at the "core" of the MCP. This is true of many "legacy" systems in that there is some "core" of functionality that is left alone because the programmers who maintain it don't want to update it at the risk of breaking a working system.

Con: We may be just now entering the age when this idea may be possible, because of the nature of the development of the internet. Modulo the internet, this idea is pretty much unworkable, though. New development can be done in 2 ways: on top of an existing software infrastructure, or in a new language. In the first case, an existing infrastructure may not provide the new functionality that a new language/infrastructure can (web-accessible, fault-tolerance, etc.) and is eventually replaced, notwithstanding some particular Cobol codes.

In the second case, the cost of maintaining an interface between functionality expressed in a new paradigm/language increases, and the features provided by the old core might not keep up with newer requirements (security, etc.) This leads to the core functionality being re-written. In the age of the internet, though, I can imagine "services" offered from a bit of selfish software that might persist in the way you describe, though there will still be forces that encourage the replacement (the death) of the selfish software-based services.

Pro: Another way of describing Selfish Software might be low-maintenance, extensible software. If we remove the reasons to replace it, we've made life easier for ourselves, our former employers, or an our open-source community.

Con: In the software realm, I think, we've already progressed to the point where software is not propagated via "genes"/code, but is propagated via "memes". That is, if some feature is widely seen to be useful, it will be copied to one extent or the other. Here, it is the *idea* and not the code that survives. Take for example, the case of allowing users to select which column in a matrix of data to sort on, either ascending, or descending. This feature is found in many applications, but has probably been re-written from scratch in almost every case.

If these speculations are true, then the selfish software has the best chance of surviving only to the extent that it is imitated by other bits of more modern software that copies its best features.

-Brian



jabailo
Joined: 01 Mar 2006
Posts: 6
Location: Kent, WA USA
Posted: Sat Mar 18, 2006 1:48 am Post subject:

Quote:
Pro: I've found that one good strategy for keeping information alive (pre-web), is to "shrink-wrap" the computer/OS/software along with the data, or else it becomes unreadable over time. Selfish Software is that which gets treated this way, as an example.

Or it pursues a strategy to get itself treated that way. Selfish Software would cause you to make a decision to preserve it, even if it were not in your perceived best interest.

Quote:
This is true of many "legacy" systems in that there is some "core" of functionality that is left alone because the programmers who maintain it don't want to update it at the risk of breaking a working system.

Oh, God, yes! Not only that, but often code is written by consultants, and maintained by others who may have to incur hugh costs to make real systematic changes (not add ons) to the software. In fact, they may not have the ability to make those changes!

Quote:
an existing infrastructure may not provide the new functionality that a new language/infrastructure can (web-accessible, fault-tolerance, etc.) and is eventually replaced, notwithstanding some particular Cobol codes.

That is why we see so much ballyhoo about interface in OOP and web services. We graft on these transformations and turn the legacy system into a singleton that is queried for information. The inner workings become a black box. However, you rightly point out...by doing that, how much are we limiting ourselves!

Quote:
In the second case, the cost of maintaining an interface between functionality expressed in a new paradigm/language increases, and the features provided by the old core might not keep up with newer requirements (security, etc.) This leads to the core functionality being re-written.

Yes, or eroded! But then, instead of creating an orthagonal new system, you've overwriten a legacy system, which then decays and maybe dies. The new system is then left without the core, and now subject to many idiosyncracies as people wonder, why did he write it this way?

Quote:
In the age of the internet, though, I can imagine "services" offered from a bit of selfish software that might persist in the way you describe, though there will still be forces that encourage the replacement (the death) of the selfish software-based services.

Funny. Bill Gates just made an announcement saying that Microsoft should basically become a "services" company maybe even to the point of not continuing to write OS's and standard standalone desktop applications. As far as the longevity of the selfish software, that is dependent on the skill of the writer of such software...but, basically, the selfish programmer will write code that might do things like hog bandwidth or trash disk drives, if its in the interest of his software. SS will not try to be a good Netizen. It will use services and resources to its own advantage. Thus, there are many forces likely to want to terminate it.

Quote:
Pro: Another way of describing Selfish Software might be low-maintenance, extensible software. If we remove the reasons to replace it, we've made life easier for ourselves, our former employers, or an our open-source community.

Exactly. Selfish Software will advertise itself to patrons and make every effort to insure its own viability -- even if the business using it is driven into the ground.

Quote:
....selfish software has the best chance of surviving only to the extent that it is imitated by other bits of more modern software that copies its best features.


Very good insight. The selfish software propating itself as a meme rather than as code. A very selfish way to do things, where, in essence, it is programming the humans to perserve it and propogate it, being totally opportunistic by, as you say, having its structure reproduced but in other programming languages or OSes without really caring.
_________________
John Bailo Kent East Hill
Back to top
View user's profile Send private message Visit poster's website
Visit the Instant Postcard Collection @ http://instant-postcard-collection.com
Looking for postcards of that favorite place? Family origins? Or that perfect vacation, except for the photos?
Researching your dissertation? Serious collector? Just looking for something neat?
You've found the right place to add to your existing collection, or to start a new one.
brian-hansen
Site Admin


Joined: 17 Mar 2006
Posts: 712
Location: Oregon

PostPosted: Sun Mar 19, 2006 10:53 pm    Post subject: Reply with quote

John-

I took the liberty of reposting our discussion from the old site to here.
I expect I've lost a bit of the formatting of the original, but I hope I've
kept the gist.

I think that the notion of selfish software is fascinating. It seems to me
that inherent in your original posting and follow-up replies is the idea that
there may be many ways for software to be selfish. These ways, or
strategies, range from what we from the "socialized" software world
(speaking for myself, I guess) would consider benign, to what might be
considered destructive. Examples: being well-designed in the first place
could be considered "selfish", but, as you say, maybe trashing other
programs might also be a valid "selfish" strategy. Others seem more
neutral: advertising itself, for instance.

While I find myself trying to find a definition that rules out the malignant
strategies, it seems to me that you've already rejected this idea.
After all, in the biological realm, evolution has certainly been brutal
at times. And we only see the survivors, the winners that write the
history and populate the present. I can imagine some time in the far
future when the only code surviving from 2001, say, is a virus.

It would be interesting to have a catalog of the selfish strategies.
I wonder if that is something you've already created?

-Brian
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    You-Read-It-Here-First Forum Index -> Ideas about software All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group