Saturday, December 7, 2013

Computing as Natural Science


"Computer Science", as we see it today, is:

(1) part formal science (i.e., categorized with logic and mathematics)
(2) part engineering, tool-building and shop-practice
(3) part corporate and institutional hype

Modern computing has a strange history, originally the work of mathematicians and engineers, in support of powerful bureaucratic institutions, corporate and governmental, and heavily shaped by lies, often called 'marketing', with no corrective mechanism acting on doctrine, except 'success'.

This is why today's "computer science" is not a "natural science" (i.e., categorized with physics, chemistry and biology) although the majority of workers in the field are confused about this. This is partly because, in order to deal with our own complex human-made artifacts, e.g. computer systems, engineers make use of exploratory methodologies, upon internal computing environments, which is similar to the work of scientists -- although the actual similarity is 'merely obvious', and so remains unexplored by the natural sciences.

Our exploratory methodology does make programming a 'science', in the sense of a 'pursuit of knowledge'. But that definition doesn't put Computing into the same category as the natural sciences. To be in that category, we'd have to try to determine what the natural world of computing is. As things stand today, the computer's only relation to natural science is as a provider of instrumentation, a recruiter of scientific work for business purposes (e.g. computational geometry or integrated circuit chemistry), and, occasionally, a provider of engineering metaphors to working scientists.

Unfortunately, many incautious computer-people make vast, vague claims of scientific legitimacy, again mostly forwarded within the context of the modern worship of power, money and success.

Computing academics and business-people regularly and wildly claim to have discovered something about (1) the human mind, (2) laws of nature, (3) human nature, (4) language, (5) vision, (6) learning, (7) society, (8) music, (9) art … the list is endless. All without the most rudimentary understanding of how hard it is to uncover principles in the natural sciences, especially about such complex phenomena in the real world. 

It's the worst kind of scientism: their claims sound scientific because formal scientific instrumentation is used in a desperately impoverished theoretical framework. It is very reminiscent of the way Behaviorism undeservedly dominated and stunted difficult complex sciences for decades … in fact, Behaviorism itself has re-emerged, under different guises, within the weak environment of this "computer scientism". 

The situation is very unsatisfactory. Computing today simply has no foundation.

So let's change this. Let's join with the natural sciences.

I propose we explore a basis for computing outside of mathematics and engineering. If we can shift computer science to a study of something that happens in nature (including people as a part of nature), then most of the disconnects and confusions would fade into the background.

Theories could finally have a concrete footing, putting the exploration of questions on the same basis as any exploration within the natural sciences. There is much confusion about theory in engineering and mathematics, most of which boils down to confusion between mind-internal and mind-external factors. The Turing Machine is a perfect example of this disconnect, which I've written about before. Semantics is another. Engineered "cognition" also falls mostly into this category.

Since there is no approach to 'theory' in computer science that stands within the natural sciences, we'll need to create such an approach. 

Let's start by being puzzled by "the obvious", and ask a simple question ...

Where is 'computation' in the natural world?

The answer is very important, and worth thinking about before you reject or accept it: 'computation' is in our minds

By which I mean that the word 'computation' is something within our mind, an idea or concept that recruits various capacities in the brain, which some other faculty in our brain composes in some way, to form the idea. It is an idea that can be identified within our brain by an fMRI experiment.

We then use this idea (within the brain), to inspire the design and construction of machines, which help us to 'do computation' (a related concept within the brain) so those machines can be considered 'computers' (ditto). 

By making use of another still mysterious mental function, 'using metaphor', anything we think about can be described, if we so choose, as a 'machine' or a 'computer'. Those are ideas (defined within the brain), as are concepts we 'apply' them to: ideas like 'the world', 'organisms', 'my mind' … etc.

My point is that 'machine' and 'computation' are not otherwise defined. As technical terminology, we have invented a gedanken model, the Turing machine, to frame some interesting mathematical exploration. And many kinds of machine-thought-models like this have been 'built' and explored in the complexity zoo. And we have attached the words 'machine' and 'computation' to them, which is a terminological choice, much as we say that 'planes fly' but we don't say that 'submarines swim'.

But this is not the definition of 'machine' or 'computer' that's in our mind. That has yet to be explored. 

Our current theoretical machines are technical expedients. These are not natural science theories, because they don't begin to pick something out from the natural world and call it 'computation'. I mean, people have used these technical formalisms on things in the world, but are unconcerned if there are computations in the world that don't match the model -- similar to the way a writer of a successful chess-playing program wouldn't be concerned if the structure of the program has nothing to do with the structure of the human mind. After all, they say, it "plays chess", by their definition (as "planes fly"). In the same way, engineering models of 'computation' are used to 'build machines', not to explore the limits, mind-internal and mind-external, of what we might consider 'computation'.

Conclusion

We need to understand that 'machine' and 'computer' are not technical terms in the natural sciences. We need to see this as a problem. (1) And then we need to find out what the limits of these terms are in our minds, through experiments regarding their limits. (2) And then we need a separate terminology for things we consider computations outside our minds, things that a physicist could identify with an instrument. (3) And these include what the brain itself does, which we often call 'computational', although we have no idea what kind of machine the brain is, and so we don't know if its operation in the natural world has any connection to the first two.

We have not explored these three straightforward natural science approaches to computing. And this is just the beginning. The world of computing has become so diverse that it will take years to straighten out this situation. But, ultimately, this approach will simplify Computer Science, and make it more intelligible, integrated, and authentic.

2 comments:

  1. I re-interpreted the entire Computer Science and Software Programming using Life Centers.
    https://github.com/beyondliu/lfcs/wiki/Life-Framework-applied-to-Computer-Science

    ReplyDelete
  2. I also applied it to education, management, biology, and potentially math, physics and other sciences.
    http://www.opensourcelearning.org/theory-life-framework/
    https://github.com/beyondliu/lfcs/wiki

    ReplyDelete