Life in Code and Software/Introduction: Difference between revisions

No edit summary
No edit summary
Line 4: Line 4:


Today we live in a software society. All around us software is running to make our lives more comfortable, safer, faster, and convenient. From the entertainment systems that we use to listen to music and watch television, to the engine systems that allow us to experience unprecedented fuel efficiency and even electric cars, software is doing the heavy lifting that makes the old industrial and consumer experience better.  
Today we live in a software society. All around us software is running to make our lives more comfortable, safer, faster, and convenient. From the entertainment systems that we use to listen to music and watch television, to the engine systems that allow us to experience unprecedented fuel efficiency and even electric cars, software is doing the heavy lifting that makes the old industrial and consumer experience better.  
Software studies is a field that uses approaches drawn from philosophy, politics, history, anthropology, sociology, media studies, computer science, and the humanities more generally, to try to understand the way in which software increasingly penetrates our everyday life. As a relatively new discipline it has a two-fold challenge of having to reorder and construct methods and theories that are appropriate to studying software. Additionally the field is still undertaking the difficult task of uncovering helpful exemplars and examples that can assist in the teaching of software studies itself.  
Software studies is a field that uses approaches drawn from philosophy, politics, history, anthropology, sociology, media studies, computer science, and the humanities more generally, to try to understand the way in which software increasingly penetrates our everyday life. As a relatively new discipline it has a two-fold challenge of having to reorder and construct methods and theories that are appropriate to studying software. Additionally the field is still undertaking the difficult task of uncovering helpful exemplars and examples that can assist in the teaching of software studies itself.  
software and hardware
software and hardware
Crucially it is important to recognize that software requires a platform upon which to run. Platforms can be either hardware or software based but they provide the conditions and environment which makes it possible for the software to function correctly. One of the difficulties with studying software is that is requires a complete assemblage of technologies in order to work at all, what we might call its infrastructure. This might be the specific model of computer or processor that is needed to run the software, or it might be a particular operating system, or network. This necessarily complicates the study of software and needs to be born in mind when studying software. Nonetheless, it can nonetheless be analytically useful to draw distinctions between different levels of analysis when thinking about software in order to try to understand what it can and cannot do, and more importantly how we might think about understanding it. These are (1) Software Layer, (2) Software Platform, and (3) Hardware Platform.  
Crucially it is important to recognize that software requires a platform upon which to run. Platforms can be either hardware or software based but they provide the conditions and environment which makes it possible for the software to function correctly. One of the difficulties with studying software is that is requires a complete assemblage of technologies in order to work at all, what we might call its infrastructure. This might be the specific model of computer or processor that is needed to run the software, or it might be a particular operating system, or network. This necessarily complicates the study of software and needs to be born in mind when studying software. Nonetheless, it can nonetheless be analytically useful to draw distinctions between different levels of analysis when thinking about software in order to try to understand what it can and cannot do, and more importantly how we might think about understanding it. These are (1) Software Layer, (2) Software Platform, and (3) Hardware Platform.  
The main reason for drawing these distinctions is it enables us to pay attention to the salient focus of the analysis we wish to undertake in this book, without losing sight of the importance of the supporting hardware and software. This form of layering of different technologies on top of each other is very common in computer technology and you will see different forms of this structure throughout the book.  
The main reason for drawing these distinctions is it enables us to pay attention to the salient focus of the analysis we wish to undertake in this book, without losing sight of the importance of the supporting hardware and software. This form of layering of different technologies on top of each other is very common in computer technology and you will see different forms of this structure throughout the book.  
The most important aspect of this layering model is to abstract the hardware from the software. This is crucial in software to enable software to, in theory, run anywhere, without having to know too much about the specifics of the underlying technologies. Of course, this is an ideal scenario and even today few technologies can make this claim confidently, although technologies like HTML, Java, and so forth, were explicitly designed for just this reason.  
The most important aspect of this layering model is to abstract the hardware from the software. This is crucial in software to enable software to, in theory, run anywhere, without having to know too much about the specifics of the underlying technologies. Of course, this is an ideal scenario and even today few technologies can make this claim confidently, although technologies like HTML, Java, and so forth, were explicitly designed for just this reason.  
It is important to note that these technologies are digital technologies, but merely appreciating that they are made up of so-called digital code (0’s and 1’s) doesn’t get us very far. Instead we have to take account of the fact that the internal structures that enable things to become softwarized is complex and very structured.  
It is important to note that these technologies are digital technologies, but merely appreciating that they are made up of so-called digital code (0’s and 1’s) doesn’t get us very far. Instead we have to take account of the fact that the internal structures that enable things to become softwarized is complex and very structured.  
The main distinction that is used today is that between applications (or apps) and files (or data). It is common for them to be combined together in a so-called wrapper that hides this from the user, for example in many mobile operating systems, but the basic distinction still remains beneath the screen.  
The main distinction that is used today is that between applications (or apps) and files (or data). It is common for them to be combined together in a so-called wrapper that hides this from the user, for example in many mobile operating systems, but the basic distinction still remains beneath the screen.  
Media and software
 
'''Media and software
'''
 
When media is incorporated into software it is transformed into files. For example, when a song is taken from a physical medium, such as CD or DVD, it is encoded into a digital file, for example MP3 or AAC. We are very familiar with this concept when using PCs and laptops.  
When media is incorporated into software it is transformed into files. For example, when a song is taken from a physical medium, such as CD or DVD, it is encoded into a digital file, for example MP3 or AAC. We are very familiar with this concept when using PCs and laptops.  
However there is also a move to transforming media content into ‘apps’ or media rich software experiences. Taking the example of music again, rather than create a series of MP3 files after encoding (ripping) the CD, instead some musicians are experimenting with turning the album into a self-standing app for playing and interacting with the music itself. This is important to note because these two ways of interacting with media are very different and draw on different repertoires within the computer interface.   
However there is also a move to transforming media content into ‘apps’ or media rich software experiences. Taking the example of music again, rather than create a series of MP3 files after encoding (ripping) the CD, instead some musicians are experimenting with turning the album into a self-standing app for playing and interacting with the music itself. This is important to note because these two ways of interacting with media are very different and draw on different repertoires within the computer interface.   
As old media forms, like TV, film and newsprint, are digitized, there is experimentation by designers and programmers on the best form to present media content to the user. Clearly the media forms are all being softwarized in the process – as the way in which the content is used is mediated through a software interface – however, there are a number of paradigms that shape the way in which media is interacted with including:
As old media forms, like TV, film and newsprint, are digitized, there is experimentation by designers and programmers on the best form to present media content to the user. Clearly the media forms are all being softwarized in the process – as the way in which the content is used is mediated through a software interface – however, there are a number of paradigms that shape the way in which media is interacted with including:
Applications and files
Applications and files
Apps (wrapping the media)
Apps (wrapping the media)
Streams (including real-time streams)
Streams (including real-time streams)
Clouds (where media is held in a digital asset database)
Clouds (where media is held in a digital asset database)
When transformed into software: firstly, a new media object is subject to algorithmic manipulation. In short media becomes programmable. Secondly, streaming media are any media built around a continuous data-flow, and this will likely be the paradigmatic form of media for the future. This means that media will increasingly be subject to regular and repeating computation.  
When transformed into software: firstly, a new media object is subject to algorithmic manipulation. In short media becomes programmable. Secondly, streaming media are any media built around a continuous data-flow, and this will likely be the paradigmatic form of media for the future. This means that media will increasingly be subject to regular and repeating computation.  
Why Study Software?
 
'''Why Study Software?'''
 
It is clear then that media is changing and that if we are not careful we will make the mistake of allowing past mediums limit our understanding of the new software-based media. We certainly need to be aware of the pressure software is exerting on these old ways of understanding media and in moving to a new paradigm of knowledge, ensure that we take the old media theory that still is appropriate whilst leaving behind that which is too closely wedded to the older broadcast technologies.  
It is clear then that media is changing and that if we are not careful we will make the mistake of allowing past mediums limit our understanding of the new software-based media. We certainly need to be aware of the pressure software is exerting on these old ways of understanding media and in moving to a new paradigm of knowledge, ensure that we take the old media theory that still is appropriate whilst leaving behind that which is too closely wedded to the older broadcast technologies.  
Additionally, software itself is changing rapidly due to limitations now being experience in the capacity of hardware to support old software paradigms. For example, many of our computing systems, and certainly those that we have used in everyday life, have been built around single processor systems that we expected to get faster and faster based on the notion of Moore’s Law, that is, that computer speed roughly doubles every eighteen months. Physical limitations are now being hit in the design of computer chips, and therefore rather than increase the speed (measured in Hz, MHz, or GHz), instead chip manufacturers are increasingly the number of ‘cores’ or processors that we have in our machines.  
Additionally, software itself is changing rapidly due to limitations now being experience in the capacity of hardware to support old software paradigms. For example, many of our computing systems, and certainly those that we have used in everyday life, have been built around single processor systems that we expected to get faster and faster based on the notion of Moore’s Law, that is, that computer speed roughly doubles every eighteen months. Physical limitations are now being hit in the design of computer chips, and therefore rather than increase the speed (measured in Hz, MHz, or GHz), instead chip manufacturers are increasingly the number of ‘cores’ or processors that we have in our machines.  
Software is therefore the new focus of the massive advances in speed and capability in hardware design. However, most programming is still written in a form that assumes fairly simple computer structures and hardware – like a single core to the processor. We are therefore living in a time of a dual transformation of both, (i) a general move to a softwarized media world, but also (ii) that software itself is about to enter a change in paradigm to take account of rapid change in the hardware environment too which means more stream-based computation.  
Software is therefore the new focus of the massive advances in speed and capability in hardware design. However, most programming is still written in a form that assumes fairly simple computer structures and hardware – like a single core to the processor. We are therefore living in a time of a dual transformation of both, (i) a general move to a softwarized media world, but also (ii) that software itself is about to enter a change in paradigm to take account of rapid change in the hardware environment too which means more stream-based computation.  
This includes the shift from relatively static desktop computers to mobile computers, indeed in 2006 according to the ITU, there were 2.7 billion mobile devices vs 850 million desktop computers, with YouTube alone streaming video media of 200 terrabyte per day.   
This includes the shift from relatively static desktop computers to mobile computers, indeed in 2006 according to the ITU, there were 2.7 billion mobile devices vs 850 million desktop computers, with YouTube alone streaming video media of 200 terrabyte per day.   
The changing location for microprocessors, increasingly embedded in all sorts of everyday devices, from washing machines to coffee-makers, highlights the extent to which we rely on software. All of these chips need software to run, without which they would essentially by plastic, metal and glass bricks.  
The changing location for microprocessors, increasingly embedded in all sorts of everyday devices, from washing machines to coffee-makers, highlights the extent to which we rely on software. All of these chips need software to run, without which they would essentially by plastic, metal and glass bricks.  



Revision as of 16:57, 28 February 2012

Back to the book

This book explores the relationship between living and code and software. It does so because these technologies are increasingly part of our urban environment, and indeed stretching even to very remote areas of the world. The book introduces and explores the way in which code and software become the conditions of possibility for human living, crucially becoming a computational ecology which we inhabit. As such we need to take account of this new computational world and think about how we live today in a highly mediated code-based world.

Today we live in a software society. All around us software is running to make our lives more comfortable, safer, faster, and convenient. From the entertainment systems that we use to listen to music and watch television, to the engine systems that allow us to experience unprecedented fuel efficiency and even electric cars, software is doing the heavy lifting that makes the old industrial and consumer experience better.

Software studies is a field that uses approaches drawn from philosophy, politics, history, anthropology, sociology, media studies, computer science, and the humanities more generally, to try to understand the way in which software increasingly penetrates our everyday life. As a relatively new discipline it has a two-fold challenge of having to reorder and construct methods and theories that are appropriate to studying software. Additionally the field is still undertaking the difficult task of uncovering helpful exemplars and examples that can assist in the teaching of software studies itself. software and hardware

Crucially it is important to recognize that software requires a platform upon which to run. Platforms can be either hardware or software based but they provide the conditions and environment which makes it possible for the software to function correctly. One of the difficulties with studying software is that is requires a complete assemblage of technologies in order to work at all, what we might call its infrastructure. This might be the specific model of computer or processor that is needed to run the software, or it might be a particular operating system, or network. This necessarily complicates the study of software and needs to be born in mind when studying software. Nonetheless, it can nonetheless be analytically useful to draw distinctions between different levels of analysis when thinking about software in order to try to understand what it can and cannot do, and more importantly how we might think about understanding it. These are (1) Software Layer, (2) Software Platform, and (3) Hardware Platform.

The main reason for drawing these distinctions is it enables us to pay attention to the salient focus of the analysis we wish to undertake in this book, without losing sight of the importance of the supporting hardware and software. This form of layering of different technologies on top of each other is very common in computer technology and you will see different forms of this structure throughout the book.

The most important aspect of this layering model is to abstract the hardware from the software. This is crucial in software to enable software to, in theory, run anywhere, without having to know too much about the specifics of the underlying technologies. Of course, this is an ideal scenario and even today few technologies can make this claim confidently, although technologies like HTML, Java, and so forth, were explicitly designed for just this reason.

It is important to note that these technologies are digital technologies, but merely appreciating that they are made up of so-called digital code (0’s and 1’s) doesn’t get us very far. Instead we have to take account of the fact that the internal structures that enable things to become softwarized is complex and very structured. The main distinction that is used today is that between applications (or apps) and files (or data). It is common for them to be combined together in a so-called wrapper that hides this from the user, for example in many mobile operating systems, but the basic distinction still remains beneath the screen.

Media and software

When media is incorporated into software it is transformed into files. For example, when a song is taken from a physical medium, such as CD or DVD, it is encoded into a digital file, for example MP3 or AAC. We are very familiar with this concept when using PCs and laptops.

However there is also a move to transforming media content into ‘apps’ or media rich software experiences. Taking the example of music again, rather than create a series of MP3 files after encoding (ripping) the CD, instead some musicians are experimenting with turning the album into a self-standing app for playing and interacting with the music itself. This is important to note because these two ways of interacting with media are very different and draw on different repertoires within the computer interface.

As old media forms, like TV, film and newsprint, are digitized, there is experimentation by designers and programmers on the best form to present media content to the user. Clearly the media forms are all being softwarized in the process – as the way in which the content is used is mediated through a software interface – however, there are a number of paradigms that shape the way in which media is interacted with including:

Applications and files Apps (wrapping the media) Streams (including real-time streams) Clouds (where media is held in a digital asset database)

When transformed into software: firstly, a new media object is subject to algorithmic manipulation. In short media becomes programmable. Secondly, streaming media are any media built around a continuous data-flow, and this will likely be the paradigmatic form of media for the future. This means that media will increasingly be subject to regular and repeating computation.

Why Study Software?

It is clear then that media is changing and that if we are not careful we will make the mistake of allowing past mediums limit our understanding of the new software-based media. We certainly need to be aware of the pressure software is exerting on these old ways of understanding media and in moving to a new paradigm of knowledge, ensure that we take the old media theory that still is appropriate whilst leaving behind that which is too closely wedded to the older broadcast technologies.

Additionally, software itself is changing rapidly due to limitations now being experience in the capacity of hardware to support old software paradigms. For example, many of our computing systems, and certainly those that we have used in everyday life, have been built around single processor systems that we expected to get faster and faster based on the notion of Moore’s Law, that is, that computer speed roughly doubles every eighteen months. Physical limitations are now being hit in the design of computer chips, and therefore rather than increase the speed (measured in Hz, MHz, or GHz), instead chip manufacturers are increasingly the number of ‘cores’ or processors that we have in our machines. Software is therefore the new focus of the massive advances in speed and capability in hardware design. However, most programming is still written in a form that assumes fairly simple computer structures and hardware – like a single core to the processor. We are therefore living in a time of a dual transformation of both, (i) a general move to a softwarized media world, but also (ii) that software itself is about to enter a change in paradigm to take account of rapid change in the hardware environment too which means more stream-based computation.

This includes the shift from relatively static desktop computers to mobile computers, indeed in 2006 according to the ITU, there were 2.7 billion mobile devices vs 850 million desktop computers, with YouTube alone streaming video media of 200 terrabyte per day.

The changing location for microprocessors, increasingly embedded in all sorts of everyday devices, from washing machines to coffee-makers, highlights the extent to which we rely on software. All of these chips need software to run, without which they would essentially by plastic, metal and glass bricks.

Video resources

Algorithms are Thoughts, Chainsaws are Tools by Stephen Ramsay

A short film on livecoding presented as part of the Critical Code Studies Working Group, March 2010, by Stephen Ramsay. Presents a "live reading" of a performance by composer Andrew Sorensen.

Wendy Chun - Critical Code Studies

Wendy Chun giving a lecture on code studies and reading source code.