How to set up smartphones and PCs. Informational portal
  • home
  • Programs
  • Editor or IDE? Another attempt at analysis. Free or Paid? What to expect from an IDE

Editor or IDE? Another attempt at analysis. Free or Paid? What to expect from an IDE

Writing in Python using IDLE or Python Shell is quite convenient when it comes to simple things however, as projects grow in size, programming becomes a pain. Using an IDE or even a good code editor can make your life a lot easier. But the question is - what to choose?

In this article, we'll walk through the basic tools to write in Python. We will not choose the best option for you, but we will consider the pros and cons of each and help you make an informed decision.

What is IDE and Code Editor?

IDE (or Integrated Development Environment) is a program designed for development software... As the name suggests, the IDE brings together several tools specifically for development. These tools usually include an editor dedicated to working with code (for example, syntax highlighting and autocompletion); build, run and debug tools; and some form of version control system.

Most IDEs support many programming languages ​​and have many features, which can be large, time-consuming to download and install, and require in-depth knowledge to use correctly.

On the other hand, there are code editors, which are a text editor with syntax highlighting and code formatting capabilities. Majority good editors code can execute code and use a debugger, and the best can even interact with source control systems. Compared to an IDE, a good code editor is usually lighter and faster, but often at the cost of less functionality.

Requirements for a good development environment

So what do we need from a development environment? The set of functions of different environments may differ, but there is a set of basic things that simplify programming:

  • Saving files. If the IDE or editor doesn't give you the ability to save your work and later open everything in the same state in which it was at the time of closing, then this is not such an IDE;
  • Running code from environment. Likewise, if you need to exit the environment to run your code, then this is nothing more than a simple text editor;
  • Debug support. The ability to step through the code is basic function all IDEs and most good code editors;
  • Syntax highlighting. The ability to quickly find keywords, variables, and so on makes reading and understanding code an order of magnitude easier;
  • Automatic code formatting. Any editor or IDE that really is will recognize the colon after the while or for expression and will automatically indent the next line.

Of course, there are many other features that you would love to use, but the above are the main features you should have. good environment development.

Now let's take a look at some general-purpose tools that you can use for Python development.

Python editors and IDEs

Eclipse + PyDev

If you're close to the open-source community, then you've probably heard of Eclipse. Available for Linux, Windows and OS X, Eclipse is the de facto open-source IDE for Java development. There are many extensions and addons that make Eclipse useful for different kinds tasks.

One such extension is PyDev, which provides an interactive Python console and features for debugging and code completion. Installing it is simple: start Eclipse, choose Help → Eclipse Marketplace, then search for PyDev. Click Install and restart Eclipse if necessary.

Advantages: If you already have Eclipse installed, installing PyDev will be quick and smooth. Have experienced user Eclipse will have no problem learning this extension.

Flaws: If you're just starting out with Python or development in general, Eclipse can be overwhelming. Remember we said that IDEs are big and require more experience to full use? All of this can be said about Eclipse.

Sublime text

A type: code editor
Website: http://www.sublimetext.com

Sublime text written by a Google engineer with the dream of a better word processor, is quite popular editor code. Available on all platforms, Sublime Text has built-in support for Python code editing, as well as a rich set of extensions called packages that extend the syntax and editing capabilities.

Installing an additional Python package can be tricky — all Sublime Text packages are written in Python, so installing community packages can often involve executing a Python script directly in the editor.

Advantages: at Sublime Text a large number of fans. As a code editor, Sublime Text is fast, lightweight, and well supported.

Flaws: Sublime Text is not free, although you can use trial period as much as necessary. Installing extensions can turn into another quest. Also, there is no support for debugging and running code in the editor.

Atom

A type: code editor
Website: https://atom.io/

Available on all platforms, Atom has been called the "hackable text editor of the 21st century." Atom is written using Electron, a framework for building cross-platform desktop applications using JavaScript, HTML, and CSS, and has many extensions. Python support can also be plugged in using an extension that can be installed directly into Atom.

Advantages: support across all platforms thanks to Electron. Atom is lightweight and fast to download and load.

Flaws: Build and debug support is not built-in, but is added via extensions. Since Atom is written with Electron, it always runs as a JavaScript process and not as a native application.

GNU Emacs

A type: code editor
Website: https://www.gnu.org/software/emacs/

Long before the iPhone-Android war, before the Linux-Windows war, even before the PC-Mac war, there was an editor's war with GNU Emacs as one of the participants in the hostilities. Described as "an extensible, customizable, self-documenting text editor," GNU Emacs has been around for almost as long as UNIX, and has won many fans.

Available for free on every platform (in one form or another), GNU Emacs uses the Lisp language for customization. Of course, there are customization scripts for Python too.

Advantages: you are familiar with Emacs, you use Emacs, you love Emacs. Lisp is your second language, and you know you can do anything with it.

Flaws: customization means writing (or copying and pasting) Lisp code into various scripts. If there are none, then you may need to learn Lisp to figure it out.

Vi / Vim

A type: code editor
Website: https://www.vim.org/

On the other side of the barricades in the editor's war is VI / VIM. Available by default on almost every UNIX system and Mac OS X, VI has won an equal number of fans. VI and VIM are modal editors that separate viewing a file from editing it. VIM includes everything that is in VI, plus some enhancements such as the availability of extensions. For all sorts of Python tasks, you can use VIMScripts.

Advantages: you are familiar with VI, you are using VI, you love VI. VIMScripts don't scare you, and you know how to bend them to your will.

Flaws: As with Emacs, you are not very comfortable looking for or writing scripts to add Python development, and you have neither the slightest clue how a modal editor should work in general.

Visual studio

Advantages: as with Eclipse if you have already installed Visual studio for other tasks, the installation of PTVS will go smoothly.

Flaws: As with Eclipse, Visual Studio is a bit overwhelming if you only need Python. Plus, if you're on Linux, you're out of the question - Visual Studio is not available for this platform.

Visual Studio Code

A type: code editor
Website: https://code.visualstudio.com/
Python tools: https://marketplace.visualstudio.com/items?itemName=ms-python.python

Visual Studio Code (not to be confused with Visual Studio) is a full-featured code editor available on Windows, Linux, and Mac OS X. VS Code is an extensible open-source editor that can be customized for any task. Like Atom, VS Code is built on Electron, so it has the same advantages and disadvantages.

Adding Python support to VS Code is easy - search the Marketplace for “Python”, click Install, and restart the editor if needed. VS Code will automatically detect the Python interpreter and installed libraries.

Advantages Thanks to Electron, VS Code is available on all platforms with surprisingly great functionality. In addition, the source code can be found in the public domain.

Flaws: since Electron is involved, then VS Code is not a native application. In addition, some people may not be allowed to use Microsoft products because of their religion.

Editors and IDEs designed for Python

PyCharm

One of the best full-featured Python IDEs is PyCharm. Exists as free open-source(Community) and paid (Professional) IDE options. PyCharm is available on Windows, Mac OS X and Linux.

PyCharm supports Python development out of the box directly - open new file and start writing code. You can run and debug code directly from PyCharm. In addition, the IDE has project support and source control.

Advantages: This is a Python IDE with support for everything and everyone and a good community. In it "out of the box" you can edit, run and debug Python code.

Flaws: PyCharm may load slowly and the default settings may need to be tweaked for existing projects.

Spyder

Spyder is an open-source Python IDE optimized for data science. Spyder comes with the Anaconda package manager, so it is possible that you already have it installed.

What's interesting about Spyder is that its target audience are data scientists using Python. For example, Spyder works well with data science libraries such as SciPy, NumPy, and Matplotlib.

Spyder has all the functionality you'd expect from a standard IDE, such as a code editor with syntax highlighting, code completion, and even a built-in documentation browser.

A distinctive feature of Spyder is its variable explorer. It allows you to view the values ​​of variables in the form of a table right inside the IDE. Integration with IPython / Jupyter also works well.

Spyder can be said to be more down to earth than other IDEs. It can be thought of as a tool for a specific purpose, rather than a primary development environment. What's great about it is that it's free, open-source, and available on Windows, macOS, and Linux.

Advantages: you are a data scientist using Anaconda.

Flaws: More experienced Python developers may find Spyder lacking functionality for daily work and will make their choice in favor of a more functional IDE or editor.

Thonny

Thonny is called an IDE for beginners. Written and maintained by the Institute of Informatics of the University of Tartu in Estonia, Thonny is available on all major platforms.

By default, Tonny is installed with the bundled version of Python, so you don't need to install anything else. Advanced users may need to change this setting in order for the IDE to find and use the libraries that are already installed.

Advantages: you are a beginner Python programmer and you need an IDE you can go straight into battle with.

Flaws: advanced users will not have enough functionality, and they will replace the built-in interpreter. In addition, given the newness of the IDE, problems may arise, the solutions of which on this moment no.

So which one to choose?

  • Novice pythonists should take something with the least customization options. The fewer obstacles the better;
  • If you already use some editor for other tasks, then look towards code editors;
  • Well, if you already have an IDE for another language, then try adding Python support to it.

Are you also interested in the web? Then take a look at our similar one for web development.

We tried to grasp the immensity, recalling several of the most popular and universal development environments. The experience turned out to be not very successful, so this time we will focus on only one language, namely Java. If you are just starting to get to know him, we recommend that you go through.

Having established 7 nominations, we will subjectively determine the best of the best:

Best Free IDE: NetBeans

NetBeans is the most powerful open source development environment for web, mobile and desktop applications. Works with Linux, Windows, MacOS and even Oracle Solaris.

Despite the fact that NetBeans allows you to work in multiple languages, it is considered Java-centric in the development environment. It interoperates nicely with JPA, JSP, Struts, Spring and the Hibernate library.

Best Commercial IDE: IntelliJ IDEA

In truth, IntelliJ IDEA comes in two versions, one of which is completely free - the Free Community Edition. And for a novice developer this package enough with the head. Specifically the IDE Android Studio, which will be discussed a little later, is based on this version.

In the paid version, you get support for Spring frameworks (Spring MVC framework, Spring Security, Spring Boot, Spring Integration, etc.), Node.js, Angular React, Grails, the ability to use additional languages(javascript, typescript, coffeescript) and interact with almost seven popular servers(Tomcat, TomEE, GlassFish, JBoss, WildFly, Weblogic, WebSphere, Geronimo, Virgo, etc.)

Most Popular IDE: Eclipse

It is almost impossible to give an exact figure, but almost any Java developer with more than 2 years of experience has come across this IDE. Eclipse managed to become the winner in this category thanks to a large community, a ton useful information and countless plugins. As with its predecessors, Eclipse supports multiple languages, but is perceived to be Java-driven.

Most versatile IDE: JDeveloper

Another product from Oracle with a lot of advantages, including support for version control and cloud service Oracle, it's packed with SQL Developer, PL / SQL Query Processor, WebLogic Server, HTML editors, CSS, JavaScript, JSF, JSP, WSDL and more huge amount all kinds of usefulness.

Best for Android: Android Studio

It would be strange if some other IDE became the winner in this category. In addition to all the possibilities that the original IntelliJ IDEA IDE gives you, Android Studio includes many add-ons from Google, both purely visual (layouts, formats, GPU profiler) and functional (JUnit 4 and Firebase Test Lab for testing and debugging, system builds Gradle, Instant Run).

Best IDE for Learning: DrJava

This is precisely the conclusion reached by a development team called JavaPLT representing Rice University. This is not surprising, considering that DrJava is their brainchild. However, leaving jokes aside, we have to admit that DrJava is really perfect for beginners, because this IDE does not even aim to compete with the above. Its main advantage is extremely fast setup and transition to direct code writing. Consider BlueJ, JGrasp and Greenfoot as competitors on similar terms.

Most Promising IDE: MyEclipse

The welcome caption on the download page reads “The best Java EE IDE enhanced for the full stack developer”. Well, this is very immodest, not at all supported by facts, but in truth, not far from the truth. In essence, MyEclipse is Eclipse, where everything is initially “screwed on”, “finished” and expanded a little more. The developer is offered several versions, two main ones - standard and professional. Standard is just Eclipse in a new shell, and Professional contains a mobile web simulator, an image editor, a UML editor, templates, add-ons - in general, everything that will make creating a product much easier.

What do you use?

Associated with the choice of working environment - IDE (integrated development environment / integrated development environment). This is especially important for those new to programming, as the choice of IDE can have a significant impact on their workflow.

While there are more than a dozen different Java IDEs in total, the largest and most powerful, and well supported by both developers and the community, are the three IDEs: NetBeans, Eclipse, and IntelliJ IDEA. The rest of the competitors are significantly inferior in functionality, many are no longer supported, which is why they cannot meet the latest standards of such a rapidly developing programming language like Java. Let's dwell on each of the mentioned development environments in more detail.

NetBeans is developed with active support from Oracle, which also owns the Java rights. Thus, some Java technologies have first-hand support in NetBeans.

In terms of functionality, NetBeans is the simplest and most intuitive Java development environment of the top three. Without a doubt, we can recommend it for those who first encounter development environments and the language. Java programming... Among distinctive features this IDE can be distinguished optimal setting environments out of the box. By setting this Wednesday, the user gets excellent settings for the compiler and the development environment itself, an interface without unnecessary icons and menu items, there are only the most demanded and frequently used functions. Subsequently, of course, you can customize the interface for yourself. We can also note the convenient implementation of tasks, all the menus are very well structured and have clear names. Separately, we can note the ease of working with NetBeans due to the absence of the need to wander through endless menus and pop-up windows, which many other development environments suffer from. In most cases, when a user interacts with NetBeans, it automatically prompts optimal parameters for work. Thus, even if a novice user does not fully understand what the environment is asking him about, clicking "OK", it is almost impossible to harm his work. Installation of additional environment components / plug-ins (plug-ins) is done in one click. There is good support for version control systems (VCS, version control system), as well as an easy-to-use graphical development subsystem user interface(GUI, graphical user interface). NetBeans is available.

In summary, the NetBeans IDE is an intuitive and easy-to-use development environment. It's easy to learn how to get started with NetBeans and is also easy to learn to use at an advanced level. In addition, the NetBeans user interface style is such that you can quickly learn it yourself. Java language if you use the hints built into the environment, be it Javadoc documentation or recommendations for correcting mistakes / potential errors.

Eclipse is an integrated development environment originally created by IBM and has been at the forefront since its inception. Eclipse, however, is not only Java-specific, but the general-purpose Eclipse Platform, which affects its functionality. Most suitable assembly for working with Java Eclipse environments available under the name "" Eclipse IDE for Java Developers "".

The hallmark of Eclipse is its almost unlimited customizability and extensibility. For users, however, this can cause problems. So out of the box, the Eclipse interface contains too many rarely used functions, has confusing and non-intuitive menus, Eclipse is known for its endless dialog boxes that require the user to enter a large amount of information or simply overloaded information that he needs to familiarize himself with. The plugin installation system can also seem confusing. The systems for working with version control and user interface development are at the middle level. Eclipse is also available for free.

Among the advantages of the Eclipse IDE is support for almost any existing technology Java, as well as minor technologies that programmers cannot do without. With enough experience, Eclipse can be customized to an incredible degree to suit your needs. For new users, this will only be an obstacle to effective work because a general-purpose environment should not be expected to be very intuitive and simple.

IntelliJ IDEA by JetBrains was the first fully fledged IDE to be built. Unlike the above IDE Intellij IDEA is available in a free Community Edition version and a paid version - Ultimate. For a beginner developer free version contains all the necessary functionality and can be considered as a full-fledged IDE.

Now IDEA is getting more and more supporters and positive feedback, being, as its slogan says, a "smart" development environment. Intellij IDEA is extremely intuitive, easy to use, supports most modern technologies, has one of the most convenient version control systems. There is absolutely no congestion in it: at least dialog boxes only the necessary information displayed to the user. There is an extensive hotkey system that allows you to quickly execute big number nontrivial functions. In terms of usability, IntelliJ IDEA definitely stands on a level above the competition, since being a "smart" environment, it always knows the user's intentions, prompting / helping him in his work and saving a lot of time and effort. As such, IntelliJ IDEA has no drawbacks, for a beginner, however, the GUI development system can be difficult, since it will require the user at least minimum set knowledge of building a GUI in Java.

To summarize, the following points should be made. For those new to Java and IDEs, perfect choice- NetBeans. For people with at least minimal Java knowledge, NetBeans or IntelliJ IDEA will do. For those who have the desire and ability to spend some time getting to know and configure the environment, and also want to completely customize the environment for themselves, you can recommend Eclipse.


Convenience and speed of development.

Alexander Makarchuk, qb
Improving the speed and ease of development.

Alexander Smirnov, Greensight
Speed ​​up development, reduce errors, just convenience.

2. Is it important to train developers using the IDE? Why?

Alexey Fedorov, Classmates
This is an interesting idea. Surely there are companies that are ready to invest in this.

, ADV
If the developer does not know the basic things of the IDE, the development will take longer. V modern world this is already a requirement for the profession.

Alexander Makarchuk, qb
There is no need. To teach is to impose your own. Each developer works on what is convenient for him. In doing so, you can always show the benefits of your IDE.

Alexander Smirnov, Greensight
It is rather a question for each developer separately - which is more convenient for him. But in the early stages, smart completion and error highlighting are almost irreplaceable.

3. Most quality IDEs are paid. Should you spend money on licenses?

Alexey Fedorov, Classmates
Costs. Current situation the market is such that paid IDEs are generally much better than free ones.

Alexey Persianov, Mikhail Parfenyuk, ADV
If you want a quality IDE, then it is worth the splurge. If you don’t support the developers of high-quality IDEs "with a ruble", then they will not make high-quality IDEs

Alexander Makarchuk, qb
If appropriate, then, of course, necessary. Time is money.

Alexander Smirnov, Greensight
Depending on the needs and funds. Someone has enough Sublime, someone wants to use Jetbrains products, someone inevitably has to buy Xcode.

4. What is lacking in modern IDEs? Could a giant like JetBrains emerge in this market?

Alexey Fedorov, Classmates
Maybe. But it will be difficult to compete with them: IDE development- this is hundreds of man-years of work and tens of millions of dollars.

Alexey Persianov, Mikhail Parfenyuk, ADV
At the moment JetBrains has taken over given market, and there is hardly anything better coming up anytime soon.

Alexander Makarchuk, qb
Something new will always come up and the IDE is no exception. The advantage of new projects is always that they take into account the disadvantages of old ones.

Alexander Smirnov, Greensight
If something better appears, then why not.

5. What other tools exist or may appear to speed up development and make life easier for developers?

Alexey Fedorov, Classmates
Project builders, bug trackers, version control systems, continuous build and integration systems and many, many others.

Alexey Persianov, Mikhail Parfenyuk, ADV
For example, the CI system.

Alexander Smirnov, Greensight
It is hard to say. More third party tools integrates into the IDE, rather than exist separately.

6. What trends in the development of IDE functionality you could point out in last years?

Alexey Fedorov, Classmates
Integration with other systems such as bug trackers, VCS server or CI. And of course, speed - modern IDEs slow down much less than 10 years ago.

Alexey Persianov, Mikhail Parfenyuk, ADV
Moving all paid IDEs to subscription distribution.

Alexander Makarchuk, qb
Subscriptions. It is always easier to pay a lower amount, especially if you have doubts about the choice or are not yet used to the instrument.

Alexander Smirnov, Greensight
Development of plugins, integrations with third party utilities and software, improved autocompletion.

The compiler converts source(files * .с, * .cpp) into a running program. If you don't have a compiler, you need to install it before you start programming. There are many compilers available for download on the Internet. If you are Mac user OS X, Linux or other * nix systems (like Unix or FreeBSD), you probably already have compilers like GCC or G ++ installed.

Basic concepts

Compiler- a program that translates the source (high-level) code of the program into the final (low-level) code.
Compilation- high-level transformation process source text programs, into the equivalent text of the program, but already in a low-level language.
Linker(Linker) - a program that generates an executable module by linking project object files.
IDE(Integrated Development Environment) - A combination of a text editor and a compiler. Development, compilation and launch of your programs are carried out directly in the IDE. Integrated Development Environments (IDEs) simplify the process of composing programs because you write code, compile and run programs in one program - the IDE. One more important feature The IDE is that the IDE helps you quickly find and fix compilation errors.

Understanding compilation processes

The compilation and linking processes are - short description what exactly happens when you compile the program.
Compilation errors, in some lines the compiler finds errors that need to be eliminated.
Compiler warnings - what compiler warnings are, and how and why they are resolved.
What is the difference between declarations and definitions in C / C ++. Learn the difference between a declaration and a definition in C / C ++, and why it is so important.

Compiler selection (IDE)

For Windows OS:
Code :: Blocks with Mingw - our recommended free IDE! Code :: Blocks is also available on Linux. You can see how to install this IDE in our article Installing Code :: Blocks and MINGW.
Microsoft Visual C ++ - Read about Visual C ++. Guide Microsoft installation Visual Studio 2012

Top related articles