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.

Why weren't the features present in modern IDEs for Java & C# (Intellij IDEA, Visual Studio, eclipse) developed in (earlier) IDEs for C language? I mean I don't know any IDE which has modern features (auto-complete, code navigation, refactoring, VCS integration etc.) that was developed especially for C.

I know that eclipse has plug-in for C and Visual Studio can run an old version of C but they weren't designed for C but rather for Java/C# (or the other .NET languages).

I also find it hard to believe that things like "pressing a key to go to a function or struct definition" or "commit to SVN from 2 key shortcuts rather than going in shell and writing a command" or "pressing a key for extracting a method or a variable" are useless and emacs or vim is enough. Not to mention code analysis, code coverage and probably most important specific library/framework support. These are all functions which greatly increases the productivity of a programmer.

The only reason I thought of is that there aren't many large projects in C (hundreds of thousands LoC), but still, there are plenty of them; and also, most of the functionality is very useful for smaller projects also.

share|improve this question

closed as not constructive by Karl Bielefeldt, Glenn Nelson, Walter, Dynamic, Yusubov Jan 19 '13 at 3:00

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Both Eclipse & Netbeans support C development. –  Yannis Jan 18 '13 at 23:05
Visual Studio was C and then C++ long before .NET. But it's because C programmers haven't come out of their shell since before a GUI was too expensive to run on their Pentium. –  DeadMG Jan 18 '13 at 23:07
Emacs exists to scare away those who can only use IDEs. This leaves the world free to be written with vi… –  Donal Fellows Jan 18 '13 at 23:15
We have modern IDE's for C. They are called emacs and vim. :-) –  Loki Astari Jan 18 '13 at 23:18
What would you count XCode as? –  MichaelT Jan 18 '13 at 23:19

2 Answers 2

up vote 8 down vote accepted

There are -- all of the big current IDE environments support C -- though you may be missing this, as the C support in your IDE of choice may be part of its "C++" mode (the languages are -- in some ways -- very similar, and use a lot of the same tools and libraries).

However, you may find that few C programmers near you actually use this IDE support. There are a lot of reasons this may be so, including the fact that the C language predates the first graphical IDEs by almost two decades, but one reason may be this:

The C language is primarily used by developers who want a low-level view of exactly what's happening, and don't mind keeping track of a lot of details to get there, while a modern IDE is designed to insulate you from needing to know exactly what's going on by hiding many details of the development tool chain from you. The two aren't in conflict, but the mindsets are different.

share|improve this answer
"the C language predates the first graphical IDEs by almost two decades" – Smalltalk had graphical IDEs at the same time that C came out and certainly before C became even remotely popular. Other languages may have had them even earlier. Non-graphical IDEs definitely existed even before C. –  Jörg W Mittag Jan 19 '13 at 3:22
Smalltalk's environment is an amazing thing -- but it's also a very different (and in many ways better) thing than the modern IDE. But the OP is asking about the latter (and the former, perhaps sadly, has never had nearly the popularity of C, even in the early days of both). –  jimwise Jan 19 '13 at 3:34

First of all, C# wasn't invented until 2002. Visual Studio was released in 1995, supporting C, C++, Visual Basic, and Visual FoxPro. Before that, it existed as the separate components, even though it wasn't called "Studio." To my knowledge, the "modern features" were added essentially simultaneously for all the languages. I think you'd have a hard time making the case that they were designed specifically for C#. If C# hadn't been invented, the features mostly likely still would have.

Second, those languages are all very similar syntactically. There's nothing about C# that makes autocomplete an obvious feature, for example, that you couldn't say about C. I use eclipse occasionally for C code, with no noticeable degradation of functionality from Java. It may be "only a plugin," but so is practically everything with eclipse, and it is highly supported and considered a first class citizen.

Third, the universe of IDEs is much larger than the small list you've provided. There are proprietary IDEs for C that are highly specific to embedded programming, for example. It's pretty difficult to make a blanket statement only having researched a few.

share|improve this answer
As I have said, Visual Studio supports an old version of C (you have to put variables right after function declaration). There must be difference from auto-completion; C isn't class based for example, it has pointer arithmetics etc. I have forgot to mention that; microcontroller based IDEs should be ignored here. –  m3th0dman Jan 18 '13 at 23:44

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