What IDE should a BACKEND-developer choose: JAVA, PHP, PYTHON, GO

SHARE
IDE

IDE (Integrated Development Environment) is an integrated, unified development environment that is used by programmers to create software. It is also known as an editor.

According to Wikipedia, today there are more than 50 different IDEs – universal or tailored for a specific technology. Some have been on the market for a long time and have assembled their audience, while others are just developing. Therefore, novice developers face the question: which editor should they choose?

In this article, we will look at what IDEs that our fellow backend-developers use, we will talk about alternatives, and share useful plugins and extensions that will make the editor more convenient to use. Let’s start!

INTELLIJ IDEA

Paul, Java-developer

Why this IDE

In my work I use IntelliJ IDEA from JetBrains. In fact, it has become the industry standard for Java developers: in our team, we only work in this IDE, and I have not yet met a project where someone would use a different environment.

IDEA has two editions: Ultimate and Community. I use Ultimate because it is great for enterprise and web development: it includes support for Spring, Hibernate, Java EE, AspectJ, database work, an http client, and deployment to application servers. A subscription to Ultimate costs €599 per year. But there are free programs for students, teachers, non-profit organizations and Open Source projects.

The functionality of the free Community version is limited; however, like Ultimate, it supports Java, Kotlin, Scala, Rust, HTML, XML, JSON, YAML markup languages, version control systems, build systems, Android frameworks, Java FX and Swing, and Docker. Great for developing desktop and console applications in Java and Android.

Disadvantages

IDEA takes up quite a lot of memory, especially when working with several projects at once, so you need a powerful computer. At some point, it may freeze, for example, updating the file index or downloading build system dependencies. Usually, this happens after the IDE starts showing errors where they definitely shouldn’t be. Manual cache reset usually helps.

Alternatives

Alternatives to IntelliJ IDEA include NetBeans and Eclipse. However, in this case, say goodbye to many handy tools. For example, smart auto-completion, code highlighting, a convenient debugger. In Eclipse, this requires the installation of numerous conflicting plugins.

Suggestions

If IDEA does not support something, then, as a rule, you can find the corresponding plugin. However, over the past few years, I personally installed only one – a plugin to support Lombok (not a supporter of using this library, but there were a number of projects where its use was a requirement of our client).

Scott, Java-developer

Why this IDE

For experienced developers, I would recommend IntelliJ IDEA. Its advantages: 

  • Convenient work with the code; 
  • Cool design; 
  • Work with many useful and necessary tools out of the box: Git, databases, support of frameworks – Spring, Hibernate, Gradle, Maven, new versions of IDEA with JDK 14; 
  • Hotkeys; 
  • Free Ultimate version for students; 
  • There is a function to synchronize settings: a list of installed plugins, overridden hot keys and the like; 
  • Each big update brings a new splash screen when you start the program 🙂

Disadvantages

Work with Git. The commit tree does not look intuitive, the functionality may seem complicated, especially for those new to the version control system.

Alternatives

Novice developers will benefit from Eclipse. This editor will make you do some things that another one will do for you.

For example, IntelliJ IDEA has a very powerful auto-completion feature that “completes” your code. In Eclipse, it is not so maxed-out and it is necessary to think over each word on your own. This helps you understand your code more deeply.

Suggestions

Learn a simple set of hotkeys for working with code. For example, different options for moving the cursor, automatic construction of the simplest structures (getters, setters, constructors), moving between the tabs of the code editor, working with Git (commit, pull, push), moving inside classes and methods, interfaces and implementations.

Plugins:

  • Lombok – allows you to replace classic getters and setters with a single annotation; 
  • Key Promoter X – will come in handy in the study of hot keys in a very annoying way; 
  • Gradle/Maven – simplified assembly of the application;
  • Database tools – work with data in the database; and other standard plugins that are offered during the installation of the IDE.

More info

If problems arise, the best guide is the official documentation. In other cases, apply learning by trial and error method 🙂

George, PHP / Python-developer

Why this IDE

In my work I use IntelliJ IDEA Ultimate by JetBrains. Its main advantages are convenience and multilingualism: the editor allows you to do a lot of things “out of the box” which is very useful, since I write in several languages at once. In addition, this IDE is supported by all operating systems (Windows, Linux, Mac), and in terms of ergonomics, I have not seen anything better.

Disadvantages

Hotkey conflict with MacOS. For example, when I click on “comment a line”, I also open the program’s help window.

Alternatives

I raised the question only once, but after installing the trial version of IDEA, I realized that everything was fine.

Suggestions

I mainly use plugins for related-things like syntax highlighting in blade, twig and other templating engines. I can also recommend PHP Inspections and Phpcs for PHP developers. 

The only piece of advice I can give when working with an IDE is to make the most of the features; but don’t forget about native work as well. For example, I work with Git and Docker through the console so that “hands remember”.

PHPSTORM

Andrew, PHP-developer

Why this IDE 

In my work I use PhpStorm by JetBrains. When choosing an IDE, I paid attention to convenience, intuitiveness in management and the words of an older friend, “choose a normal editor”. This is how most of my colleagues chose the tool, because “once you sat down you work, instead of rushing around with 10 plugins and 15 snippets.”

In addition, a lot of nice little things like built-in work with Git, databases, Docker, and even, surprisingly, Joomla and WordPress. During the first launch, you will be offered a plugin for Symfony.

Surprisingly, the Vue plugin works better for PhpStorm than Vetur for VSCode. That is, an IDE tailored for PHP does a good job with JavaScript and TypeScript, Angular, Vue, Less/Sass. 

The editor also has the best language support I’ve seen. You can even choose a specific version, and with versions 5.6 – 8.x this is true.

A very handy built-in tool for working with databases – after it I completely forgot that there are such things as phpMyAdmin, HeidiSQL and DBeaver. You can always see the current table structure, indexes, stored procedures, queries, and a console with autocompletion.

Disadvantages

Before, I would say that the main disadvantage is the price tag of almost €300 per year. But now I think such a price for the instrument is quite adequate. 

Also, sometimes the IDE wastes a lot of resources (because of the Java – the editor is written on it). PhpStorm itself at the start takes up 300-400 MB of RAM, and then you suddenly lose 2 GB. Ouch.

Alternatives

I started coding in Notepad++, then I tried SublimeText (when it was still popular), then VS Code. I use the latter at my leisure when I write in JS from time to time.

Suggestions

Are you working with a specific stack? Take a specific IDE. Moving from PyCharm to WebStorm and then to GoLand is not a problem at all, because they all have the same core. 

Buy a license if possible, and remember that you don’t need the whole IDE to get started.

Don’t neglect auto-generation (scaffolding). Getters, setters, a blank class with parent methods stubs – this is convenient. 

On Windows 10, when opening a new project, look in the lower right corner – the IDE may offer to add the project folder to the Windows Defender ignore list so that it does not constantly scan files. Just press “Yes”. 

Check out the IDE documentation. It’s pretty good 🙂

Michael, PHP-developer

Why this IDE

In development, I use PhpStorm by JetBrains which I chose as per the advice of experienced developers of the company, since at that time the IDE was not so well known. At the beginning, the editor seemed rather difficult to master, but after studying the main features, it became indispensable in development. 

I still stay in this environment for the following reasons:

  • Many years of work, familiar and customized themes of the application and code editor; 
  • Full support for all near-web languages ​​and structures such as CSS, JavaScript, TypeScript, JSON, etc.; 
  • Ability to fully develop frontend applications based on JS frameworks; 
  • Convenient work with VCS, log view, interface for resolving conflicts when merging branches, working with the stack, etc.; 
  • Full integration with Docker without installing additional plugins and modules; 
  • Availability of IDE by the same JetBrains developer for any other programming languages. The style and basic principles of work are practically the same; 
  • Nice and sound interface; 
  • Stable operation of the application even on average machines; 
  • Full support for Unit-tests.

Disadvantages

As with any application, there are cases of freezing and crashing. But this is usually not accompanied by data loss, since the IDE keeps the entire history of file changes and constantly saves the current state of the project.

Alternatives

Previously, I worked exclusively with Notepad++, a module for connecting to a server via FTP and a file comparison function (at that time, I didn’t know about the VCS version control system). When Notepad++ stopped coping with more complex projects, I started looking for an alternative to the IDE. 

For the sake of sporting interest, I considered the option of free NetBeans – this IDE is quite similar in functionality and UI. But still, in terms of ease of use, intelligent features and features for code refactoring, the product from JetBrains wins even taking into account the fact that this editor is not free of charge.

Suggestions

Features

  • Use Live Template – customizable combinations of characters and keys, where you can factor in the output logic of frequently used code constructs into the editor. There is a basic set of templates out of the box, or you can customize your own one. 
  • Search through all project files by pressing Shift twice. The subsequent double-click of Shift with the open search box “all” ticks the option “Search in files not included in the project” (for example, files in the vendor folder, node_modules, etc.).
  • Find in Path. Search for files by the occurrence of a string in the body or in the file name within the directory / project.
  • Refactoring->Rename. Renaming of variables, classes, methods, functions with search and correction of all occurrences of these variables, classes, methods, and functions. 
  • Introduce Variable / Constant / Field / Parameter. Quickly extract values ​​from code into variables, constants, or class fields.
  • Extend selection – expands the selection area each time the hotkey is pressed. 
  • Context Actions. Useful operations depending on the context of the cursor: changing quotes from single to double and vice versa, converting the array notation format from traditional to short format, converting a string from parameters separated by commas to a multiline notation format, etc.; 
  • You can select an option in the autocomplete using Tab or Enter. For example, when autocompleting to replace a class method, Enter will simply add a new option and the old one will have to be deleted manually. Tab will do the replacement automatically.

Plugins

  • env files support – work with environment variable files
  • Markdown – assistance in writing README.md, syntax highlighting and layout visualization 
  • Task Management is a powerful plugin for integrating with popular task managers, customizing templates for commit messages and many more.

PYCHARM

Steven, Python-developer

Why this IDE

PyCharm is used in all Python tutorials. In this case, you do not need to install additional plugins to work with the language. In a sense, there are no alternatives here 🙂

Disadvantages

Firstly, the editor slows down when there is a lot of code in the file. These are problems of incorrect project structure, but such files are sometimes encountered in this type of work. 

Secondly, it incorrectly highlights attributes: relevant for the PyCharm Community with no support for frameworks, as well as with incomplete documentation of the parameters’ types of a function, a third-party library. But that rarely happens.

Alternatives

Atom, Spyder or Sublime Text. Their main disadvantage is that the most important functions for Python development do not come “out of the box”. You need to install them yourself using various plugins and extensions.

Suggestions

Few useful plugins:

  • IDE Features Trainer will help you learn the main shortcuts and features interactively; 
  • Key Promoter X on mouse click in the IDE will show hotkeys that can be used instead; 
  • Python Security analyzes potential security flaws in your code and suggests fixes; 
  • PyCrunch – a tool for continuous test execution;
  • CodeStream combines the main development tools in the IDE, such as GitHub, GitLab, Bitbucket, Slack, Teams, Jira, Trello, etc.; 
  • Power Mode II is a fun plugin from the Fun Stuff category 🙂

More info
Collection of useful guides

GOLAND

Kris, GO-developer

Why this IDE

In my work I use GoLand by JetBrains cause I could not find a more convenient development tool. 

First of all, cross-platform is important for me, since I often have to work on different operating systems and do not want to be tied to only one. 

Quality is also important: other people’s bugs are the last thing a programmer wants to face during development. The extensibility of the development environment is of particular importance as well, since IDE developers will not be able to cover all use cases, and a large community will come to the rescue here. 

Further, I took into account more specific things, such as “smart” autocomplete, support for go modules, simplicity and ease of navigation through the code.

Disadvantages

The development environment requires more time to start up and RAM than others. Therefore, using GoLand to quickly view source files is unwise. 

Also, GoLand, like other JetBrains products, has a slightly higher entry threshold than almost any other code editor. Therefore, I would not recommend this tool to novice programmers.

Alternatives

I used Visual Studio Code for a while, but I was not satisfied with the quality and speed of autocomplete, as well as the overall quality of this editor. Perhaps now everything has changed, but I don’t want to try it anymore.

Suggestions

Using the “Language Injection” feature, coupled with a configured connection to your application’s database, will greatly facilitate the process of writing SQL queries in code. GoLand will prompt and highlight errors based on your application’s data model and SQL syntax.

It is also worth understanding the autocomplete system (smart completion, postfix complete) and refactoring capabilities. This will save you much more time spent studying it. Do not forget about the possibility of visualizing profiler data. 

Of the plugins, I can advise “Go Linter” (integrates the well-known golangci-lint into GoLand) and “VS Code Keymap” (for developers who are moving from Visual Studio Code to GoLand).

More info

Official documentation

GoLand IDE: tips and tricks

SUMMARY

In backend development, programmers most often use one of the JetBrains IDEs. PhpStorm for PHP development; PyCharm for Python, Go Land for Go. The industry standard for Java development is IntelliJ IDEA. 

As alternatives, you can consider NetBeans, Eclipse, or VS Code, but be prepared for a long “pre-configuration” process and a lot of conflicts associated with different plugin configurations.

But the choice is always yours – narrow down the goals and objectives of your project and use the advice of our developers wisely when choosing an editor. Good luck and see you soon!