I’m slightly obsessed with the nature of code.

I’ve been coding since I first got my hands on an Apple ][e as a child. I’m also a visual thinker– I’ve been drawing since I could first pick up a pencil.

I’ve spent most of my life hearing the conventional wisdom that these two aspects of myself are diametrically opposed. At Stanford, I had to choose between arts & humanities or science — I chose to major in Computer Science, but continued to design posters, t-shirts and flyers for campus events.

However, when I took a summer job as a programmer — I found I couldn’t bear to stare at lines of code for 8 hours each day, so I used my evenings to learn about this new thing called the World Wide Web.

In the early days of the web, I found a nice balance of both design and technical challenges. These were the days of ‘webmasters’ — where it was assumed that most people building web pages would be responsible for the design and code of websites. I wrote a chat room in Perl, I did the design in HTML tables — I was a happy camper.

When the industry got bigger, I had a decision to make. I joined Studio Archetype as a ‘Technology Consultant’ — a hybrid technologist role in a company where everyone had a certain level of design literacy. However when we fully merged with Sapient and I moved to London in 1999, roles were reconciled and I became a Senior Information Architect.

From that point onwards, I’ve marked my professional career on the design side of the fence– specifically in the information design region of the consulting Venn diagram.

But at night, I’d go home and, in a darkened room, indulge in my dirty coding habit.

Fast forward to 2014, and I think the industry has come full-circle again. Now, I’m a Creative Director who designs, prototypes and builds apps and games for learning– and it’s not uncommon for me to have both Adobe Illustrator and Sublime Text open on my machine.

The point of this personal history lesson is to say– I’m passionate about clear visual communication and information design, and I’m equally passionate about making things with code.

And therein lies the dilemma–

The User Experience of Code is horrible

I know I run the risk of inciting the wrath of unix command-line neckbeardy zealots– but it’s true. Writing line after line of code is not an ideal experience. Certainly not for visual thinkers like myself, but I would argue that many bugs and errors are the result of an information design and usability problem due to the nature of code itself.

If you’ve ever spent more than 30 minutes to find a misplaced comma or semi-colon, I rest my case.

( This is not happiness. )

The Primordial Soup of Visual Code

We’re at the primordial soup phase of visual coding. A few signs of life have appeared with earnest attempts at flow-based programming and innovative development environments such as Chris Granger’s Light Table.

However, I think we can push this concept further. Given the processing power available on the desktop, I think we can shed the vestigial remnants of the Unix workstation and find the means to create a wholly new, visual language for coding.

As I’ve been designing a lot of mobile applications lately, I tend to wonder if the mobile-first approach to design couldn’t somehow be applied to creating a mobile-based programming environment (IDE).

Below are a few concepts I’ve started. Don’t expect them to stand up to scrutiny– this is very much an initial work-in-progress, and the first steps on a very long path on which I hope like-minded people will join me.