Coding is often seen as computational, mathematical and, sometimes, boring. But it has a creative side.
Processing, a programming language created at the Massachusetts's Institute of Technology Media Lab in 2001, was originally developed to teach programming in a more visual context. It's since grown into a tool for creative-minded programmers to use when developing and designing. It has become an exciting (and attainable) way to create rich, visual and interactive art.
Processing can build geometric backdrops in music videos, like in Phantogram's 2014 "Fall in Love," and full libraries for creating graphics and interactives. Unlike most programming languages, which rely on rigid syntax, complicated commands and proper organization that can take years to master, Processing gives users the ability to create visual drawings as soon as they start coding.
The directions for learning Processing are all written in a way that people who've never coded before can still understand, and there are simple examples to guide beginners through the process, so users can create their own projects from day one.
A more creative language available on PCs can open up new disciplines for PC-native users, taking graphic design, animation and other more artistic disciplines to a whole new level.
Processing's flexibility makes it more appealing to students just starting to code, and computer science programs across the country are combining art and programming to meet this creative coding niche need. Ira Greenberg, author of Processing: Creative Coding and Computational Art, runs the Center of Creative Computation at Texas's Southern Methodist University. The center combines coursework from the schools of fine arts and engineering.
"My day-to-day work probably looks a lot closer now to computer science than it does to studio art, even though everything I'm doing still is towards the creative application of things," Greenberg told Mic.
His students are combining computation with the composition of music and general languages with geology. Greenberg, however, isn't a formally educated computer scientist. He has a Master of Fine Arts in visual art, which he received from the University of Pennsylvania in 1992. Greenberg initially sought a career in traditional painting but ended up programming as a way to pay the bills.
"Most of my life I just had this organic development where I just let the work and my passion direct me," he said. "As I got more involved in the computing, I started getting more fascinated with what was happening under the hood."
Mid-1990s desktop publishing led Greenberg to 3-D modeling and animation, and then programming in Adobe Flash. Soon enough, he was experimenting with "pure code" mathematics and algorithms.
"That became for me the ultimate creative power, like paint on steroids," he said.
Worcester Polytechnic Institute's Lane Harrison told Mic that interdisciplinary academic programs like SMU's are gaining prominence, both for their real-world usefulness and for their effectiveness in combining creativity and coding. Harrison teaches students who are pursuing degrees in computer science but also those studying computational biology, data science and interactive media and game development. For those students, Processing breaks down the barrier to entry for coding.
"Before Processing, to do anything graphics-wise with a computer, you had to learn things that are very difficult to learn," Harrison said. "Then Processing comes along ... and you can make anything that you want out of it."
In more technical disciplines that heavily use PCs, like data science, it can be hard to find a way to incorporate creativity. The ability to use Processing on a PC in combination with more analytical or technical programming tasks can be helpful.
In its most basic terms, Processing serves as a simplifying intermediary between users and the more complicated graphics-programming tool Java, allowing them to focus more on what they want to see or hear than on what they have to do to get there.
This means, Greenberg said, that what students are doing "on day one in the class has much more personal relevance than if they were just doing some abstract [assignment]."
Some programming languages can be harder to learn if you've never taken a programming class before. C, one of the original languages created in 1972 on a PC, is used in almost all Microsoft Windows operating systems and software. While extremely useful, C is one of the more complex languages, mainly used for operating systems and application software, so it can be harder to learn first. Processing can help ease students into learning more complex languages down the line.
"Taking it broadly, you could see Processing as a gateway into learning programming proper," Harrison said.
The discipline has come a long way in recent years. Greenberg believes the next step will be the invention of new programming languages that could be even easier to use as they approach natural human communication. Ideally, he said, the current period of innovation is more than a bubble and the creative coding revolution will continue and give rise to projects we couldn't even dream up today.
"I challenge you to find one area where you can't add computers and make it better," Harrison said.