Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best IDE for C Development / Why use Emacs over an IDE? [closed]

Tags:

c

ide

so as per one of my previous questions, I'm brushing up on my C skills.

My question is, what do people use for developing C?

Lots of people use Emacs, and have done so for years, but is it better to learn emacs than just use an IDE such as Geany or KDevelop?

Would also be interested to hear from those still using emacs, and why they use it over other apps?

Please note that I'm only really interested in the free IDEs / editors.

EDIT:

Thanks for posting links which answer some of my questions, but I guess what I'm really wondering about is:

Whether learning to edit using emacs / vim and compiling / debugging using the gcc-toolchain is worth it instead of just using an IDE, and why?

What are peoples reasons for not migrating to an IDE?

Has anyone moved from terminal-centric development to IDE development, and why did they move?

like image 420
Matthew Rathbone Avatar asked Mar 06 '09 10:03

Matthew Rathbone


People also ask

What IDE do professional C programmers use?

NetBeans NetBeans, developed by Apache Software Foundation – Oracle Corporation, is also one of the most widely used IDE by the C/C++ developers. This free and open-source Integrated Development Environment allows you to create C and C++ applications with dynamic and static libraries.

Why do programmers use Emacs?

IMO the reason to use Emacs is because you want to customize things. It's a programming language that you interact with in the form of a text editor. That's a pretty small number of people for sure, but for those that want that, Emacs cannot be replaced by a random IDE.


2 Answers

I started off by using IDEs, Microsoft or not. Then, while working on QNX some long time ago, I was forced to do with a text editor + compiler/linker. Now I prefer this simple combination––a syntax highlighting editor + C compiler and linker cli + make––to any IDEs, even if environment allows for them.

The reasons are, for me:

  1. it's everywhere. If you program in C, you do have the compiler, and usually you can get yourself an editor. The first thing I do––I get myself nedit on Linux or Notepad++ on Windows. I would go with vi, but GUI editors provide for a better fonts, and that is important when you look at code all day

  2. you can program remotely, via ssh, when you need to. And it does help a lot sometimes to be able to ssh into the target and do some quick things there

  3. it keeps me close to CLI, preferably UNIX/Linux CLI. So all the commands are on my fingertips, and when I need them I don't have to go read a reference book. And UNIX CLI can do things IDEs often can't––because their developers didn't think you'd need them

  4. most importantly, it is very much like seeing the Matrix in raw code. I operate files, so I'm forced to keep them manageable. I'm finding things in my code manually, which makes me keep it simple and organized. I do Config Management explicitly, so I know when I'm synced and how. I know my Makefiles because I write them, and they only do what I tell them to

    (if you wonder if that works in "really big projects"––it does work, and the bigger the project the more performance it gains me)

  5. when people ask me to look at their code, I don't have to learn the IDE they use

like image 53
n-alexander Avatar answered Oct 03 '22 22:10

n-alexander


I've moved from a terminal text-editor+make environment to Eclipse for most of my projects. Spanning from C and C++, to Java and Python to name few languages I am currently working with.

The reason was simply productivity. I could not afford spending time and effort on keeping all projects "in my head" as other things got more important.

There are benefits of using the "hardcore" approach (terminal) - such as that you have a much thinner layer between yourself and the code which allows you to be a bit more productive when you're all "inside" the project and everything is on the top of your head. But I don't think it is possible to defend that way of working just for it's own sake when your mind is needed elsewhere.

Usually when you work with command line tools you will frequently have to solve a lot of boilerplate problems that will keep you from being productive. You will need to know the tools in detail to fully leverage their potentials. Also maintaining a project will take a lot more effort. Refactoring will lead to updates in make-files, etc.

To summarize: If you only work on one or two projects, preferably full-time without too much distractions, "terminal based coding" can be more productive than a full blown IDE. However, if you need to spend your thinking energy on something more important an IDE is definitely the way to go in order to keep productivity.

Make your choice accordingly.

like image 40
Anders Hansson Avatar answered Oct 03 '22 21:10

Anders Hansson