• We had to restore from a backup today after a failed software update. Backup was from 0000 EDT and restored it at 0800 EDT so we lost about 8hrs. Today is 07/20/2024. More info here.

What's the best IDE for linux users?

Atom would be a good choice five years ago. But atom is now without support as Microsoft wants users to use VS-CODE. Which is a good choice other choices are Vim, Notepad++ and Sublime text.

I use PyCharm on Windows, but when I'm writing Linux DevOps / automation stuff. (which is 95% of my development) I generally write it in Linux over ssh with just Vim. (I don't use Linux on the desktop)

Is anyone familiar with a resource that lists all of the IDEs available on Linux?
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?
I use IntelliJ for Java/Spring development and VS code for HTML/CSS/Node.js/React/AWS etc etc. However stuff like AWS integration and Java/Spring integration with VS code is almost as good as IntelliJ now... it's pretty impressive. Never really liked Eclipse for whatever reason. Also you can use VS Code on WSL which you probably wouldn't... but sometimes I flip over to Windows for World of Warcraft lol.
VS Code all day long for me. Those using vi to write scripts, seek help. I mean it's tantamount to self harm :p
VS Code all day long for me. Those using vi to write scripts, seek help. I mean it's tantamount to self harm :p
LOL, like anything it depends how you use it. For me, using a graphical to code at all doesn't make a whole lot of sense, but if you get good with it you learn how to shave off typing time.

I personally still like nano because its really easy to program, and just makes more sense in a GUI user environment than vim does.

Im just going to stick with bash terminals as a coding environment...the flexibility and programmability is pretty nice.
VS Code all day long for me. Those using vi to write scripts, seek help. I mean it's tantamount to self harm :p
I try VS Code for the first time today...it has a neat looking interface, however it takes me a lot longer for me to open a file that i already created with VS Code than it does with either nano or vim...i couldn't figure out how to make vim "fast and efficient" in comparison to nano, but command line is overall just a faster way to manipulate data if you know how to use it.