good science is hard.
Communicating science is even harder because it requires a larger doses of creativity.
I learned during my 5 years as a PhD student that art visuals and stories are excellent ways to communicate scientific ideas and results.
But using art as a form of expression is not easy, specially when dealing with complex technical content.
Nevertheless, it is worth the effort.
This is something I experienced at the end of my PhD journey.
Then, I was lucky enough to be surrounded by professional software artists who already mastered this skill.
Together, we created a comic to make the core ideas of my PhD thesis more accessible and engaging to the non-tech audience.1
In this article, I share the comic pages, and the planning behind them.
If you are a PhD student interested in the use of comics (or other forms of art) for communicating your research, then this article is for you.
During my PhD at KTH, I had the opportunity to collaborate with reth|read, a visionary collective of creators using software art to communicate software engineering research. I collaborated in the un|fold project, an installation for the Nobel Week Lights 2022. Along the time, I meet many talented and creative software artists, and even shared office space with some of them.
By being exposed to they work, I learned that art is a powerful tool for making science resonate with hearts and minds. One day, I was talking with Maria Kling, and she suggested me to create a comic to explain my PhD thesis in a fun and engaging way. We had a few meetings where I explained the content of my PhD thesis. Explaining software concepts to software artists is easy, as many of them are great coders.
The picture above shows the output of the first meeting. First, I illustrated the different facets of the global problem: “Debloating Java Applications.” This is illustrated in the top left corner of the whiteboard. Then, I divided the whiteboard into three sections, one for each of my PhD contributions. The goal was to create a comic to show the usefulness of these software tools: DepClean, DepTrim, and JDBL.
The full comic in PDF form is available here. More details as follows.
The core idea of my first tool, DepClean, is to remove unused dependencies (a.k.a packages) from Java applications. In other words, it is about getting rid of the software bloat coming from third-party code. This involves the analysis and transformation of dependency trees in order to remove completely unused dependencies.
“Imagine your computer program has a big, messy tree with branches representing different parts that are called dependencies or packages. Some branches are helpful, while others are just in the way. DepClean’s job is to trim away those unnecessary branches, getting rid of the clutter coming from the unnecessary dependencies that are added over time.”
We wanted to illustrate this idea in a simple way. In the comic, the superhero of our story (me) uses DepClean to snip away the unneeded branches of dependencies from his program’s dependency tree, keeping it clean. The result is shown below.
I really like the aesthetics of this page. Note the three logos, one for each of the the tools, in the top right corner.2 Also note that the comic is mostly in white and black, except for the parts that use the colors in the logos. The source code in the background is a real code snippet from the DepClean’s GitHub repository. I also like the last scene of this page, which serves as a hook to get the reader excited to turn to the next page!
Second and Third Contributions
The next page of the comic is about my second and third PhD contributions, implemented in the tools JDBL and DepTrim. JDBL is an advanced tool for debloating Java applications based on client’s usage. JDBL relies on dynamic analysis and code coverage tools for detecting the unnecessary code parts.3 On the other hand, DepTrim relies on static analysis to remove unused code in partially used dependencies.4 Both JDBL and DepTrim are like supercharged versions of DepClean, they help keep programs neat and tidy but in slightly different ways. Now, let’s take a look at the second page of the comic.
Again, this page conveys the core ideas of my PhD thesis in a simple way. The first scene shows the superhero (me) using DepTrim to remove unused code from partially used dependencies. In the background of this scene, we can see a source code snippet of JDBL. The last scene features my supervisor and me celebrating the successful completion of my hero’s journey.
Software art is a powerful medium for communicating complex scientific concepts. I’m glad that I had the opportunity to collaborate with software artists dedicated full time to this endeavour. I believe that the field of Computer Science could benefit from digital creations showcasing the complexity behind the most simple computing operations.
At the end of my PhD journey, the research contributions and companion tools that I developed became more than code, experiments, and papers. They took on a life of their own thanks to the great work of the software artists who used their talents to turn it all into a comic. In the story, I’m a character in a grand tale using DepClean, DepTrim, and JDBL to enter a never-ending battle against code bloat in Java applications.
I plan to continue the exploration of the many ways of using software art for creation,and as a form of expression.
The next step is to learn about the right tools for the job.
It shouldn’t be too hard.
After all, I’ve just proven that given the right amount of time and effort:
even myself anyone can become a superhero!
I kept a consist design for the logos of all of my software tool during my PhD. It’s great to see that this approach proved to be useful later. ↩