The choice of Visual Basic is rare among artists, and using it for this game-inspired artwork is a nice touch, a bit like creating a whimsical sculpture out of corporate cubicle walls. In skilled hands VB can be unusually close to English, which is ideal for this assignment. This pseudo-game is playful and fun, yet also is a miniature "complex system," representing one of the deepest forms of interactivity.
John Klima: Martin says quite rightly that VB is a rare choice among artists, and I've always wondered why that is. True, it is not cross-platform, as Java (usually) is. But BASIC is, in my mind, the most natural of programming languages. Java seems to be the de-facto language for code artists, particularly net-sters. Other than its cross-platform capabilities and its admittedly outstanding networking, it eats the CPU for lunch and manages memory worse than I manage my bank account, which is to say, poorly. It has all the punctuation of C and none of the terseness that C pointers afford. I've programmed plenty in C, been doing BASIC since I was 12, even wrote a thing or two in Pascal, and now I have been working a lot with Java, precisely because of the cross-platform function it allows. I must say it has been an astonishingly annoying experience. A simple A* pathfinding algorithm that completes in a few milliseconds in C or BASIC, often takes ava several seconds to complete. Why is it when i say "foo = new bar;" three times in Java, the second performs worse than the first and the third barely performs at all? According to the docs, I should be able to trash and re-use "foo" without a care in the world, because java handles all the garbage collection for me. No thanks, i'll take my own trash to curb, 'cause then I know it hasn't been scattered all over the driveway while the garbage man chats up my 14-year-old daughter. Not trying to start a code war here, nothing could be less interesting, but the general assumption about artists is such that we are not so great at the kind of things that programming requires. So it stands to reason that artists would gravitate to the language that reads the most like plain English. Instead we have the java (and C) faction on one side and the Flash (and Lingo) camp on the other, where in my mind BASIC is just what the doctor ordered. BASIC is as powerful and as fast C (with only a very few exceptions) and as easy to use as lingo, perhaps easier as it doesn't try to hide itself behind "timelines" and other functional abstractions that tend to get in the way of getting the real work done.
Great Piece! Even though there were no sound calls in your code, I heard a happy tune with occasional thumps of the feet of Kong in the distance. It is really eerie, actually, to see this videogame with no sound -- it's like a silent film, but the characters are in color. The period costumes of the actors also fit perfectly this silent film metaphore. Lots of rich associations here. For those of us that grew up with these games, they live on in our minds with a life of their own, so it makes sense that we can no longer control the movements of the characters, but that they have their own desires and impulses. I'm curious how those that don't know the cultural reference would see the work? Your code is terrifically expressive -- it's a combination of narrative and social psychology and greatly adds to the richness of this work.
Your code had me laughing hysterically. I knew someone would approach this project as a 'writing' project as well as a coding project, but you succeeded beyond anything I could have imagined. I've taught Lingo to artists at NYU (as you know) and my students occasionally send me 'lingo poetry' where they write functional code with a second literary 'read' as you have done. I think I get these poems from them because when I introduce the logic of code structures, I do it the other way around -- 'If (it's raining out) then bring your umbrella' etc.
I once 'coded' a persistent difficulty I was having in life as follows:
For those of you reading this who don't code -- this is an infinite loop calling a procrastination function. The condition which makes the loop repeat is always true, so there's no way to stop procrastinating -- ever.
I sent this code to a colleague explaining my dilemma (Geoff Smith for those of you who know him) and he proposed what he described as a simple, though unconventional solution:
define TRUE FALSE
Redefine truth, and I never get stuck procrastinating . . .
The similarity between computer code and declarative poetry has been noted before, but John's work makes this more clear than ever. I like the fact that the piece 'updates' the nursery rhyme, both socially and computationally. I also admire how tight the connection is between its functionality and its narrativity. I haven't used BASIC in about 20 years (gulp!) -- it's also interesting to reconnect with a language I haven't used in so long -- a bit like encountering a long-lost friend and sensing the ways in which we've grown apart.