I liked
@JasKinasis' response the best. "It depends."
I have written a lot of code over the years and used a lot of IDEs. I also used other tools and devices that did similar operations to what IDEs provide. My experience is old, so any recommendation that I might make may have been overtaken by newer products and tools. When you read the responses from others, think about the age of their experience and the context of their responses.
In my opinion,
@CrazedNerd (the OP) asked the wrong question. They asked, "What's the best IDE for linux users?" The problem is that they asked specifically about Linux, but told us nothing about the projects they want to build. I think that the choice of IDEs is much more about the projects you are building than the operating system that you use. Here may be a way to organize your thinking about IDEs:
Choosing an IDE
- First decide on the projects you want to build.
- A tic-tac-toe game? A network device driver? Web apps? Command line? GUI? Written in a specific language or for a specific framework?
- If you are a learner, then it depends on what you are learning. The learning tools or teacher may suggest or dictate the projects to build.
- Figure out the components that you must gather and create to put the project together and make it run. (Not the tools to create them, but the actual pieces that make up the project.)
- The size, scope, and nature of the project will inform you about what you need to put the project together. They will help you choose the tools you need to do that.
- If it is a small "Hello, world!" project with only a few files, you may not need more than a simple text editor and the command line for compilation and linking.
- Is it one-person or a team collaboration? Is it commercial and tightly managed, or distributed and loosely managed (e.g., open source)?
- Your own experience will also inform you. How do you like to work? How do you like to build projects?
- Those components will inform you about the choice of programming language(s), framework, APIs, libraries, etc.
- Figure out which IDEs will support the project(s) based on what you learned above, assuming an IDE is even necessary or desirable.
- The choice may be based on dictates of programming language, frameworks, target environment, etc.
- Some may not run on Linux, such as Apple's Xcode, so you eliminate them.
- Find the one you like for that project(s).
In my opinion, beginning programmers need a great (but easy to use!) smart editor coupled to an easy to use integrated debugger. Beginners do not need code merge, sophisticated refactoring, automated build-and-test, sophisticated code management, or the kinds of processes and procedures that you see on large projects. Modern IDEs offer more features and multi-language support than when they first came out. I wonder whether the plethora of features is a distraction for beginning programmers. IDEs may offer a vast number of capabilities and features, but too many options can be intimidating.
At some point, you may start to make your projects fit the IDEs and programming languages that you know best, even when you could choose more appropriate and efficient tools and languages to do the job.
Is any of this helpful?