Hello and welcome! In the last post, I started learning my primary programming language, C++ Programming, along with you. I know you’re totally eager to continue, but you’ll have to be patient for now. Because now there is a little thematic insertion.

Before we dive into the learning process and start coding, I want to introduce you to a very useful and important tool:

The text editor

Why the introduction now?

In the last post you saw what steps are all necessary to write and create your first executable in C++. For this we used the text editor provided by the operating system. Minimally, you don’t need any other tools than the ones presented. But your work can be done less cumbersome and much more comfortable with the help of a more comprehensive tool.

Basically, a text editor is a program that allows you to open, view and edit simple text files. Unlike word processors, text editors do not add formatting to the text, but focus on editing functions for plain text.

Text editors are used by a wide variety of people for a wide variety of purposes. They are the ideal tool for anyone who wants to write, read source code or create text files quickly and easily. Mainly, they are used by software and web developers for programming and markup languages. The many features of editors help them work with code.

In the programming community, there are an overwhelming number of opinions about text editors, IDEs and other related tools. There are so many options and so many recommendations that it is really difficult to find the best tool for you.

However, it is extremely important to choose the right editor!

After all, text is the basic element of programming and choosing a tool to manipulate text is one of the most fundamental decisions a developer can make.

What should a text editor be able to do?

There are common features and functions that all editors share. These are what make a text editor a good text editor. Here are a few of them:

  • Easy to use and navigate
  • Find and replace. With these functions you can change a single word in the entire file with a few clicks.
  • Cut, Copy, Paste
  • Ability to process UTF-8 encoded text
  • Syntax Highlighting. This makes it much easier for you to read code and find errors.
  • Customizable interface, e.g. change font size, color scheme.
  • Extensibility. You are provided with a plugin mechanism or the possibility to use scripts. So you can customize the editor and add additional features.

No, Word doesn’t work!

Surely you use word processing programs like Microsoft Word, LibreOffice Writer or Google Docs extensively for your text documents. And by doing so, you are using them for exactly their intended purpose. They support you with their text formatting, spell checking or the function to easily integrate other media when writing literary texts.

Unfortunately, text processors do not help you with programming at all. The reason is the recipient of the text. In our case, this is a machine, the computer. It can’t do much with fonts, indentations, font decoration and so on and is only interested in the pure text. Therefore don’t make it too complicated for you both and give it your files as plain text.

And what about IDE?

You can legitimately ask me about an IDE (Integrated Development Environment) at this point. It’s true, such a tool will serve you very well in your work and support you in a useful way.

What makes an IDE so useful is the I: integrated. It puts together almost all the tools you need for a complete development environment in one editor.

In addition, comfort functions, such as simple navigation functions, automatic code completion, class explorer or hierarchy diagrams, are offered to you. Furthermore an IDE contains tools, which help you to automate your development as far as possible. This includes e.g. source control, test tools, etc.

But not all IDEs contain all these tools. If you are overwhelmed by the huge scope, then you will find some with fewer functions. The quality of an IDE is not in the mass of its tools, but in how much it fits to your working behavior.

So why not an IDE?

Now you’re probably wondering, if I can get everything nicely packaged in an IDE, why I want to introduce you to a simple text editor. The answer is, like many things in life, a matter of taste. But I would like to give you a few reasons for my decision.

An IDE tries to cover all areas of use at once, and in some cases this is not the most optimal solution. Often you will see that many long-time and professional programmers do not use an IDE if they can avoid it.

Sometimes a certain development environment is already given for a project. Be it for technological reasons, as a requirement of the company or that you take over an existing project. Then you are of course bound to it. However, if you have a free choice, you should not limit yourself and use the right independent tools for the job.

As you can see, as a software developer you can’t rely on a single editor or IDE as the right tool for all situations. Sure, IDEs can be powerful and elegant, filled to the brim with useful tools.

Sometimes IDEs are indeed necessary, especially when you’re asked to work with proprietary tools (e.g. Visual Studio). But they can also be overkill, overshooting the mark. This will affect your work and you may be left with an unpleasant programming experience.

As the biggest shortcoming, IDEs not infrequently lack one of the fundamentals of programming: efficient text editing.

Code-centric text editors are the easier option. These editors give you syntax highlighting, come with more flexible user interfaces, have powerful search and navigation tools, and are often extensible and easy to customize.

But they only fulfill one step of the development process. You can only edit text with them. To build the program, you still need a compiler.

Therefore find a good editor (e.g. vim, emacs, sublime, atom, vs code) and get to know it well. Work with it and discover the best tools. It will pay off for you. Especially if you suddenly find yourself in the situation of having to learn a new programming language. This way you stay flexible and can focus on the language and your code instead of struggling with restrictions of an IDE.

However, if your current project is deeply tied to an IDE, then that’s a different story.

There is no accounting for taste

As a programmer, the choice of editor or IDE is an important decision and need not be final. Feel free to re-evaluate your choice and change it as needed. The worst thing you can do is to force yourself into the framework of a tool or to be too loyal to a particular tool.

Always remember that the best text editor is ultimately the one that makes you the most efficient.

I wish you maximum success!