permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

commit ba76085b0867ccf63842a9c13a3f37109b3a00ac
parent 22b965773b2632ca66dc234345828c3ce62c1fe8
Author: Ville-Matias Heikkila <viznut@low.fi>
Date:   Sun, 24 Jul 2022 13:34:13 +0300

add pages

Diffstat:
Aredo_from_scratch.mdwn | 15+++++++++++++++
Areuse.mdwn | 31+++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/redo_from_scratch.mdwn b/redo_from_scratch.mdwn @@ -0,0 +1,15 @@ +**Redo from scratch** is an idea that is antithetical to [[reuse]]. Instead +of modifying an existing program to fit a new purpose, a completely new +program is written from scratch. + +The philosophy of Chuck Moore, the author of [[Forth]], has very strong RFS +elements. Instead of deciding a set of standard pieces to build software +from, Moore was ready to rethink just about any previous decision. What came +to be the time-tested core of the Forth language was based on constant and +obsessive rethinking, experimentation and redoing-from-scratch. + +In practical purposes, RFS often has huge risks and problems, starting from +the bugginess typical of new programs. However, it can be heartily +recommended as an artistic or educational practice, as a way to exercise +one's programming skills, or as a research method for experimenting with +completely new ideas. diff --git a/reuse.mdwn b/reuse.mdwn @@ -0,0 +1,31 @@ +**Reuse** means the use of a piece of technology for new purposes, often +ones that were never envisioned by the original designers. **Reusability** +refers to design that makes reuse possible. + +In **[[hardware]]**, reusability is of utmost importance. In order to +maximize component longevity, it should be possible to reappropriate them to +different purposes. + +In **software**, the question of reuse and reusability is more complicated. +Software can be constructed and discarded without waste (it's just patterns +of electrons), so it can't be compared to hardware in this case. You don't +need to feel sorry for programming something +[[from scratch|redo from scratch], because the replaceability of software is +what computers are all about. + +Excessive reuse easily leads to [[bloat]] and multiple layers of legacy, as +in case of [[Unix]]. [[Monoculture]] may also appear if a lot of programming +is framed as the reuse of a single [[silver bullet]]. Too much concern for +reusability may also make the piece of software unnecessarily big and +complex. + +Minimal reuse, on the other hand, may easily lead to "[[Not Invented Here]]" +kinds of problems. + +The reuse of **ideas** is less problematic than the reuse of software. +Wisdom and ideas can be accumulated and refined without the risk of bloat or +sedimentation. + +Keeping ideas simple makes it easier to implement and reuse them. Having a +rich layer of different ideas at the bottom of the dependency pyramid may +also help with creating [[technological diversity]].