Q&A with Inkscape’s Lead Developer, Bryce Harrington

Inkscape's Bryce Harrington

Inkscape’s Bryce Harrington

We finally managed to catch up with Bryce Harrington, one of the original founders of Inkscape and the current Lead Developer. Bryce had been a bit under the weather, but he was game to doing the interview live over IRC.

We met up on the #inkscape channel on Freenode at 5 pm. Pacific Time (Bryce), which turned out to be 1 in the am Central European Time for me, Paul (groan!). What follows is a mostly full transcript, edited and formatted for clarity.

Bryce Harrington [Inkscape]: Morning.

Paul Brown [OCS Mag]: Morning! How are you? Do you feel better?

BH: I feel a lot better, thanks.

PB: Great! So… are you ready?

BH: Yep!

PB: Let’s dive right in then, and start talking about the origins of Inkscape. Inkscape has been around for over 10 years now.

BH: Pretty amazing.

PB: Yeah. Why did you decide to fork from Sodipodi?

BH: Sodipodi was a great little codebase, and a community had grown up around it. It was a bit buggy here and there, and crashed when you least expected it. But it had a nice workflow and it was by far and away the best tool for editing SVG.

PB: Yes, and you can still see bits of Sodipodi in Inkscape. Some of the docks are still very similar.

BH: Yep, and if you look internally we still carry some of the nomenclature and even some original code.

PB: Really? I would have imagined it would have all been refactored out by now.

Inkscape forked from Sodipodi in 2003.

Inkscape forked from Sodipodi in 2003.

BH: And Sodipodi was pieced together from even earlier projects. Indeed I understand the name ‘Sodipodi’ means something like a patchwork or mishmash, which I understood to mean it pulled code and ideas from a lot of sources.

Anyway, like many open source projects it was the mindchild of one developer and, again, like many open source projects, it was pretty centrally controlled. That is, to get changes in they had to be reviewed and accepted by the maintainer. Unfortunately the maintainer evidently had an active life outside open source, because months would go by with no review of contributions and there were the inevitable disagreements on both technicals and procedurals. So a group of developers decided to split.

PB: How was the fork received? I’m guessing the original creator of Sodipodi was not too happy.

BH: Right. Long story short, active community + inactive maintainer + strictness in commits is the formula for a fork. I think amicable forks are fairly rare. Certainly we weren’t an exception. Went about as well as it could I think.

PB: So I imagine that, as with every fledgling project, there was a time when you wondered if Inkscape would succeed against Sodipodi. What was the turning point? When did you realise Inkscape was a winner?

BH: Well, I think even from the start we all were quite certain it would succeed. Maybe it was the arrogance of novelty, but we were very confident that it would be a strong project. I think that some of that confidence and steady vision there in the early days helped us churn out those first several releases before people knew about us.

PB: Was there a moment when you thought to yourself “Yes, we’ve arrived”? Something like a positive review in a magazine, or the news that your software was being used for a major project?

BH: In the early days I was quite driven by statistics and clearly remember several key moments where I felt we’d hit critical points: Number of downloads compared with Sodipodi, number of mailing list messages, website traffic, mentions on Slashdot and other sites, and so on. With each release we could see the numbers step upwards.

Perhaps the most significant turning point was when we were first packaged for a Linux distro. That was huge for us.

PB: What was the distro? Do you remember? Debian maybe?

BH: I’d have to double check, but I believe Debian packaged us first, yes. In any case, shortly after, other distros picked us up too, and that’s definitely when I felt Inkscape was a going concern.

For the project as a whole, the port to Windows was another huge turning point for us in terms of userbase. But that’s a whole other story.

PB: Featurewise, what are in your opinion the most important milestones in the history of the development of Inkscape?

Museum of Inkscape About Screens

Museum of Inkscape About Screens

BH: Check out the “Museum of Inkscape’s About Screens“. Since we tended to try to showcase whatever the latest feature was in that release, it gives you the idea of when various capabilities came to be. I believe it was in version 0.39 that the radial gradient functionality got to a point where good artists could make really slick looking artwork that had a 3d appearance.

But for me, the most important milestone visually was when we started seeing photo-realistic cars and people being drawn. That really blew me away. Definitely way, way above my skillset.

PB: What about new features in 0.91? What’s the most interesting for the users do you think?

BH: to me the most interesting feature in 0.91 is the switch of the rendering engine to Cairo. That’s a hugely significant feature that took multiple releases to get in and required coordination with several other open source projects to get stabilized and performing well.

There was also much risk of regression in making a change like that, and I think the Inkscape team did a stellar job of managing that transition with so few problems.

PB: What will it take to bump the version number up to 1.x?

BH: We’re on the short-path to 1.x in fact! In the early days we were asked a lot about 1.0, and kind of arbitrarily I proposed “when we fully support SVG 1”. However, there’s a number of features in SVG that (while useful) are outside our current scope. So we recently decided to ditch that and make 1.0 a near term goal. Thus our jump from 0.48 to 0.91.

PB: Yes, that was kind of surprising.

BH: We’re making 1.0 a stability goal, which means we’ll continue making a 0.92 release, and whatever additional ones we need to assure ourselves it’s solid enough to label 1.0.

PB: How long do you think it will take?

BH: As to timing for 1.0, I hate to speculate, I’m always wrong. :-)

PB: Fair enough, but how do you decide what features to implement in Inkscape? Do you poll users in any way?

BH: Feature decisions are interesting in Inkscape.

PB: “Interesting” as in “complicated”?

"For me, the most important milestone visually was when we started seeing photo-realistic cars and people being drawn."

“For me, the most important milestone visually was when we started seeing photo-realistic cars and people being drawn.”

BH: When we established Inkscape, it was fresh off seeing so many good ideas from community members that never saw light of day. We established Inkscape to encourage contributors to bring fresh new ideas, by making commit rights straightforward and easy to get.

I think this was a hugely important procedural step for Inkscape, to be very inclusive of a wide range of different ideas, and tons of features, some powerful and necessary, others obscure and perhaps of mainly academic interest.

PB: Nowadays do users get a say in the process? Can users submit ideas anywhere, like to a wishlist?

BH: I came to observe something I’ve taken as a bit of a philosophy, to help explain the success we had: It’s hard for a user to communicate about a feature they need to a developer, and especially hard to communicate how it should work. There’s always going to be a mis-match between user expectation and developer interpretation.

But what we attracted were “multi-class” user/developers, who knew enough coding to implement the feature they had in mind, and artistic enough to know how to tweak it until it worked perfectly. Features like node editing especially have benefited from this.

So, this is a long way to say, the best features are ones that the users don’t just request but actively participate in implementing.

Aside from that, yes, we do accept wishlist feature requests to our bug tracker. Unfortunately that list has always been huge, so it’s kind of a lottery if new ideas will get much attention.

We also draw up a roadmap for long term planning. That is primarily for architectural and infrastructural changes, but some larger or heavily requested features can tend to pop up there. It’s high on my todo list to revise our roadmap for both the 1.0 run-up, and for post-1.0 work.

Again though, the best situation is when folks with ideas get directly involved in the project, and work closely with the other developers – especially when they dip their toes into development themselves.

PB: And do you study… er… the “competition”? You know, things like Illustrator? Is there anything in any other vector drawing application you would like to copy into Inkscape?

BH: As a project we don’t analyze proprietary software, no. We do have ideas contributed by users though, which often originate from their experiences with other tools. There are exceptions though, like having remappable shortcuts for Illustrator users

PB: Inkscape has this? I didn’t realise.

BH: You’ll also see that a lot of UI inspiration has been taken from Xara.

PB: So, patent litigation. Adobe has gone after competitors in the past, such as Macromedia. Any sword rattling from them or anybody else?

BH: I’m not sure if there’s anything we’d want to deliberately copy from other tools. Having better file-format compatibility would be nice of course.

PB: They went after Macromedia for having windows with tabs. Go figure. In any case, this is a risk. Does the threat ever influence what you put into Inkscape?

BH: Early on we thought that CMS couldn’t be implemented due to patents on Pantone, but we got straightened out on that. We wouldn’t knowingly implement something which was patented, but I can’t say whether that ever influenced us or is something we put much time thinking about.

Obviously there are the troll patents out there, and we’ve signed the OIN patent pledge as protection from that sort of thing, but being an open source project with not much money to speak of, we’re not a very juicy target anyway.

PB: But if users start moving away from the alternatives. Inkscape is really, really good now. A seriously usable tool. Which brings me to… How do you feel when you hear users asking Adobe to port their Creative Suite to Linux?

BH: The likelihood of Adobe porting to Linux bothers me way less than the reality to them of Inkscape having been ported to Windows and OSX.

PB: Talking of which: There are versions of Inkscape for Linux, Windows and Mac. Any plans for a mobile version, say, for Android? Or is this a bad idea?

BH: As a project we have no plans for an Android port. If there’s a strong use case though, and folks willing to maintain the port, well, anything’s possible I suppose. Maybe not if it’d need rewritten in Java 😉

The Inkscape UI is perhaps not well suited for small form factors anyway, so that also limits the range of devices it could be used on.

PB: Let’s get back to origins a sec. What attracted you to the project? Was it a technical challenge or was it an itch you needed scratching?

BH: It was an itch

PB: What happened? Did you need to design a Valentine’s card in a hurry and you were like “Damn!”?

BH: I actually come from a drafting background. Studied it through high school and college, and my first jobs were doing 3D cad for spacecraft designs. In my spare time I ran a D&D campaign and used some software called Campaign Cartographer to design my maps. Lots and lots of maps.

But one day I switched to Linux and found there was no chance CC would be ported to that platform, so all my maps became inaccessible to me.

PB: Free Software developer, D&D Dungeon Master… sounds about right.

BH: Yeah, I don’t fall far short of the stereotype 😉

I decided, rather than switch back to Windows, I’d start over, and pick a better (i.e. open) file format. I learned about SVG, searched around for a tool, tried several, and settled on Sodipodi. Unfortunately it lacked most of the features I needed in a fantasy map making tool

I should add that CC was built on 2D CAD roots so had a CAD-feel to it, which was always a bit clumsy to me for map making. So I liked how free form and fluid node editing was in Sodipodi. Even though it lacked so many features, I could see a huge amount of potential there.

So, I got involved, the D&D hobby turned into an Inkscape hobby, and here we are.

PB: What about now? Is there any overlap between, say, your day job and developing Inkscape?

BH: Not too much actually. Although I did specifically pick my current job to work on Cairo and graphics technologies, so it’s in the same ballpark

PB: Are there any sponsored developers? I mean, developers who get paid by their employees to work on Inscape?

BH: Yes, indeed. There is of course the Google Summer of Code project. Although we weren’t selected to participate this year due to a technicality, we’ve participated since it’s inception and plan to continue in the future. There have been many successful student projects originating from that as paid work.

There have also been a number of university projects, some as undergrads (unpaid) but also a few by graduate students and other university employees. I don’t know if they qualify as “sponsored”, but they certainly deserve credit for bringing in a number of very powerful ideas. The 2geom library in particular is worth noting as an outcome of university sponsorship.

We’ve also had some freelancer work that was 3rd party funded. My memory is fuzzy on details there, so I’ll have to hand wave a bit.

PB: But most development is carried out by volunteers, right?

BH: Right, the core of Inkscape and the vast majority of the changes are by volunteers

PB: How can somebody get started developing for Inkscape? What resources do you advise they use?

BH: For the technicals of how to get involved, in fact we have a page with all the links and tips. Often the question we hear from new contributors is “What should I work on?” But there are so many answers!

PB: How about non-coders? What can they do for Inkscape?

BH: For both non-coders and coders who don’t already have an idea what to work on, we generally guide them to the section of our wiki appropriate to their skills and interests. There’s a “Help Inkscape Without Coding” section with many great areas to get involved.

PB: “Translation” always comes up…

BH: We love our translation team! They’ve done great work. We have dedicated folks working on documentation generally, both online and in-app, which can be just as important as the app itself to giving new users a good experience

Testing, bug triage, teaching, and evangelism are also all great ways to contribute, and we’re hoping to get strong teams active in each of those areas

PB: So, have you ever stopped to calculate how valuable Inkscape is like other people have done with the Linux kernel?

BH: I wouldn’t know how to begin to calculate what Inkscape’s worth. I seem to recall openhub.net used to post equivalent development costs based on line count or something, but looks like they don’t do that anymore, or maybe I’m mis-remembering the site.

PB: But time is money. How do you fund yourselves?

BH: We do have a yearly budget, for planning the use of donations we receive

PB: Where can users go and donate?

BH: This year it is $15,000, mostly going to sponsor developers to attend various conferences. We have general fund donation page and right now we’re in the middle of fund raising for a hackfest, we’ll be doing in April, that we’re very excited about! I’d encourage all of your readers to chip in whatever they can.

PB: That goes for you, dear reader. Anyhow, it seems we have covered everything. Thanks a lot for your time Bryce. It has been very enlightening.

BH: Thanks for the opportunity to talk about Inkscape, I enjoyed it. :-) If readers have any more questions, they can come and hang with us on the #inkscape channel on Freenode.

This is the third and final part dedicated to Inkscape. Check out the first part, our review of version 0.91, and the second part, our two video demos that teach you interesting Inkscape features.