ART+Code: Golan Levin ― Introduction

August 9, 2009 by nicolas, tagged programming, litteracy and art_and_code, filed under commentary

on software literacy

I’m kicking off a series of summaries and commentaries of the ART+Code conference talks. The conference was organized in Pittsburgh in March 2009. It presented many programming environments, with a focus on how programming tools might help more people, and in particular children learn programming.

ART+Code’s conference-founder Golan Levin is starting up by asking why¹ we should all be programming.

It starts with an observation: we interact with software more and more regularly; be it in appliances, on the internet, or even within administrations or work. As a consequence, software in general has taken an increasingly important place. Computer and software literacy has however not developed as much: while using software is a common activity, writing software is much less so.

In contrast with writing, most people don’t program for self-expression. The population has not made writing software part of everybody’s toolset. Meanwhile, with the exception of Free Software/Opensource, software has become more opaque and challenging than ever: you can’t pick it apart, like you can do with a hardware device.

Software litteracy is generally sought after in order to get a job, and in general for economical reasons.

And despite the pioneers who started writing artistic software in the early days of computer science in 1960 and beyond, software engineers and companies themselves do not acknowledge the existence of such programs.

For example, there is no category for "Artistic" software in Apple’s Application Store. Non-utilitarian or purely artistic software are largely ignored².

Demosceners know this problem too, as there’s no place for demos in the application store either, nor is the population in general aware of them.

This also shows a problem with distribution of such software. The demoscene has historically been a way to answer this: A set of — originally peer to peer, nowadays centralized — traditions and technical mechanisms to distribute purely artistic software.

In the context of the ART+Code conference each talk will show that one programming environments is not often separable from its community.

Programming for one’s own self expression is different from the more traditional view of solving computer science problems, or the "filing" type of applications prevalent nowadays in most companies.

For this reason and since they show no willingness to touch the general public, teaching programming should not be a monopoly of computer science departments³.

¹ talking about literacy, when we say of someone he is literate we do not simply mean he is able to read and write a few administrative letters. There is a certain expectation on the resulting works. The quality of the software we write should remain important even if programming becomes popular.

² save ifart or screensavers. Note that we group most games here amongst utilitarian software, although the boundary with artistic software is not so straightforward to define.

³ the early home computer demoscene played that role in the 80s and 90s in europe. Kids learned programming, motivated by the energy they saw in demos encountered in their use of computers: as they shared programs with one another, they would invariably encounter a demo amongst the pirated game disks. Today’s sanitized, heavily categorized software environment, the advent of the internet and the advent of online gated communities distanced end users from such serendipitous encounters.

PHPException (2)

count(): Parameter must be an array or an object that implements Countable

in /home/neq/nicolas.uucidl.com/gitblog/themes/uucidl/post.php:24

  </div>
  <!-- =========================== comments =========================== -->
  <? if ($post->commentsOpen || count($post->comments)): ?>
  <div id="comments">
    <hr/>
::require(1) called in gitblog/themes/uucidl/index.php:101
    }
    elseif (gb::$is_post || gb::$is_page) {
      require gb::$theme_dir.'/post.php';
    }
    elseif (gb::$is_posts || gb::$is_tags || gb::$is_categories) {