Artists and Hackers

A Podcast On Art, Code and Community

0:00

0%

20:00

computer drawing
hand turning dial drawing

February 26st, 2021

Ep. 3 - Can a Programming Language be a Radical Community?

Summary

Transcript

p5.js is the name of a creative coding library and platform that aims to make coding inclusive and accessible for a wide range of people. We speak to the team that supports p5.js on how they make space for contributors within its nurturing, intentional community.

Tags:

Activism
Tools
Coding Languages

Today we’re talking with members of the community that contribute to p5.js, including its creator Lauren McCarthy, Processing Foundation Director Dorothy Santos, p5.js web editor Lead Designer Cassie Tarakajian and p5.js Project Lead Moira Turner.

People have been creating art with computers since at least the early 1960s. At that time computers were massive in size and price, owned primarily by corporations, governments and universities. So most early computer art was made by the engineers, scientists and others with access to these labs. With a few exceptions, art was not the primary interest of these spaces nor were early learners a main focus.

But over the years, there have been several programming languages designed to aid learning programming in education. One early example is LOGO.

Created In 1967, Wally Feurzig, Seymour Papert and Cynthia Solomon created LOGO as a programming language for children. Their radical idea was that children could program and that it could dramatically alter their educational experience. For the first time, LOGO allowed children as well as adults a simple language to program. LOGO languages feature a robot or onscreen turtle controlled with simple motion commands. The creators were inspired by swiss psychologist Jean Piaget, whose constructionist theory of learning placed students’ own making and experimentation at the center of their education. And it held that learners learn best when they can construct mental models to understand the world around them and when learning feels like play.

The first versions of LOGO were developed in Cambridge, Massachussets, and development and use soon spread to universities including MIT. And that takes us to more recent history.

Since that time there have been only a small handful of languages with a focus on being accessible to new learners, and even a smaller number than that with immediate visual output. In the past twenty years, the language that stood out with this focus is Processing.

Processing is a language for electronic arts, new media art, and visual design. Created in 2001 by Ben Fry and Casey Reas, at the time grad students at MIT’s Media Lab in John Maeda’s lab called Aesthetics + Computation Group. It grows out of Maeda’s previous work building a visual language called Design by Numbers. Processing is built on top of the Java language and is used today by interactive artists, students, designers, researchers, and hobbyists. It’s also an incredible tool to learn to program. But Processing was designed in an era when Java programs worked on the the internet. You could easily export your work and put it up on a website so others could try out your art and interactive projects. Unfortunately, Java no longer works inside web browsers. And so for a long time Processing was useful primarily on desktop computers. And that was the case until p5.js came along.

p5.js is a new implementation of the ideas of Processing in Javascript. It’s a flexible tool that feels like a combination of writing code and using scissors and glue. It’s used for everything from making experimental interactive artwork, to videogames, to interactive music, and you can even use it with machine learning.

One of the many things that makes p5.js so unique is its focus on intentional community. From its statement on community values, to its friendly error messages, to its welcoming documentation, its community stewards and invitation to new contributors, p5.js stands out as a model for a thriving, growing and supportive space.

In this episode we speak to members of the community that contribute to p5.js on the work they do to nurture this community.


Guests

Lauren Lee McCarthy (she/they) is an artist examining social relationships in the midst of surveillance, automation, and algorithmic living. Lauren is also the creator of p5.js, an open-source art and education platform that prioritizes access and diversity in learning to code, with over 1.5 million users.

Dorothy R. Santos (she/they) is a Filipina American writer, artist, and educator whose academic and research interests include feminist media histories, critical medical anthropology, technology, race, and ethics. She is a co-founder of REFRESH, a politically-engaged art and curatorial collective and serves as the Executive Director for the Processing Foundation.

Moira Turner (p5.js Lead) is a graduate from the University of Southern California, and has worked at the intersections of educational justice, computer science, and racial equity for the past three years. An anthropology major, Moira taught herself to code immediately after graduation and became a Computer Science fellow at 9 Dots - a nonprofit dedicated to teaching marginalized communities the fundamentals of coding. Consequently, Moira has taught over 800 students and worked at over 12 schools in the Los Angeles area using the p5 curriculum.

Cassie Tarakajian (p5.js Online Editor Lead)(they/them) is an Armenian-American educator, technologist, musician, and artist based in Brooklyn, NY. After receiving a Bachelor’s degree in electrical engineering from Johns Hopkins University, they focused their work on creative tools, working on the software Max/MSP at Cycling ‘74 and joining Processing Foundation as the p5.js Editor lead in 2016.

Credits

Our audio production is by Max Ludlow. Episode coordination and web design by Caleb Stone. This episode was supported by Purchase College.

Our music in this episode is: Sorry by Comfort Fit, Purplebutter by Breakmaster Cylinder, Transition by Acreil, Acme Coke by Roger Plexico, WELP by Glass Boy and note manual by The Books.

This episode is licensed under CC BY-NC-ND 4.0.

Can a Programming Language be a Radical Community?

Lee Tusman:
You’re listening to Artists and Hackers, the podcast dedicated to the communities building and using new digital tools of creation. We talk to programmers, artists, poets, musicians, botmakers, students and designers. We’re looking at the current palette of art making tools online, and the history of technology and the internet. We’re interested in where we’ve been, and speculative ideas on the future. This episode of artists and hackers is supported by Purchase College. I’m your host Lee Tusman. Today, we’re talking to members of the community building p5.js a JavaScript library for creative coding with a focus on making programming accessible and inclusive. Quick disclosure, I’ve been an advisor to the Processing Foundation and I co organized Processing Community Day New York.

People have been creating art with computers since at least the early 1960s. At that time, computers were massive in size and price and owned primarily by corporations, governments and universities. So most early computer art was made by the engineers, scientists and others with access to these labs. With a few exceptions, art was not the primary interest of these spaces, nor were early learners a main focus. But over the years, there have been several programming languages designed to aid learning, programming and education. One of the earliest examples is LOGO, created in 1967 Wally Feurzeig, Seymour Papert, and Cynthia Solomon created LOGO as a programming language for children. Their radical idea was that children could program and then it could dramatically alter their educational experience. For the first time LOGO allowed children as well as adults a simple language to program. This LOGO language feature a robot or on screen turtle controlled with simple motion commands. The creators were inspired by Swiss psychologist John Piaget, whose constructionist theory of learning place students own making and experimentation at the center of their education. And it held that learners learn best when they can construct mental models to understand the world around them. And when learning feels like play. The first versions of LOGO were developed in Cambridge, Massachusetts, and development and use soon spread to universities, including MIT. And that takes us to more recent history. Since that time, there have been only a small handful of languages with a focus on being accessible to new learners, an even smaller number of that oriented toward immediate visual output. In the past 20 years, the language that stood out with this focus is Processing. Processing is a language and programming environment for the creation of electronic arts, new media art and visual design. It was created in 2001 by Ben Fry, and Casey Reas, at the time grad students at MIT Media Lab working with John Maeda in his lab called Aesthetics and Computation group. In fact, Processing grows out of many years of previous work building a visual language called Design by Numbers. Today, Processing is used by interactive artists, students, designers, researchers, and hobbyists. And it’s also an incredible tool to learn to program. In fact, that’s how I learned to code years ago, and we teach it in my courses at Purchase College. p5.js is a new implementation of the ideas of Processing in JavaScript. Now I actually personally use p5.js to make my work. I think of it as a flexible tool that feels for me like a combination of writing code, and using scissors and glue. It’s used for everything from making experimental interactive artwork to video games, to interactive music. You can even use it with machine learning. Today, we’re speaking with members of the community that contribute to p5.js, including its founder Lauren McCarthy, Processing Foundation Director Dorothy Santos, p5.js web editor lead designer Cassie Tarakajian and p five JS Project Lead Moira Turner. Lauren spoke with me about how she created p5.js, which you’ll also hear sometimes abbreviated as p5.

Lauren McCarthy:
It’s sort of a re interpretation of an even older project called Processing, which began in 2001. And so Processing had similar goals of trying to open up coding and creative coding. But it was all Java based meaning that right now it doesn’t really run in the browser on the web. And so it around 2013 Casey Reas, one of the creators of processing along with Ben Fry approached me and said, you know, would you like to work on Processing in some way? And I mentioned that I was really interested and excited about that: the internet and web coding that I’ve been learning. And so they proposed that I sort of imagine like, what would it look like if we could get Processing running on the web again? Or what would it look like more specifically if Processing were invented today? And for me, it was, it really felt like an opportunity. Because before then I had been trying to get involved in open source coding, and it felt really difficult if you’re using a piece of software like someone made it, right. And with a lot of pieces of software, they’re made by companies, by corporations by, you know, commercial entities. And then there are others that are not. So p5.js is one of those. And it’s an open source tool, meaning that the code is freely available online, and people can kind of remix and use it as they want to. But the other thing that’s sort of unique about this project, or not entirely unique, but different than a lot of software that we interact with daily is that it’s made by a really large and distributed community of people all over the world. So what that means in practice is that people from, you know, all over the world are logging on finding ways to get involved in the project. Maybe that’s just as a user of the tool. But often they progress beyond that, or I should say, not progress, but you know, shift into another space where they’re actually contributing to the tool.

Lee Tusman:
When Lauren first started working with open source software, she felt like she was running into a lot of obstacles.

Lauren McCarthy:
I felt like there are a lot of barriers, both sort of implicit and explicit, like I would get onto some of these mailing lists or into these communities. And it really felt like a space where you, you know, a lot of men, a lot of white men. And it Not only that, but just this dynamic that you had to really like prove yourself before anyone would let you participate, or do anything meaningful within the project. And so as someone that’s kind of coming in as a minority, that felt even harder to kind of gain that credibility to participate. And so with this opportunity, it really felt like a chance for me to do that. Like, finally, I had kind of gotten an explicit invitation into the space. And so as I was starting to develop this idea, it really just began as a prototype, it wasn’t this idea to like, make a big community and make a big project, it was just framed as like three months of sort of experimental research or prototyping. But from there, after making the first kind of Hello World program that was running on the web, it just kept growing.

Lee Tusman:
Hello World is the name of the first piece of code you write, when you’re learning a new programming language, it’s really the simplest thing that you can program in a language, usually just a few lines of code. And it’s designed to get your feet wet in that language. So historically, it’s pretty boring, you learn a few words, and all you can do is open a window and maybe dump out the text hello world on the screen, not very inspiring. But Processing and now p5.js offer a fundamentally more compelling introduction to programming. Your first program will draw some shapes and colors and lines on a screen. So the first thing you might even code is like an interactive, colorful face in a web browser, where you’re moving your mouse around, and the eyes blink, or the background color changes or your tongue sticks out.

Lauren McCarthy: We started teaching with it, and then the students got involved in helping to make it in the community and the project kept growing. And I think, as that kind of turning moment was happening, I realized like something that was really important to me, was that idea of like an invitation in and access was really key to the project. And so when I went back to that question of what would it look like if Processing were created today? I think it means you know, I was like, oh, at first I thought it just meant it would be built with JavaScript and HTML. And then I realized, no, it’s more than that. It’s taking that initial ideal of access and opening up a space and reinterpreting it in 2013. And for us, that meant holding these values of diversity, inclusion and access as really like core values, instead of you know, prioritizing just technical decisions. What if we make every design and technical decision and community decision flow out of those values? What What would that look like? So that was sort of the start of it.

Lee Tusman:
And what started as an experiment soon grew a large community of people really interested and invested in the project. p5.js is not just a programming language, as Lauren makes clear. It’s also a community and an extended collection of additional code libraries, tutorials and software. An important component of that is the web editor, a free online place for writing code as well as for seeing it run in the browser. Cassie Tarakajian is the lead developer.

Cassie Tarakajian:
The idea is that you don’t need to, like download or configure anything to get started coding, you can just open your browser and go to this website and write code and write specifically p5.js. I originally got involved from Lauren reaching out to me and asking if I wanted to start this project. And that was really exciting for me, because my background is in engineering. And my experience had been very much like the space where I had to prove myself and I felt like I had to work really hard in order to just be able to call myself an engineer. And then, you know, by the time I felt like, I got to that place, I was like, I don’t even like, I don’t even know how I feel about this space. And I wanted to be part of a part of a community that felt like it aligned with my ideals. So when I, when I discovered tools like Processing and p5 I was like, oh, like this, this really fits with the things that I’m interested in. And like things that I like, really care about, aligns with my values.

Lee Tusman:
This might sound a little basic, but I, but I am kind of curious if you can explain how does a programming language or library grow and work in a community? And I’m asking this with the background in mind that to some people, they might think, okay, there’s a programming language, it exists, someone made it, you write your code in it done. But there’s, but the reality is, obviously, that a language evolves, and it gets fixed, and it adapts, and there’s new needs that are derived, and then things are changing so I’m curious what that process is like, and how it works in the p5.js community.

Lauren McCarthy:
Nobody knows.

Dorothy Santos:
I mean, I have some thoughts.

Lauren McCarthy:
I mean, yeah, go for it!

Dorothy Santos:
Well Lee, when you ask that question, I know, I’m gonna make this connect. I’m known to be a professor where I circle back around to everything. But my initial reaction was when I was growing up my mom told me she created this different language with her cousin, because they couldn’t talk about the boys they liked and the crushes they had. And so they actually created a written language. And I, I asked her, do you still have it? And she said, Oh, no, it’s just because we needed it for that one time in our lives. And I didn’t think it was anything. And when I think of, when I think of that story, I tie it back to p5 because I always think of, you know, when I’ve had so many conversations with Lauren about this, but you know, when you fail to see something in the world, and you’re like, you know what I can make that thing, I can make that thing, in order for me to do the thing that I want to maybe see other people do, and maybe they’ll make it better. And oftentimes, that’s what languages you start off with because you just want to communicate something, whether it’s to another person or to a group, and then whether or not it kind of takes off, so to speak, is then kind of based on how it’s catalyzed. So Oh, I can you know, someone wants to work on this aspect of p5 you know, a different library, or, you know, whether it’s a sound library, or whether it’s, you know, working specifically with visuals, I think the language has kind of expanded the way it has and proliferated the way it has. Because people get excited about language, you know, something that starts off so insular can really grow when you get people excited about it, but more so that other people don’t mind sitting with you, and learning how you might want to use it, and how you might want to expand on it. So for me, I feel that that’s what p5.js has been about since the beginning, but so much more. And the last thing I’ll say is the world I guess, or the community that Lauren originally may not have envisioned, I feel like it’s come to be a space and a place digitally and physically and in real life to be one that’s extremely nurturing. And you know, it’s really hard to kind of, in this very bell hooks kind of way live in this kind of like love ethic without thinking about it in such a way that because people don’t associate that softness to programming languages. And I think that the p5.js community and the language itself actually shows that that type of ethic is actually possible.

Lee Tusman:
So you started talking about this a bit I’m curious if you could say, you know, this goes for Lauren, or any of you if you could say a little bit about what are some of the choices that have been made as a community to foster ideas of solidarity, inclusion, diversity, equity, social justice, maybe some of these, you know, big, important things, what are some of the choices that have been made to help support that?

Cassie Tarakajian:
Yeah, I mean, I think the the original, like the foundation of the editor was like, how can we make p5 more accessible in I think, in one of the more like, broader senses where having to download a JavaScript library and like, download a text editor is is hard to do. And it feels like the just these, like small but also large steps to write code can be really big.

Lee Tusman:
Can you also say Cassie a little bit about the technical infrastructure behind that?

Cassie Tarakajian:
Yeah, absolutely. Do you mean, like my own experience writing code, or sort of like the different tools that support them?

Lee Tusman:
I guess I’m curious. So I know you’re lead developing the web editor. And there’s other people that contribute and point out bugs and even maybe help contribute with code, where does that kind of dialog happen? And how does that happen?

Cassie Tarakajian:
That all for the most part happens on GitHub.

Lee Tusman:
GitHub is a website for collaborating on code. A lot of times these spaces for programming can feel hierarchical, and made up of a homogenous monoculture. p5.js is trying to change that.

Cassie Tarakajian:
I try along with I think many other people in this virtual room try to make that an experience that is really open and nurturing. A lot of experiences that others will have contributing to other open source projects is that it will be very frustrating. And it will be an experience that feels like gatekeeping, like, you’ll open a pull request for a project and they’ll close it immediately because you didn’t like format something right, and we’ll give you an explanation, or you’ll comment on a GitHub issue and your voice won’t be heard. And I think a lot of what all of us do is like, try to make people feel heard and just be nice on this platform, which to me, is not that revolutionary, but continues to shock me how how different that is, that is from other projects. I really tried to choose.. I try to choose stuff that feels as accessible as possible, but also can support our technical needs. And that’s a balance. I’m always working on improving that.

Lee Tusman:
Hearing how much everyone spoke about creating a healthy community, I was also really curious to hear how they deal with conflict.

Lauren McCarthy: Dorothy was talking about love. And I think it was a way of describing it, it sounds very, almost utopic. And there, it is such an amazing community. But I think I would say I wanted to talk about conflict. Because I think that’s an important part of the project, too, is these disagreements, or these differences of opinions that we work through. And, you know, it’s everything from just like, trying to sort out, you know, which way the code should be written, or what features should be added. But I think what’s even more powerful when you’re asking about, like, how to get involved. It’s really important and necessary and useful for people that can just give feedback and say, like, this isn’t working for me, or here’s the problem, you know, when we’re embarking on these accessibility projects. It’s so necessary and helpful to be working with disabled people that are like, yeah, like, I think it started because someone came to us was like, this doesn’t work at all, you know? And so how do we start to improve that, and along the way, like, we’re constantly kind of messing it up or making assumptions or getting things wrong, and then iterating and learning and testing. Or I remember a time when someone came to us after an event and said, you know, your mission talks about inclusion and diversity but I came to this event and I didn’t really feel welcome or I didn’t see people that look like me. And I think that kind of feedback was so useful, and I hope that we can like continue to cultivate a space where people feel able to do that, because then we can really like sit with that and think about how do we move forward? Because a community statement is our aspiration. Right? It’s not like an accomplishment statement. It’s something that we’re continuously learning and evolving and trying to show up better for.

Cassie Tarakajian:
Yeah, absolutely. I’m like, I’m like really thinking about this point that Lauren made at the beginning about it feeling like a utopia. But that being a very different, I think that I’m just putting this in, like in a larger context, just coming from my experience working in tech. Where and I’ll get to the Web editor, but sort of the one way you can look at a utopia is that it’s a kind of space where it’s serving one type of person where everyone becomes one type of person that is served. And that’s very much the approach of Silicon Valley, right? Where you’re making like, one type of sneaker that is perfect for everyone. And like one type of beverage that is perfect for everyone. And one thing that really inspires me about this community is is sort of like, the the opposite is true, where the idea is not like, how can we make one perfect programming library for one type of person, but the opposite? Like, how can we like…. Who are we not reaching? And how do we include them or be open to feedback?

Dorothy Santos:
I think the reason why I brought up the whole, like, love ethic, and you know, from the from this very much through the lens of bell hooks is because love is a verb. We do the work for the long haul. You know, I think, in a lot of ways people ask how is this community so awesome, it’s because it’s a lot of hard work. You don’t see all the behind the scenes, so to speak, work, there’s a lot of labor happening that makes all of this possible. And I think when you become a part of the p5.js community, you soon realize that, you know, that it is a place where you’re able to have disagreements, say what is uncomfortable, because the space has been created to be that way. And I, I feel that’s something important to kind of mention, you know, this is not, I almost feel sometimes especially in in the kind of cultural historical moment we’re in now, I almost get this feeling that our work is just beginning.

Lauren McCarthy:
We really believe that the person that’s sort of new to the space has a lot to contribute. And I think that’s really different than a lot of open source projects. And one reason I think that’s so important is because we are living with technology that historically has been built by a very small, not diverse, kind of archetype of what we imagined as a programmer. And that directly flows forward to how the technology becomes shaped and how it gets used. And in our case, the kinds of outputs and things that you can create with it. And so it feels so important then to welcome new people into the space and to try to really intentionally incorporate a diversity of of voices and perspectives and skills into this tool and to as Cassie saying, make it a space where someone comes in and feels welcome and feels empowered to take on whatever role they want to within that project.

Lee Tusman:
Now that p5 is several years old, and while Lauren’s founded the language, she’s passing on leadership on a rotating basis, this year’s p5 lead is Moira Turner.

Moira Turner:
I graduated from USC with a degree in anthropology and African American Studies. And I ended up starting to work at a nonprofit that was teaching computer science to elementary and middle school students. And the whole infrastructure strategy was to make sustainable computer science education through K through sixth grade and by empowering teachers to teach it. So at first when I came in, I was like, Okay, I’m a teacher. I can do that. I’ve had experience teaching before as in undergrad and then like now I feel like I’m a teacher, but I never saw myself as a maker or producer or a coder although I encouraged my students all the time. We like to be empowered and if you’re a coder you can you can affect change in your digitally mediated world. But it wasn’t until I noticed my students working with p5.js and like debugging and like their processing to reflect on my own my own reflections on failure…I wouldn’t say failure but productive constructive debugging. And that’s how I can see myself doing this as well.

Lee Tusman:
I think one of the things that has always stood out to me is the formulation of how p5.js is made up of a community of contributors. And Lauren you spoke to that a bit earlier. I’m wondering if you have any feedback or wisdom for folks that want to get involved with the community in any way? What’s a good starting point or entry point? Or how does one become become involved in the community.

Lauren McCarthy:
I mean I think the easiest or the place that most people start is just by using the tool, using p5.js and often that can actually take you really interesting places in terms of the people you’ve meet, either in person or online, just the kind of community that builds around just people using it and teaching with it. But I think from there, there’s so many kind of different ways to get involved. We have some, like, we have a community page on our website that outlines some of the different ways from teaching to making examples to work in documentation, or code, or just contributing other ways, a lot of people also come into the project really ambiently. And they might just contribute like, one typo fix, or one, you know, update to the documentation. Or even I think just like logging an issue on our GitHub and saying, like, here’s something I noticed, or here’s a question I had, or participating in the forum and helping other people learn how to use the tool. So those are all different ways to get involved in the project. And I guess the thing that I would say more generally, because maybe people want to get involved in open source and not specifically if people are interested in p5.js is just to go for it. I was really scared at the beginning, I didn’t know what I was doing. I didn’t feel like I had any kind of plan or idea really what even was being asked of me in this for, you know, that first invitation I had. But I’m so happy that I sort of took a chance and you know, just kind of rolled with the not knowing and just kept asking questions to try to figure out what to do next. And I hope that there can be more communities and more support around people doing that. So it doesn’t feel like you need to come to it already with a huge background or expertise so that you can really be learning while you’re making.

Lee Tusman:
I’m thinking about how programming languages are like spoken languages, and they evolve over time. And I’m curious to hear what the future of p5.js

Lauren McCarthy:
Actually, with our 1.0 release which happened in February, we sort of made a decision after that, at our most recent contributors conference, that since we’re at the 1.0 release, we will not add any new features that do not expand access in some way. And so this was sort of a it’s meant to be sort of a provocation or an invitation. So it’s not meant to be just shutting people down when they request features, but instead opening up the conversation about Oh, what’s that feature? And what does that open up for people and how does that expand access and and when we’re talking about access, it could mean for beginners it could mean for people of marginalized genders or people that speak different languages or people with disabilities like there’s a whole range of, you know, intersectional access needs there. But the point of that statement was to try to instigate more or less conversations as we’re intentionally adding new features to the software.

Lee Tusman:
You can find out more about p5.js at www.p5js.org. You’ve been listening to Artists and Hackers. This is your host Lee Tusman. Our episode was supported by Purchase College. Our show is produced by Max Ludlow. Coordination and web design by Caleb Stone.

The music featured in this episode is Sorry by Comfort Fit, Purple Butter by Brake Master Cylinder. Transition by Accrueil. Acme Coke by Roger Plexico and Welp by Glassboy. Our transition music is Note Manual by The Books.

You can find all of our episodes on our website, artistsandhackers.org. We’re on twitter at artistshacking, and on Instagram at artistsandhackers. Please let your friends know about our show. And if you want to get in touch you can write to us at hello@artistsandhackers.org. Thanks so much for listening.

hand