Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Interviews Interview with Doug Schaefer on the State of the CDT

Interview with Doug Schaefer on the State of the CDT


1. I’m here at EclipseCon 2015 with Doug Schaefer who is the CDT Project Lead and Tools Architect at BlackBerry QNX Division. Doug I wonder if you can tell us what’s been happening with CDT and what can we expect with this summer’s release?

Yes, there is a lot of work in CDT. We just had our CDT Summit yesterday and lots of great energy, we are getting a lot of contributions looking at, we are still looking at debug, supporting multi core debug, still working on supporting C++ and the new variants with the new standards that keep coming out, so the C++ language is growing, so the CDT is growing with it. And just lots of bug fixes but really a lot, starting to really focus on usability because we are trying to get new users into using Eclipse and CDT, the previous releases have been pretty cumbersome and we are just trying to make that easier for new people to get on board and help grow the community with it.


2. You mentioned the new standards like C++11 and 14 I think, two of the recent ones, how does CDT help people, either use those or migrate to those?

Well the main thing is to support our users, because we have some really advanced content assist and source navigation, the new features in the language, our parsers have to keep up with that and try to give some more information, there is a lot of things that are starting to be done automatically with C++ and it’s good to get some visualization into what’s going to happen under the covers, so trying to get that information to the users so they can understand their code a bit better.


3. And you mentioned multi-core as well, pretty much all laptops these days are multi-core, so how is CDT evolving to be able to do debugging and visualization?

Yes, it’s a really interesting time, especially in the Embedded Space and Mobile Space, these chips that are in phones now, not only have multiple cores but multiple types of cores, so there are some cores doing special algorithms that need low power and specialized processing capabilities. So the trick is really to be able to debug your application that spans multiple cores, multiple types of cores, and CDT offers visualization into all these cores and what’s kind of happening and giving some kind of a status of them all, helping setting break points in specific areas and yes, just trying to simplify again, simplify the process of debugging these complex systems.


4. You were talking about different types of cores there; most people think of a CPU core just being one of the things or one of several things that’s inside, but what about special processing chips, or GPUs, the graphics processing chips?

Yes, certainly there is a discussion about it. Really the GPUs are really interesting and there are some tools in the industry that help give visualization into that. We haven’t done much of that with CDT yet, but it’s really, certainly those kinds of specialized cores, micro-controllers, those kinds of things, from the micro-controllers up to the big GPUs, you are writing native code that runs across all that and having a single IDE that lets you debug, not only your regular CPU but all these specialized chips, is really important.


5. I guess most of the cross compilation is done on Linux based systems or the occasional Mac box, but how does CDT fit in on a Windows environment?

We are seeing a lot of cross compilers from Windows too, it’s a little more complicated to build those tool chains, but we have so many of our users that are on a Windows Box – they are ubiquitous, use laptops, they are cheap and easy to get and engineers want to use them. They may not like the underlying Windows operating system, but CDT kind of takes care of some of the complexities of that, dealing with the file system and all the different namings and that.


6. And you had a project called Wascana at some point, what’s happening with that?

From my perspective an IDE has to include the tool chain and the tool chains that people use for Open Source Windows development and a lot of the new easy to access hardware devices, those tools are all GPL, so with Eclipse you really want to try to keep the Eclipse site free of GPL, so really Wascana was set up so that we can continue on that way, giving the benefits of those great tools to CDT users and create an easy install scenario. So a lot of the Wascana work was done to setup for Windows and now I’m starting to use it to do things like Arduino and Raspberry Pi as well.


7. You are talking about Arduino, You've been doing some specific development for that, wonder if you can say what you’ve been working on there?

Yes, I have a talk on that at EclipseCon here and it’s really, you look at Arduino, there are like really cheap boards, really great for hobbyists to build little electronics projects that have smarts and even so, you can add network connectivity so they are talking to the Cloud as well. But the tools for Arduino are pretty basic and it uses a slight variation of C++, but so slight, you learn a couple more concepts and all of the sudden you are a C++ developer. So really what I’m trying to do with the Arduino for CDT is provide a C++ development environment using professional tools, all the great things you get with Eclipse, source control, all the source navigation features we have and make them available to the hobbyists and get them involved using Eclipse and learning to love it.


8. So that’s for Arduino, what about Raspberry Pi, do you see people compiling and building native executables for that?

It’s less of an issue, because the Raspberry Pi is really more powerful and they run Linux, but certainly yes, the whole idea is, if you are building a complex system that has like an Arduino and maybe a Raspberry Pi hooked up to it and it’s talking to a Cloud Service written in JavaScript, you want to have a single development environment that lets you build that entire system and debug it as a whole, so that is definitely supporting and really trying to get again hobbyists, who are using Raspberry Pis try to get them involved with using CDT and Eclipse.

Alex: Last time we talked, we mentioned about LLVM and Clang, I wonder if you can say what’s been happening in the space within CDT for those tool chains.

We are following closely, there is some work going on with LLDB and the debugger talking the MI protocol that GDB talks and so we are keeping track of that and there is actually been some experimentation done, hook up LLDB to CDT and that’s seems to be working pretty well, there's some more advanced work use cases that aren’t quite there but it’s growing fast and really supporting – I think a lot of the engineers I see have Macs, you want to develop applications locally and maybe target the Cloud or devices, so supporting Clang and LLDB are really important I think to the future of Eclipse and CDT, so we are going to keep working on that.


9. And you think there will be a time when you have a bundle with Clang and LLDB as part of CDT in the same way you did with Wascana but in a more license friendly way?

And that’s, I think the great thing about Clang and really it’s a much more friendly license, that’s why a lot of the big companies are getting involved with it. It certainly would be a definitely easier scenario to help deploy, not only to Mac but there's work going on for Windows and Linux to support those tool chains, so yes definitely.

Alex: You produced a lot of good stuff in the past, and one of the other things that you are working on is improving the launching experience within Eclipse, wonder if you can you tell us a little bit about the launch bar that you have been working on.

I’m working on, so this is something that we actually started internally working with for BlackBerry when we built the Momentics Tool IDE for BlackBerry, the BB10 phones. We worked really hard to simplify the user experience, and one of the most complicated things for new users to understand as a whole, I write this application, how do I start it up, how do I start up the debugger, and it’s the workflows, you are bringing up really complicated dialogue, you know just trying to get rid of that and make it simpler. So the launch bar: I looked around at other IDEs how they worked hard to simplify the user experience and really the user just wants to hit play when they want to launch. So that’s what the launch bar is going to provide for Eclipse, it’s being introduced in Mars, we are going to start small and get some user feedback, getting a lot of great feedback from people, really just so you hit play and your thing starts up and it’s a lot simpler to manage your launch experience.


10. You also mentioned about the Momentics IDE for BlackBerry, how does that subsume and then built on top of CDT and other Eclipse projects?

We are really, basically we are targeting our tool chain really for QNX, so we have a GNU based tool chain hooking that up to the IDE, we have some really cool runtime analysis tools to find memory leaks and performance issues. So that’s really what our Momentics is, and we built that for BB10 and we are kind of taking all the great things we did for the mobile developer and targeting that now at the embedded developer for our QNX customers industrial design, our industrial automation and a lot of automotive customers, so they have that great experience as well.

Alex: Doug Schaefer, thank you very much!

Thanks for having me!

May 08, 2015