Choosing the perfect IDE can be quite challenging, as one must consider whether their system can handle the resource demands of full-fledged IDEs, whether it meets all their requirements, and if it supports their required programming languages or features.
Currently, there are not just tens but hundreds of IDEs available, ranging from free and open-source to proprietary paid options. Some IDEs are command-line based, like Vim, Emacs, NeoVim, and LunarVim, primarily for CLI users, though they have steeper learning curves that regular users might avoid, so we’ll overlook them for now.
Other IDEs catering to specific programming languages, like Arduino IDE, RStudio, Android Studio, PyCharm, or Jupyter Notebook, which cannot be used to write programs in other programming languages, will also be avoided.
We will only look for proper IDEs that allow you to write normal text, programs, markdown markups, or anything else you desire, with syntax highlighting support, and include all the necessary and modern features a user might want. So, let’s start with…
IntelliJ IDEA is a freemium and proprietary IDE that is perfect for Java and Kotlin programmers, but you can also use it to write codes for other programming languages. It’s a smart, modern, and feature-rich choice, trusted by 78% of Java developers and used by prominent companies such as Samsung, Visa, Twitter (now X), and many more.
It’s developed by JetBrains, the same company behind PyCharm, the best available Python IDE. Like PyCharm, IntelliJ IDEA offers two variants: the free Community edition and the Ultimate edition, a paid version with additional features. There’s also an Educational edition, providing full features exclusively available to students and faculty.
You are most likely going to use its Community edition, which offers support for Java, Kotlin, Scala, Python, Rust, Markdown, and many other programming languages, including support for extensions, an embedded terminal, a debugger, Git support, and themes.
Pros |
Cons |
---|---|
Intelligent code assistance |
Resource intensive |
Wide language support |
Overkill for small projects |
Built-in developer tools |
Startup time is a bit slow |
Powerful refactoring |
To much bias toward Java |
Debugging capabilities |
Geany is a lightweight yet powerful IDE that supports popular programming languages like C, Java, PHP, HTML, JavaScript, Python, and over 50 more. It is flexible and cross-platform, offering extensive customization and themes, and can be further extended using plugins.
Despite being a small and fast IDE, it offers most features a user might require, such as syntax highlighting, code folding, auto-completion, simple project management, an embedded terminal, bookmark support, Git integration, and a lot of themes.
The best thing about this IDE is that it’s more independent than any other IDE for a Linux desktop environment like KDE or GNOME, and it mostly relies on pre-packed packages. Only the GTK3 runtime libraries are required to make it work properly. If you’re using a Linux system, you should definitely consider it.
Pros |
Cons |
---|---|
Lightweight |
Limited advanced features |
Wide language support |
Basic project management |
Simple and intuitive |
Limited auto-completion |
Code navigation |
Smaller community |
Manual configuration for some languages |
Sublime Text deserves to be on the top IDE list; it’s been serving thousands of users for over a decade, supports most programming languages out of the box, offers extensive customization and theme options, including plugins, and has excellent community support.
Although it comes in both free and paid versions, you can use the free version with full features; the only downside is occasional pop-ups for paid subscriptions and the inability to access Sublime Text 3 dev builds, which are updated more frequently.
But you won’t need to worry about it, as the free version includes all the necessary features such as autocompletion, syntax highlighting, code folding, powerful search, simultaneous editing, minimap, screens/panels, and many more.
Pros |
Cons |
---|---|
Speed and performance |
Not open source |
Multiple Cursors and Selections |
No built-in terminal and Git integration |
Split Editing |
Limited built-in features |
Project Management |
Plugin dependency |
Zed is a new IDE currently available for macOS and Linux, with Windows on their roadmap. Built on Rust and designed to use every CPU core and GPU acceleration, it can open files containing thousands of lines at blazing speed.
It comes integrated with ChatGPT, which can be quickly enabled by passing a valid OpenAI API key, allowing you to generate or refactor your code. Additionally, it supports GitHub Copilot for coding assistance and debugging.
Besides this, it offers a bunch of plugins that enable support for programming languages, Markdown markups, Dockerfile, TOML, GraphQL, and many more, allowing you to customize your editor with only the features you need most instead of getting them pre-packed.
It also includes an integrated terminal and serves as a robust team collaboration tool, enabling seamless access to your teammates’ code as if you were working on your local system. However, this feature is currently free to use, but I assume that in the future, if they introduce a premium tier, the team collaboration feature will likely be restricted to paid users, as is common with most IDEs.
Pros |
Cons |
---|---|
Speed and performance |
Settings and keyboard customization require JSON knowledge |
Clean and minimalist user interface |
Lack of some important IDE features, such as Debugger |
Multiple Cursors and Selections |
Limited official or community support |
Native VScode keyboard shortcuts are used | |
Split Editing | |
Good Project Management Feature |
There’s no doubt that VScode has been the number one IDE for years, with no other IDE coming close. It’s free, open-source, packed with awesome features, supports almost all programming languages out there, and is truly the most fantastic IDE one could dream of.
It’s highly customizable, allowing you to quickly tailor it to your desired working environment, create different workspaces, use embedded terminals, debuggers, Git integration, split editing (horizontal or vertical), and use thousands of plugins and themes.
You can edit files inside a Docker container or remotely located files over SSH, just as if you were editing them on your local system. Popular extensions like Live Server allow you to immediately see live HTML changes in a split pane, while the code runner extension enables you to quickly run code in the terminal.
It’s one of the best IDEs, with the only complaint being its lack of some UI features. Most features heavily rely on external extensions, and overuse may make the editor a bit bulky and unresponsive. However, you can use the workspace to only enable extensions that are important to that particular environment.
Pros |
Cons |
---|---|
Lightweight and has quick startup times compared to full IDEs |
Can slow down with very large codebases or when many extensions are active |
Vast ecosystem of extensions for languages, frameworks, and tools |
Lacks some advanced features of full IDEs out of the box |
Integrated terminal |
Might require significant setup for complex development environments |
Powerful code completion and suggestion system |
The vast number of extensions and settings can be overwhelming for beginners |
Built-in debugging support for many languages |
Extensions or updates can sometimes cause instability |
Real-time collaborative coding and debugging | |
Frequent updates with new features and improvements | |
Highly configurable with themes and settings |
All of the mentioned IDEs are the best among those available. If you know of an IDE that could claim the top spot, or if you use a different IDE, then do let us know why and what you like about it.
If you’re curious about which IDE I use, I primarily use VSCode. I used to use the Atom editor, but I switched to VSCode well before Atom was discontinued. Currently, I’ve been experimenting with Zed and find it quite useful, as it’s much faster than VSCode and has almost everything I need in an IDE.
I’ve tried and tested over 20+ IDEs over the years and shared the best five I’ve discovered. If you know of any fantastic but lesser-known IDEs, please let me know their names in the comments section.