I know the "which IDE do you guys use" question has been asked a million times. But I've never seen it asked in this context. What are some suggestions for an IDE when working on huge projects that encompass multiple languages and thousands of files.

A good example is the android source. Not only is a good C/C++ IDE required for the kernel, but also Java and shell scripts. Is there anything that's built for this kind of project?

What I normally use is KDevelop for C/C++. I love it, however, it seems to explode when using it for huge projects such as the linux kernel. Also it doesn't even do anything for Java or python.

So what I'm basically looking for is suggestions for IDEs/setups (ie vim + scripts) for working with large projects, including the linux kernel itself.


I think I may have been unclear. I'm not exactly looking for an IDE per se. What I'm really interested in is a tool (set of tools?) that make working with large, coupled projects easier. For example. The linux kernel defines a lot of macro functions. I want to be able to open any given source file in the kernel tree and be able to see the definition of that macro (whether it be by mousing over, or a vim extension window, or anything).

  • For navigating the Linux kernel specifically, LXR (online Linux cross-reference) is very helpful. For Android, Eclipse is the preferred IDE, so the authors have spent some energy making things work well with it. Apr 11 '11 at 20:09
  • 1
    By Android, do you mean android java app development? Or android kernel/NDK development?
    – Falmarri
    Apr 12 '11 at 19:10
  • @Falmarri - From what I have found, in the specific case of Linux kernel development, it seems that the Link+ is very popular: sourceforge.net/projects/linkplustest Aug 21 '18 at 22:14

What I would recommend is that you don't stick to any IDE's per say. Let your code stay as flat files in the filesystem, and use independent tools (Emacs, the GCC toolchain, Ctags, etc) you have to for implementing the operations you have to implement. That will keep your codebase IDE-independant and free of clutter that surrounds it (like .project files, etc).

  • 3
    I guess that's sort of my question. I don't necessarily need an IDE per se (as in with all of its features). But what I want to be able to see is where kernel macros are defined, code completion, and things like that. When projects start reaching tens of thousands of files with compile time dependencies and conditional defines, it's extremely hard to keep thing straight using vim.
    – Falmarri
    Apr 11 '11 at 18:47

I can only talk from experience, so it probably doesn't encompass projects the size of yours. I use Code::Blocks for development in C and C++.

The general Idea however, is to make clever use of things like git, vim, ctags, etc., and keep everything unbound to a specific IDE. The trick is, not to force developers to use a certain IDE. Everyone on your project should use whatever development technique and programs they like.

As for managing large amounts of files, let the filesystem do the job. Make use of folders and descriptive files, as well as comments inside your code.


Eclipse would probably the best choice for you. It has plugins for a huge amount of languages and technologies, customizable, available for all OSs. As minus it uses java and requires a lot of memory.

  • 2
    Eclipse is too unreliable when using that for larger projects. Java developers stick to it, because there's little alternatives around.
    – polemon
    Apr 12 '11 at 4:29
  • Have you used it with a large project without trouble?
    – tshepang
    Apr 12 '11 at 13:27
  • 2
    The problem I had with eclipse is the plugin mentality. Many were (still are?) incompatible and mostly inconsistent user interfaces. When ever you want to do something "new", like edit a file that isn't Java, you have to download and install a plugin, that has as much chance of making the entire installation unstable as it does of working.
    – mattnz
    Feb 23 '12 at 4:12

I use Visual Slick Edit for a large (millions of SLOCs), legacy multi-language, multi-platform, multi development environment. It's commercial and expensive (Unless you factor in your time). For serious Java session I switch to Eclipse, but for a quick fix/tool around in Java, C/C++, Ada, Python, Pearl, Scripts and many others it's the only tool I know of that can just do it, out of the box.

You would do yourself a disservice not to download a trial and see if it

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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