This is a blog-alternative: a series of informal notes of various smaller ideas.
The most common topic is thinking, in an abstract way, about software engineering. The update rate is, on average, every 1 or 2 weeks.
There is only one program
(permalink: note 2010-03-02T21:57)
Software tends toward a continual global ecosystem
Since software is ever-changeable it has no final form, and so its design process never really ends: it is continual. And since software is freely communicable it has no real location, and so the design process is dispersed: it is global. Code is shared across versions and projects world-wide. What are apparently separate projects are really only sub-branches of the whole: software is very much a single interconnected system. Other engineerings may have a global view, but with software its very material is, and there is nothing else.
Both of these features are rather special: design is essentially about responding to requirements and building on components – to do these so quickly and widely approaches its ideal. Software can be designed more completely than almost anything. Hence, design for sofware – the tasks, knowledge, techniques – is potentially much larger and more complex than its forebears.
There is a further special characteristic that might be even more important, yet hardly used: full reflexivity. Software can modify everything about itself. This is a significant departure from other engineerings. And it leads beyond design – deliberate prediction and control – to autonomous development. Though we currently lack the knowledge to guide software evolving itself, it is where software can perhaps become not only a single whole, but an ecosystem – like its natural digital progenitor: DNA. What that will mean is interesting to ponder . . .
archive
- 2010-02-21T11:00 - The simple rule of why copyright is now broken
- Internet benefit is inversely related to copyright strength.
- 2010-02-15T21:41 - An outline map of software development
- A way of dividing up and placing the parts of software development, in terms of other established fields.
- 2010-02-09T20:01 - Keeping your new ideas secret is probably wrong
- A simple rational demonstration.
- 2010-02-01T20:38 - The illusion in up-front design
- There is an illusion in the idea of up-front design in software (that is, code arrangement, not algorithm), that makes it seem more plausible than it really is.
- 2010-01-22T20:23 - The essential weakness at the core of Google search
- . . . and a related problem in user-moderated comment systems.
- 2010-01-13T19:17 - Paying For Information, Asymmetrically
- The most reasonable way to pay for information is right in front of us.
- 2009-11-16T19:12 - Software Engineering Materialism
- It is good to think of software engineering as ‘the design of structures in a special abstract material’.
- 2009-11-10T21:54 - The morality of copying: a simple Kantian evaluation
- A simple, solid argument for the moral goodness of copying.
- 2009-10-25T21:23 - Vitruvius - 'Firmitas, Utilitas, Venustas' - In Software
- Vitruvius' ancient principles of architecture can be used to view software.
- 2009-10-19T20:52 - Genome Versus Programming Language
- Genomes have an extra means of code expression/expansion compared to artificial software.
- 2009-08-31T20:06 - Genomes As Software
- A genome is a digital object, and the way it works as a system may be significantly like software.
- 2009-08-06T11:42 - A Comment On ‘A Conversation with Alan Kay’
- An observation on an interesting software development analogy.
- 2009-05-23T10:24 - ‘Software Design’ Is Not Design
- Software engineering should not be obsessed with representation.
- 2009-05-12T17:48 - The Missing Principle Of Programming Languages
- Languages should support data/computation mechanics (mostly known as performance evaluation/analysis).
- 2009-05-05T11:32 - The Third Principle Of Programming Languages
- A main driver of language design must be the extended design process.
- 2009-04-26T21:36 - Better HTML fragment referencing, and RDFa
- A look at the relation of HTML fragment identifiers and the joining of the GGG with the WWW.
- 2009-04-19T10:43 - Why Data-‘Piracy’ Is Morally Good
- An ethical way to understand and deal with intellectual monopoly and data-'piracy'.
- 2009-04-10T16:36 - Philosophy Of Software Development
- A proposal for a philosophy of software development.
- 2009-04-07T12:28 - Structured Object-Oriented Programming
- Inconclusive consideration of Structured Programming and Object-Orientation.
- 2009-03-25T17:09 - Determinate Knowledge In Software Engineering
- A brief overview of software engineering's principal parts.
- 2009-03-14T17:38 - The Problem With More Web JavaScript
- An extra abstraction might be now needed for web-app engineering.
- 2009-02-26T11:14 - Logical Structure And Software Architecture
- A brief adumbration of software architecture and its underlying realm.
- 2009-02-19T15:18 - Software ‘Mass-Production’
- A quick formulation of mass-production for software.
- 2009-02-18T09:34 - Software Development In A Nutshell
- An attempt at a minimal 'well-founded' or 'historically-informed' conception of software development.
