Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

If What We Made Were Real

Against Imperialism and Cartesianism in Computer Science, and for a discipline that creates real artifacts for real communities, following the faculties of real cognition 


Imagine if, when we made a piece of software for a particular community, that we could be confident that there was a closely related piece of software that met the need of a closely related community. Imagine if the things we created had the status of a vigorous and imperishable characterisation of a need, rather than entering an unsustainable cycle of increasingly frantic maintenance and decay, doomed to be swept from the world in at most a couple of months or years? Imagine, correspondingly, if we could react to an "unexpected user requirement" or a change in technology or context joyfully, as a fresh opportunity to meet a freshly expressed need, as opposed to reacting with fear and despair as we wonder how much of the painful and intricate work we have done so far now needs to be undone?

...

Wikipedia's noble manifesto asks us to "Imagine a world in which every single person on the planet is given free access to the sum of all human knowledge. That's what we're doing". Our mission is just the same, only broader. Wikipedia has now authoritatively won the battle against encyclopaedias constructed via centralised and authoritarian models. Its coverage is vastly broader, more up to date, and on average more accurate than that of any possible competition. But for all of its Internet-age wizardry, Wikipedia appeals to an ancient model of what knowledge is. The structure and content model Wikipedia would have been completely comprehensible to the Emperor Xuanzong of Tang who ruled China between 712 and 756. The encylopedia which he commissioned, the Tongdian, was itself a compilation of several previous works, and was part of an already established model of compendia which centuries later resulted in the Yongle Encyclopedia of 1408 with its 11,095 volumes occupying 40 cubic metres. This, impressive and useful though it is, is a model for "dead knowledge" - it sits on the page after it is written, and later it is read and perhaps remembered. This is the total of interaction offered by the "encyclopaedic model of knowledge". What we aim to put into effect is a model for "active knowledge" - for which we currently have little name other than the bland catch-all term software - and it's clear that not all software represents knowledge of this type. Active knowledge has behaviour, it is connected to communities and the real world, it has awareness of context and an individual's faculties for producing and receiving information.

Much is made in the academic and journalistic literature of the so-called "Information Revolution" which is presumed to have coincided with the creation of the Web. However, I think this examination makes clear that this is no true kind of revolution since it has been accompanied by no revolutionary change in our model of what knowledge is, and how it is accessed and represented. Compare this with the Industrial Revolution, which created a model for a vast array of artefacts, modes of transport, machines  - machines constructing materials, machines constructing other machines, converting and transmitting power from place to place, all products even whose categories would be hard to comprehend by the readers of the Yongle Encyclopedia. Instead of trying to push our methods into other disciplines, let us instead marvel at the incredible achievements of mechanical engineers who have produced far more substantial physical and cognitive progress even while saddled with the intractable limitations of the physical world. Rather than trumpeting our mental models, let us instead be humble and admit that we have not produced a fraction of a comparable achievement whilst being given a completely free hand to produce any imaginable structures without constraint. When the Information Revolution really comes, you can be sure we'll know it.

What We Want

What we want is a new generation of Software Engineers and Computer Scientists, who are willing to give up all their imagined wizardry. Prepared to give up fame, recognition, industrial-scale salaries - prepared to work more slowly than they might, as a result of trying to produce work that still has a meaning 3 years in the future. Prepared to admit they have no real idea how to build software and have never seen any. Prepared to both study their colleagues and be studied, to understand what the real meaning of their work is. Prepared to read widely, both in other fields, and in the history of their own - that is, to accept that they are not wiser or have any surer models than their colleagues in other fields, or in the past - and to take the time to rummage through the vast trash-heap of Computer Science to sift out the few scattered gems in it. We want a generation ready to build the true Cathedrals of software which will exist - rather than today's imagined Cathedrals which to any but our own biased eyes are simply shanty-towns built out of any old trash we have to hand, destined to be swept away and built again after the first change in the weather. The builders of real Cathedrals were happy to begin on work that they knew would never be completed in their lifetimes, or even their grandchildren's - how did we come to think we could measure ourselves against these?

Further reading

This page describes the top-level motivations for our approach, and sources and models for inspiration. As we said at the outset, this isn't just idle speculation but a description of a system we actually plan to build and are in the process of building. Implementing a model for real software isn't going to come cheaply since there are several mountains to move. We have been working to these goals for maybe 10 years, and could expect to be at it for another 20 before the character of our work changes significantly (that is, before we get to the point where the work "does itself" rather than needing to be driven). Those who want to move down to the next level of technical detail can read on at On The End of TIME and BEING which describes our approach to a typical artefact of Computational Thinking, that of a Type. We describe how we set about relinquishing the particular kinds of power which the use of types had concentrated in the hands of its users - this discussion touches on the majority of the categories of power that we listed in the above collection, including the powers of data hiding, the use of compilers, the power of authoritative decomposition, sequence and unbounded consumption. It also has some discussion of the nature of the "positive and negative virtues" we described earlier.

...

Those who want to engage directly with the technical details can start with our documentation on How Infusion Works and the IoC system in general. This material is still highly technical in that the work of extending the "reversible world" is still some distance away from the world of real effects in the domain of real users, and the work on appropriate visual tools is still just beginning. This material assumes you have very good familiarity with the world of JavaScript programming, JSON, and web programming in general. You can also come and hang out on our Mailing Lists and IRC Matrix Channel!

Notes

[1] Idries Shah, in his worthy book Knowing How to Know has this to warn us in searching for a "Golden Age":

...