January 9, 2015

Interview with Christian Hergert about Builder, an IDE for GNOME

Christian Hergert have set out to improve the developer experience on GNOME with his new project, Builder. We sit down with him to discuss why we need another IDE, developer tools, missing GNOME apps and more.

 

Q: Who are you, what is Builder, why are you creating it?Christian Hegert
I’m a long time contributor to Free Software. In particular GNOME. I’ve also contributed to projects such as Mono and more recently MongoDB. I’ve been writing software on GNU/Linux for more than half of my life. I’ve never been particularly happy with the status quo.

Over the years I’ve contributed to various project that aspire to improve the developer story on GNU/Linux. Mono and MonoDevelop were a serious attempt to improve things. But those projects don’t really focus on what I care about. What I care about most is GNOME, because the project cares deeply about creating a computing environment that is functional, refined, and beautiful.

After my tenure working on Gtk+ projects at VMware, I knew I needed better tooling. Builder was an idea I had to build a development environment for myself.

Software engineers often create their own tools similar to how woodworkers build tools to do old things better and make new things possible. I wanted something that could take advantage of all the new compiler features and tools available on our platform. I wanted something that was minimal UI because code is the important part. I also wanted a work-flow that didn’t require me to keep switching applications. I want the information that is important contextually available without me having to think about it. At various GNOME hackfests, it became clear that others wanted what I was creating. So this project is something special to me. I’m getting to write software for what I consider my extended family, GNOME.

Q: You quit your job to hack on Builder full time?
I did. One thing I’ve learned in my career is that if you want to make something great, it needs constant focus and dedication. Swapping between work and personal projects just doesn’t result in the quality of project I want to provide our community. That said, if you want to hire me to work on Builder, I’d be happy to have a job again.

Q: Do we really need another IDE when Eclipse, MonoDevelop, Netbeans to name a few are already available on GNOME?
If any of those were what I wanted, I’d be using them. I’m thrilled that others are interested in the same thing I want. A high quality development environment that builds upon our fantastic platform and focuses on building software for our platform.

It seems like Builder is going to be a big application, but it really isn’t. We are reusing a lot of technology that already exists in the GNOME ecosystem. For example: Glade, Gitg, Nemiver, GtkSourceView, Devhelp, autoconf/automake and others. And we want to reuse our technologies. We think they are high quality and deserve to be something better.

Eclipse, MonoDevelop, NetBeans, and others are large plugin based environments that come with more technical debt than benefit. These plugin based designs are why when you run most major IDEs today you don’t even know if it will startup correctly. The number of times I’ve seen exceptions starting Eclipse haunts me.

Troubleshooting, documentation, installation, and testing effort increase with quadratic growth as you add more moving parts. I’d rather not abstract things until we find they are necessary and have solved the problem once. Otherwise, we create unused abstractions that only create headache without solving a real problem.

Additionally, Builder is a major UX effort for developers. This cannot be understated. Simply going into an existing IDE and adding some plugins does not significantly change the UX of the IDE. We want to try to take a completely different approach to how software is built based on our experiences building a swath of Free Software. This (and plugin based design) is the primary reason we are not rebuilding on top of Anjuta. We felt we couldn’t explore with the UX we wanted without harming the existing Anjuta users.

Q: What reaction do you get from people when they hear that you quit your job to hack full-time on Builder?
In general I think it’s positive, it usually results in a conversation about what is important in life.

Q: What apps do you want to see people develop with Builder?
Wow, I can think of a lot of things.

Something to do presentations. I have a lot of talks coming up and want a program to write them that allows me to focus on content and how I say it rather than building slides. Also, I want to be able to change slides over bluetooth or mDNS from my phone. I’m pretty unhappy with libreoffice and small projects like pinpoint aren’t quite enough. I don’t need compatibility with other presentation tools.

I want something like a DLNA aggregator that let’s me search across any media available on any machine connected to my home network. I want to be able to stream it on any TV or computer. My housemates and I all have NAS storage with various DVDs or CDs we’ve ripped or purchased. It would be great if that content could just be played anywhere and “just worked” out of the box.

More generically, everything on the GNOME wiki at https://wiki.gnome.org/Design/Apps/

Q: Some claim the future is all about the Web and Mobile, any comments?
Somebody has to write the web browsers and mobile platforms. And the people that build those platforms get to choose the technology they are built with. Sounds like a great reason to attract developers by building tools that are genuinely fun to use.

Q: You are planning a fundraiser, do you want us to tell us something about it?
I have! You can find the fundraiseron Indiegogo at: https://www.indiegogo.com/projects/builder-an-ide-of-our-gnome/

Q: What else can people do who want to support your effort?
Test code, file bugs, provide constructive criticism based on using it, write use cases, help design specs, write code, documentation. I also need someone who can help manage the more administrative tasks like roadmaps, specs, bug triage, and release management. There is a lot of code to write and I need to focus.

Q: Anything else you want to add?
I hope you have as much fun using Builder as I’m having creating it!

Thanks for taking time talking with us. We wish Christian the best of luck with the fundraiser* and continued efforts in developing Builder.

*The fundraiser has reached its original goal, you can now help the campaign reach stretch goals.

Written by Oliver Propst
Photo by Jakub Steiner