Thoughts from Toxi

A terrific programmer and artist toxi has written up some thoughts about “Code (with a capital C)” and Processing. The post inspired a great deal of discussion on the Processing forum as well as a second and third post on toxi’s blog.

I was about to post some of my thoughts on the forum and here, but realized, eh, what do I really know. Who better to respond and discuss this topic than those in my nature of code class? So, well, I made it “homework. . . ” Post away! (use the comments here to leave your response, but feel free to post to the Processing forum as well.)

  • http://jamesnsears.com James Nick Sears

    It seems to me that the distinction between Processing and Java is overblown. I agree with Toxi that a straight Java library with similar functionality to Processing would be a good option. It seems to me that the delayed learning curve aspect (that learning Processing in favor of Java merely delays the learning of essential aspects of programming that might be best learned up front) is also true, but largely psychological. It seems that anyone who is prepared to learn Processing could also learn to do the same things with similar libraries in Eclipse in a similar amount of time or that anyone who is comfortable in Processing should be able to move to straight Java in Eclipse or the like with a relatively small effort.

    That said, if Processing is less intimidating and helps people get hooked on the idea of learning programming then it is great. Personally, I feel that the time saving features of Eclipse like auto highlighting of errors, auto correcting errors, etc. are worth far more than the simplicity of the Processing environment, especially when I can just import the Processing .jar files and inherit my class from PApplet, taking advantage of all of the Processing code and all of Eclipse’s features. However this points to Toxi’s idea that Processing would be just as well implemented as a general purpose library set. Then people would have to get over the hump initially and would have confidence that they are programming in a ‘full blown’ language. Not to mention they would have a much more capable text editor to work with.

    Re Object Oriented Programming: I think it is important to note to beginners that the ONLY reason these abstractions are commonly made in programming languages is to make it easier for the coder to do his/her work. OOP is not something to shy away from because it makes your life harder – in fact it will save you much time and headache as soon as you are over the hurdle of understanding how to use it properly.

  • http://www.itp.nyu.edu/~pm1135 Paris Marashi

    [thoughts from a newbie]

    In the art and design world, programming is something that I continue to see more and more, all around me. As such, i have felt the need to learn it. I want to learn about programming so that when i run into it, I won’t be intimidated by it. Clearly, different types of media and new programs will require a certain amount of programming knowledge; from 3d modelling to flash animation, programming is being used more and more to design textures, moments, experiences, and designs which are manifested in the physical world all over.

    I am inspired to improve my programming knowledge. As such, i am pushing myself to learn something new, that i know will help me in the future; hence I am taking a truly wonderful programming class.

    All this being said, programming is new to many of us, and so I appreciate this discussion (on the processing website), and i feel that I am being supported by people who realize how programming is new to many of us! i am a newbie, but I am here to learn.

  • Greg B

    Quoting Toxi:

    I think it’s dangerous and a sign of crisis if every recycled L-System, Neural Network, Wolfram automata or webcam tracking experiment automatically is considered art (by their authors), simply because it’s been “(Re)Built with Processing”…

    So is it too late to drop this class?

    Nah, I think I’ll stick around. I’m having way to much fun making bouncy balls.

    Toxi’s assasination attempt has the entire 4th floor in its crosshairs, but don’t worry, it’s not just ITP. The “form before function” argument doesn’t only apply to us sloppy Processing workshoppers and extends way beyond the if->then realm of Coding (with a capital C). Toxi’s argument is valid for the entire digitally literate population. We are erroding the English language with our internet acronyms and chatroom grammar. Toxi is simply feeling what a 5th grade English teacher is feeling when she reads a paper with a bunch of “LOL’s” in it. ADD/laziness is a self-reinforcing, culturally degrading/uplifting phenomenon(take your pick). Don’t blame MTV. Don’t blame the inevitable progression of user-friendly technology. Blame man for blindly embracing every upgrade. Who reads manuals? I know I don’t. Computers used to have yellow-page status manuals. Today some computers don’t even come with manuals anymore because they have been gradually dummed down for our impatient “gimmeee now” attitudes. Point click copy paste. That’s all there is to it. Why type it when you can say it. Why read it when you can see it or hear it. Why leave the house when they deliver it to your door. Now more than ever, we are thinking less and doing more. Avatars are becoming more like us in the digital world, or is it that humans are slowly becoming the avatar’s avatar in the real world? Whatever. In a few years there won’t be a differeance and I don’t think we’ll even care. Now back to Toxi’s belief that “we should be aware of and work on intelligent software designs in order to advance our discipline”. Advance yes? But by us, the inexorable, black-hole sucking consumers? Hell no. We are bastardizing every popular discipline that we can get our curious fidgety hands on. We have revolutionized/destroyed the real, beautiful art of making and sacrificed it for the ability to Do and UNDO over and over again. Why? Because we can spend less to do more. I don’t think we are really thinking about the quality of our design. Especially if the quality of design is not what is being judged. As is the case with object oriented programming. If the balls bounce then that’s all people really see/care about. When looking at an image of the most magnificent sunset, the subject does not ask himself how the image was conceived, as he/she is too busy being immersed in its radiant aura. Whether it was a digital photographer who wasn’t even there to witness the actual sunset (he could have just positioned his camera at the horizon and set it to take a thousand shots during that day) or if it was a real film photographer who suffered for months trying to capture the perfect moment, whatever the method of origin, it is the final effect that the image has on the subject that matters. Does the image evoke? That’s what’s important. I think both photographers can achieve that effect. Technology does forgive the ingnorant/lazy but it also gives us more accessibility and thus a chance to try. Today everyone is a programmer just like everyone is a photographer, and a film maker, and a music producer, etc. Soon Coding will be autocorrected just like our spelling mistakes in Google and Word. Real Code will give-way to Pseudo-Code. But who cares. It’s not the Code that matters, it’s the effect. The user-experience is what counts. The user-experience is what we remember.

  • Charles Pratt

    I think that Toxi brings up a good point which to some extent got lost, and that is that the tools you use will inevitably affect the work you produce. Coming from the perspective of the 3D world (of which I am aquainted with, but far from expert in), there is a general consensus that people who model using 3D Studio Max, as opposed to Maya or Soft, all tend to model in a very similar way. In other words, there seems to be a ‘Max look’ to their work. Now, that’s not to say that people don’t break out of that and learn to work beyond the tendencies of the interface, but it’s very different from other packages that, while harder to learn, support much more divergent styles of production.

    The same can probably be said of Processing. More likely than not there are habits that we’re all forming that we won’t even be aware of until we reach a much higher level of expertise, perhaps never. That’s something that I’m very concerned with, because I dread the day that I get discouraged from something, or worse, miss it entirely, because of some prejudice I don’t even know I have.

    Unfortunately, I’m not sure that there’s any way to mitigate this. Dan Shiffman cannot possibly stand up in front of us and go through everything that we don’t know. One, it would never end, and two, it would probably be heartbreaking. For instance, take Object Oriented Programming. I feel like even my brief experience with C makes it that much harder to not just understand ‘classes’, but to learn to use them extensively. Hell, I can sometimes feel how harder it is to push the ‘tab’ button.

    Perhaps it would be interesting to get an experienced Processing user’s perspective on all this. Find out what kind of habits they think that the environment forms, what kind of biases it does or doesn’t have. Maybe even someone who teaches Processing at a major univeristy. I wonder how far we would have to go to find someone like that?

    By the way, am I off topic?

  • Diane

    My question is, do we really have to be great programmers to make good art? Who is there to define what is good or bad art? Or do we really have to think about “Am I making art?” all the time when we are programming in Processing?
    Processing is the first and only programming language I know. I had lots of fun with it in the ICM class without worrying about am I making artistic stuff or not, and that’s what drives me to take this class. But I think this is a stage that everyone would experience and go through. Toxi might go through this himself that’s why he made this statement (I’m just guessing.)
    I definitely Processing is good for teaching and beginners tho, and I think if I started with Java or C++ I might get intimidated and would never wanna touch programming again. I think toxi might be right that Processing could make beginners not realize what Java or other programming languages really can do and could therefore defer the learning, but if we never start getting interested in programming at all we might lose the chance to really get to that stage. Processing arouses my interest in programming and makes me wanna continue learning, so even if it’s just a lure at least I get the chance to delve into it. That’s why I think it’s a really effective teaching and learning tool.

  • Christopher Paretti

    I agree with what Toxi is saying about Processing being inferior to languages like straight Java, Javascript and Ruby. What Processing allows for is quick visualization of an idea. How else would students with no code expierience be able to produce some of the fantastic work that came out of ICM.

    I personally decided to take NoC not to learn more Processing, but to learn the algorithms. The methods that we have used already can be applied to any language.

    Ultimately art is never about the tools, it’s how unique and imaginative you are while using them.

  • Kazu

    As Toxi mentions, those who are benefited by a large amount of codes should respect people who put the codes and spend time on going deep into the computer language like Java to contribute to the community. I agree with him because I’d like to create seriously. Thinking of audiences’ perspectives, however, I have something to emphasize: we should try to show our insight into our world.
    Although it is easy to create works that seem beautiful, easiness of copy and paste codes brings a result: making really creative works in computer art is more difficult than in classical art media like painting. Of course, it is very tough in any fields. But, creating unique works by computers is harder than by hand because computers return the same values regardless of those who manipulate computes. When inputting 255 in computer, we can get the same white color. Therefore, since details of works are very important to make difference, we need to go deep into the computer language as he argues.
    However, (whatever we do,) audiences mind only about works as results basically. For instance, they don’t pay attention to methods to make the works such as Processing, Java, Max and so on. That is because concepts and thoughts are most important.
    I don’t tell that the efforts to a computer language are unnecessary, but they are prerequisites. As a result, we should more consider and develop our own concepts and thoughts. I think now is a good time to tell creativity instead of codes because Processing is becoming popular.

  • Songul Aslanturk

    Since programming is a language, simplicity and clearance values of it would make it fun to learn and teach. If there is an easy way of writing code why choose the difficult way to have the same output. I don’t have strong programming background except few courses I took in the past ( java,lingo etc.) but haven’t really used outside the class assignments, I still remember the lenght of code I used to write to have simple tasks. Eventhough it is challenging I am still having fun learning processing and it makes sense when I examine the code. (most of the time) I can understand how Toxi feels when he examines processing compare to java, his knowledge and experiences as a programmer but since not many people are up to that high programming level having easier coding helps a lot for people like I to learn and continue to learn object oriented programming. His concern about having too many programmers but not truly programmers around to make big bucks by learning and using processing is questionable since having processing open doors to big bucks is unknown.

  • ilteris kaplan

    I remember first opening processing back in 5 years[more or less] ago, I still remember the discomfort that I had with having such a pure IDE at that time. From that time on, I opened and closed it couple of times with unsuccessful attempts to understand what was going on inside. My only coding experience was basic Flash AS those days. I didn’t even know what a variable or an array was… At that time I had this urge to move things on the screen and comparing the sources over the Web for learning Flash and Processing, I sticked to Flash for various reasons that it had way much more learning sources around and it had some solid introduction ground as opposed to processing which I don’t believe you can teach it to yourself without the help of an instructor or a guide if you are not familiar with programming concepts beforehand. It was kind of scary looking.

    I don’t know if you guys know but actionscript was really an loose-typed language when it was 1.0. You didn’t have any data-type strictness, you could basically convert everything to everything and could find your way procedurally with the advantage of the IDE as well. This was bringing some advantages to the ‘newbie coders’ as they could find their way out and get what they were aiming for without touching the hardcore concepts of programming. (I must open a bracket to say Flash’s IDE had its weird and difficult aspects as well) Following different Flash mailing lists, I learned that from a programmer’s perspective that world was bad, actionscript was not even a programming language(as it was counted as scripting language like JS) , and if you had a desire to pursue a career in programming and still in need of using flash you should stick using it in a more OOP sense. That was the first time I learned the term OOP. Out of my curiosity I digged it and came up with documents how to apply OOP to actionscript (mostly from Colin Moock) and how I should start to be writing with this approach. The OOP was good because it would allow you to extend your code easily and you could work on it with different colleagues, and the most important of all was it was reusable as opposed to Flash’s nature of spreaded and unmaintable coding. I followed different tutorials, read workshop notes, did the exercises repeatingly to understand and grasp the concept. Could I able to apply it to my own projects? Not really! Most of the time, it was an overkill for the project. They were one man strictly deadlined projects. It was just taking too much time to convert my way of thinking towards that. So OOP stayed as a passion for me. Then time had changed, they released AS2.0 to make it more stricted language so bigger projects could be applied with OOP and they released different books on using design patterns on Flash and I guess they were trying to pull more Java and alike programmers to ‘Flash’ area.

    Reading Toxi’s blog I sensed some parallel paths between Flash’s early days and processing in a sense that what you could achieve with it and how it could be improved. I think the main problem stays as the profile of the people that are learning processing. If you’ll pursue a career in computational art, it is there with its glory, there are lots of examples that you can examine the code, it is a great exercise for everyone who wants to improve their coding styles, you can stretch, chew, skew, it is all there. It is clean, simple and open source. You can get a good grasp of what is going on within that source. You can use processing as an introduction and later jumping wagon or maybe back and forth with the other tools which could be more appropriate in terms of usability if you want to go merely in computational arts. So I totally agree with learning tool concept of processing here. But in another perspective, I strongly believe that if you are teaching a student introduction programming, it should just go parallel to OOP as well. Transforming to OOP is not easy if you have spent too much time with procedural style. This discussion is kind of black hole though, I feel myself off-topic as well :)

  • demetrie

    A great dialog for sure, and Toxi has brought up some great points. But I’m pretty sure he’s basically just wrong. Here’s why:

    1. His definition of art is pretty far of the mark.

    Some of my favorite artists (Ryan McGinley, who I remember being quoted once as saying he didn’t know anything about cameras. Or how about Chris Johanson?.. I could really go on forever here.) don’t really concern themselves with being masters of their medium (at least not in the way Toxi is getting at). Now, in terms of insight into some facet of the universe or the human condition, they’ve changed my life and the way I look at things. Most people don’t like those artists, or don’t get it, or don’t care. Fine, but that doesn’t make their work any less important to me. Their naive approach, in most cases, has helped their work be a very personal and pure expression of their take on things. They become masters of their medium becuase they develop some unique relationship with it. The best artists break the rules. Maybe some derivitive aesthetic emerges as a result, but what does that matter? How many paint-splatter canvases came to be because Pollack used oil paint wrong?

    2. The tool always informs the work, you can’t separate them.

    Oil paintings look like oil paintings. Photographs look like photographs. Cave paintings look like cave paintings. Processing was developed as a teaching tool and computational sketch-pad. How limiting are those charcoal sketch-pads that art students carry around? Do they basically pre-determine what the work will look like? Yep. The limitations are why teachers use them. Should those students be taught using a different medium? Maybe. Whatever gets them exited and interested is probably the best. For that reason alone Processing is a fantastically successful teaching tool. Should those students move beyond charcoal? Sure. But they won’t if they’re not exited and inspired.

    3. Processing does help bridge the gap between traditional artists and computational media.

    I used to make a living drawing pictures. Then I became a “designer”. Then I got into Flash and Actionscript (because I hated the messiness of html). Then I discovered processing. All of the sudden, I found myself writing “printmaking software”. Next thing I new I was living on the other side of the country, taking out giant student loans, and enrolling in BOTH of Dan Shiffman’s classes. I’m not saying that this is all because of Processing, but I don’t know… Would I have decided against SVA and gone with ITP if I hadn’t already wet my appetite on the seemingly limitless possibilities of computational media? Whatever. The point is that I’m now learning OOP principles. TOXI already understood them.

    I don’t spend much time paying attention to the work that the “Processing Community” is creating. So I’m basically indifferent to the “Processing Aesthetic”. If I see work that interests me, I look at it and it enriches my life. I don’t care if the artist knew how to stretch his canvas correctly or organized her code using a time-honored design pattern.

  • Jeungah Kim

    I was an animator who never thought a computer code could be considered a work of art. However after I learned Processing, I changed a lot. Because even though I had no ideas about code before, it helped to me to get me a sense of computational art. Also, because there were many accessible sources, I could easily get more familiar with it and see beauty in it got interesting to computational art. Now I am more curious about computational art, so I would like to study it more deeply. ¡®Processing¡¯ was helpful to learn Program.

  • Leif Krinkle

    On first read I felt TOXI’s rant to be both arrogant and self-absorbed.
    To think that we are in a state of crisis because anyone who wants an L-system or webcam tracking integrated into their new media project can get is as easily as downloading Processing is a bit overblown. I do not agree that this is some how diluting the art-scene by providing these tools to people who may not have the computer science/ mathematics background of the people who originally discovered/developed them. I agree with Ben Fry’s retort that Processing’s intent was exactly opposite: “making easy things easy, like easy things should be, then some of the low hanging fruit gets cleared out and people can be more critical about what it takes to actually make things.”
    TOXI’s follow-up response that “my [TOXI’s] concept of an artist is strangely incompatible with that of most others, and my remarks were cause by this,” still didn’t sit well with me. As if art is only composed of tight code and well implemented object oriented practices. Ideas expand in different directions, at different speeds and in different ways. By creating a platform that both “art-minded folks” and “tech-minded folks” can cross-pollinate the potential is limitless. Though some results may not always contain the most beautiful code, you cannot discredit the thought process and the further growth that it promotes. For this I support the “easy access” of processing. On the other hand, as TOXI further explained himself in the ensuing discussion, I realize that there are limitations of Processing that should be addressed as the beta versioning continues; making Processing’s functionally more accessible than just extending PApplet as well as promoting a more object oriented practices. But, as TOXI worry’s about the “emerging ego issues amongst the [Processing] user group,” I will continue exploring that ideas that seem beyond me so that one day my theoretical understanding and my practical coding may be half that of TOXI’s, sans the attitude.

  • http://www.zachlaytonindustries.com zach layton

    I agree with Reas and Fry when they contend that processing was meant primarliy as a educational tool and an opportunity for those without a strong backgorund in java or c. I never did any programming outside of max/msp before looking at processing. I can understand that there is a great deal of copying and pasting, but that is part of the process of learning. For those who feel they need to learn more, they will explore the deeper implications of working with code to produce art. Honestly, this situation is not as dire as toxi makes it out to be. Many people are being exposed to a radically new way of conceptualizing their approaches towards creative work through exposure to computational media, which they might have been turned away from through the normally steep learning curve otherwise. So what is the big deal? I think it’s a good thing in the long run. Fundamentally, good art does not need to be about a mastery of the tools used. Many “outsider artists” have contributed enormously to our aesthetic imagination.

  • http://corybantic.us/blog/?p=24 Cory

    I only blogged a response to this an hour ago, but I’m starting to change my mind a little.

    I started learning programming with Java, so I can really appreciate the simplicity of Processing in comparison. Being able to draw a circle with, like 5 lines of code, is impressive. Relaxing the conventional programming constraints does a lot for freeing up the creative spirit.

    As far as learning programming concepts in Processing? Hmm. The concept of object orientation is a lot easier to grasp when you can see the objects bouncing around your screen, but I’m not so sure that Processing is the ideal environment in which to really learn OO programming. Due to the simplicity of procedural programming in Processing, it’s alluring to take the least-resistance path. In pure Java there’s so much overhead to do anything that you really see the value of building reusable structures so that you don’t have to repeat yourself.

    Any large-scale project, though, gets out of hand pretty quickly if you don’t take advantage of good design principles. In theory, this should mean that Processing programmers will ramp up their code to take advantage of more effective programming techniques as they tackle more ambitious projects. But maybe it’s the case instead that the initial ease of development in Processing is a deterrent to anyone who tries to go further, so they don’t.

  • http://www.wretch.cc/blog/chiahac chia hao

    I am a designer and for me the most important thing in art is that I can have fun without caring about whether my client (and others)like it or not. I couldn’t even really draw well, so I will use whatever tool I can get to make an art work.

    I have learned java, but never make it further when I learned GUI is a disaster for me. I got frustrated and gave up. Processing is the second programming language I know, and I like it. I had lots of fun without worrying about my sucking programming skill, and I know one day I will be a good programmer as long as I continue to use it.

  • Britta Riley

    I think there is some validity to an established artist expressing dismay that the technology he is working with has progressed so far that amateurs can accomplish something approximating his work easily. In a few years, he probably will no longer enjoy the celebrity he has in these circles now- unless he keeps learning and keeps pace with newbies who will be taking it to the next level.

    But this is not an uncommon story. We see it over and over again in every generation and every art movement.
    That’s why we call them movements- because everybody starts to jump on a given bandwagon because it is the new, and therefore, hip thing.

    Originality is a funny thing. I’m not sure whether it exists or not. You always see paralells in the evolution of ideas between different the different arts, philosophy, and now technology emerge around the same time. This suggests that maybe there is no such thing as original thought by an individual. We all influence one another as we look into the nature of the world around us and create representations of it for one another.

    Cubism was fathered by Montparnasse, not by Picasso or Duchamp or any other individual. As a matter of fact, Picasso’s friends claim that the other artists in Montparnasse at the time hid their paintings from him when they went to the cafes. It was well known that Picasso could copy your style and do a much better job of it than you could yourself. But the movement itself would not likely have evolved in isolation. It took a community, a community of people who were seeing moving pictures and strobe photgraphy techniques for the first time and discussing its influence on the way humans see.

    Toxi works in a free, open source environment, potentially even more rich with dialogue than Montparnasse because of the communication tools available to him. No doubt his predecessors hold the same kind of grudge against him. It is the dissonance engendered by the ego in an emerging age of open global communication and we will all whine about it soon enough if we don’t now.

    The quest for immortality through art has always been relatively futile. At least one’s fame can be drawn out a little longer by cultivating a genuine curiosity in the work of and a continuing dialog those who come after him.

  • Pollie Barden

    I read the postings and comments regarding Toxi’s rant. I have been reluctant to post because I am so new to processing that I was not sure how to respond. Having worked with developers, I have an appreciation for those who can find the more efficient way to program a task, and I constantly second guess myself because I know that whatever I am writing there is an easier way out there. I took heart in Aaron’s Steed’s comment:

    I would like to defend my right to be stupid (and even sloppy). Without it I would be bereft artistic curiosity and more importantly, humility.

    I gave me freedom to loosen up on myself.

    As far as Toxi’s concern with processing user’s co-opting his work and making minor changes to pass off as their own, the course of natural selection will take care of that. Just like when I can along in Design School and the computer was new with graphical applications, there was all this concern that our jobs would be lost to admin assistants and hacks. For a while it was true that anyone who could turn on a computer and use a filter could present himself or herself as a “graphic designer”. Then when the market was saturated with the same schlock, the hacks began to lose their jobs (especially after internet bubble burst).

    The same with processing, hacks like me will steal the existing stuff and mess around with it to learn. I hope to be able to get beyond being a total hack someday. But those with the know-how and the talent will always be ahead of us and setting new trends and bars for the rest of us to cross.

    So I go back to my hacking for the mid-term project.