Vos actions : Créer un document, voir la page générale.

Cultures numériques

Cours de Bachelor 1
Home /

La programmation comme medium artistique

"La genèse de nos langages de programmation a ainsi tendance à ressembler à cette machine. Mais l’ordinateur n’est pas tant une machine qu’un outil d’amplification de l’esprit, voir ce qu’on pourrait appeler un média expressif d’un genre nouveau. Par conséquent, les outils ressemblent de moins en moins à des machines et de plus en plus à des parties de notre esprit[...]"- Bruce Eckel, Thinking C++, p. 35

Après une brève histoire de l’évolution des langages informatiques, un positionnement vis-à-vis de l’histoire de l’art (musique & arts plastiques) et une redéfinition du terme arts numériques, François Zajéga vous propose une plongée au coeur de sa pratique artistique, dans laquelle le code n’est plus un activateur mais devient matière première. En vous présentant la manière dont il travaille, il abordera les implications du medium dans la conception et la nature de ses productions.

Retrouvez tous les liens et images utilisées pendant le cours sur la page wiki de François Zajega.

Notes

- écriture == code ? les différence fondamentales entre le language humain et le language machine

- corps-esprit == hardware-software ?

- temps machine / temps humain

- dématérialisation ? - mythe de la machine abstraite - vidéo youtube : Transistors & The End of Moore’s Law

- au bord du réel

- distance au processus et manque de retour aptique

- le robot et l’avatar
They can’t tell the difference, for an artificial mind all realities are virtual. [...] How could they know that the real world is not another simulation. - vidéo Youtube : Animatrix -

Generation First Second Third Fourth
Code example
10101010011000101
10011010100000010
11111111101000101
LDA 34
ADD #1
STO 34
x = x + 1
body.top {
 color: red;
 font-style: italic
}
Language (LOW) Machine Code (LOW) Assembly Code (HIGH) Visual Basic, C, python etc. (HIGH) SQL, CSS, Haskell etc.
Relation to Object Code
(generally)
one to one one to many one to many

Source : Editing A-level Computing/AQA/Computer Components, The Stored Program Concept and the Internet/Fundamentals of Computer Systems/Generations of programming language

Early Computers - Applications, Computer Graphics, Look at Future Uses - from 1960s

Code C++ non-compilé Éléments signifiants pour le compilateur
Ogre::Vector3 norm;
Ogre::Vector3 normX;
Ogre::Vector3 normY;
Ogre::Vector3 normZ;
bool ori_initX = false;
bool ori_initY = false;
for ( unsigned int i = start; i < limit - 3; i += 3 ) {
        Ogre::Vector3 ab =
                        md->vertices[ md->indices[ i ] ] -
                        md->vertices[ md->indices[ i + 1 ] ];
        Ogre::Vector3 ac =
                        md->vertices[ md->indices[ i + 2 ] ] -
                        md->vertices[ md->indices[ i + 1 ] ];
        norm = ab.crossProduct( ac );
        norm.normalise( );
        bool iszero = isZero( norm );
        if ( ori_initX && isEqualOrInverse( norm, normX, true ) ) continue;
        if ( !iszero ) {
                if ( !ori_initX ) {
                        normX = norm;
                        ori_initX = true;
                } else if ( !ori_initY ) {
                        normY = norm;
                        ori_initY = true;
                        break;
                }
        }
}
0x0000B457 0x0012FA56;
0x0000B457 0x0012FA01;
0x0000B457 0x0012FE04;
0x0000B457 0x0012FEC8;
bool 0x0012FF00 = 0x00000000;
bool 0x0012FF01 = 0x00000000;
for ( 0x00000A8 0x0012FF02 = 0x0012FE99; 0x0012FF02 < 0x0012FE98 - 0x00000011; 0x0012FF02+= 0x00000011 ) {
        0x0000B457 0x0012FF03 =
                        0x0000EC32[ 0x0000EC57[ 0x0012FF02] ] -
                        0x0000EC32[ 0x0000EC57[ 0x0012FF02+ 0x00000001 ] ];
        0x0000B457 0x0012FF04 =
                        0x0000EC32[ 0x0000EC57[ 0x0012FF02+ 0x00000010 ] ] -
                        0x0000EC32[ 0x0000EC57[ 0x0012FF02+ 0x00000001 ] ];
        0x0012FA56 = 0x0012FF03.crossProduct( ac );
        0x0012FA56.0x0000E013( );
        bool 0x0000AB05 = 0x0000AB05( 0x0012FA56 );
        if ( 0x0012FF00 && 0x0000AB12( 0x0012FA56, 0x0012FA01, 0x00000001 ) ) continue;
        if ( !0x0000AB05 ) {
                if ( !0x0012FF00 ) {
                        0x0012FA01 = 0x0012FA56;
                        0x0012FF00 = 0x00000001;
                } else if ( !0x0012FF01 ) {
                        0x0012FE04 = 0x0012FA56;
                        0x0012FF01 = 0x00000001;
                        break;
                }
        }
}
Par François Zajéga, 16 février 2017