Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This may be a question more suited some Programming Meta Discussions.

I was trying to delve deeper into the inner plugin management feature for QT Creator 2.x IDE provided by Digia Inc. So I effectively downloaded the source code for QT Creator and built it to debug how this functionality is implemented.

Hence I used an IDE to debug the same IDE. So my question is are there any pit-falls while doing so? Is it recommended that in such a scenario it's better to use two different IDEs (e.g. using Visual Studio to build QT Creator).

share|improve this question
5  
don't get confused about which window is the IDE that is being debugged –  ratchet freak Sep 19 '13 at 15:06
    
It's called dogfooding. –  Sean McSomething Sep 19 '13 at 16:16
    
Changing the visual appearance (background color,...) of one of the IDE could make it harder to confuse. –  toasted_flakes Sep 19 '13 at 16:52
    
Oh and make sure the windows don't overlap, if you do it may rip apart the world with a cosmic inconsistency. –  jozefg Sep 19 '13 at 17:06

1 Answer 1

up vote 0 down vote accepted

It's really no different than building an application that can have multiple instances of itself.

From my experience, the biggest hangup is the persistence layer. Whether that's a configuration file or a call to a database, apps seem to get trapped into accessing a specific persistence object in a specific way which makes it all the more difficult to have multiple instances in place.

After that, you have to be a bit intelligent in how you lay things out. Visual indicators such as different backgrounds; title bar text; fonts; different account logins; different monitor locations; etc... all help make it clear which editor is primary / stable and which editor is in development.

It should be obvious, but this implies two separate code trees in the example you provided. One for the primary editor which is never changed. Another for the secondary editor which is under development.

And this approach holds up even to the extent of using the primary IDE to debug the development IDE as you mentioned in your question. When you're debugging the debugger capabilities of an IDE, then you'll need to feed a separate application into the development editor so it has something different to debug. In reality, that's not all that different from the tertiary project you would need to create in the secondary (development) editor in order to test the changes you made to the secondary editor.

It can be pretty easy to wrap your head around an axle with the meta aspects of building an IDE. The key is to clearly differentiate what each project is doing.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.