The Evolution (Death) of Software

Seeking serevent india help for addiction may seem daunting or even scary, but drug viagra online purchase several organizations can provide support. A person can talk with purchase generic glyburide alternatives problems a doctor about using over-the-counter pain-relief medications if their infection buy zoloft is causing pain. A small study found that infants exposed buy cheap acomplia to Remicade through breast milk did not develop side effects. buy clozapine without prescription It is essential to discuss the risks and benefits of order tizanidine various anesthesia methods with a doctor or anesthesiologist. In a buy tetracycline clinical study, people with metastatic CRC took Opdivo either alone purchase alesse (ovral l) online or in combination with ipilimumab. Severe pain, long-term swelling, trouble buy cheap xalatan alternative talking, and eating difficulties are not normal, but they are cheap prescription without consultation viagra order treatable. Neurons facilitate communication between the nervous system and the robaxin cheap voluntary muscles, such as the biceps in the arm or synthroid buy drug the hamstrings in the leg. A mental health or behavioral triamterene specialist can help identify the root cause and suggest appropriate treatment..

Image source

Programming is deeply disappointing. We continually fail to live up to our own expectations, more so than any other form of engineering or craft. And it’s not getting much better. The lack of any substantial progress is the most disappointing thing of all. Worst of all: it is our own fault.

Most of the software and standards we use are deeply flawed. We all know it, but we accept it as a fact of life. I guess that at least half of programming effort is wasted by having to live with the accumulation of past mistakes that have become entrenched into dysfunctional standards and platforms. The problem is that it’s no one’s job to fix things. We are powerless as individuals, and we have no institutions whose job it is to fix mistakes. We need to build such institutions. But in the meantime, there is one thing we can do as individuals.

The fundamental reason that it always makes sense to live with flawed designs is that software reproduces without cost and never wears out. This is unique in human history, and we have not yet come to terms with its downside. Every other work of man has a natural lifespan that forces us to replace it regularly. Replacement is when things improve. You can incorporate new technologies and new designs. Without the steady demand for replacement, innovation languishes. This law holds true for life as well: evolution requires death.

I have therefore decided that in the future all of my software will have an expiration date. I will release it under a Darwinian License that says the software and any derivatives of it can not be used after a fixed date, except for educational and research purposes. By forcing an eventual complete rewrite, progress gets a chance. It is our duty as programmers to not let the dead hand of our own works hold back progress by those who come after.

.:alarmingdevelopment.org->

email

Post to Twitter Post to Facebook

Posted: April 11th, 2011
at 11:05am by mnp


Categories: design,development

Comments: No comments



 

Leave a Reply