Posted on: September 3, 2017
What editors to use for programming?
This being the first post on this blog, I want to discuss the environment in which the code is created. More precisely, the editors that I have tested and used in the past and up until now. Sure, most likely there are plenty more that are neat and user friendly but I don't want this post to be based on a presumption. Rather than doing an extensive commentary on the subject that's already covered on the internet, I'll just provide my humble opinion, summarized in a few sentences for each of the editors.
Kate (free)
It is the most accomplished text editor I have ever used for my projects. It supports a vast amount of languages, from markup to database and programming, each being highlighted in its own way accordingly which of course you may customize to your own liking. There are plenty of features you already know, such as choosing your own encodings, own themes, own shortcuts and saving sessions. The most important features, however, is that you can control line endings(DOS/UNIX/MAC) and are able to save files with or without Byte Order Mark(BOM).
Kate is a very light-weight editor that can open large files without problems and satisfy your needs for any project, well, at least for me that is. It is a native KDE application but runs on Gnome and Unity(Ubuntu) like a charm as well. Now, it is also available for Windows. Unfortunately, there is no official release for Mac OS yet but there are some github repositories. Overall, I would recommend it to anyone. Try it out and see for yourself.
Notepad++ (free)
Yet another free light-weight editor that I can easily use whenever on a Windows machine. It's easy to understand and use, especially appropriate for beginners as it supports auto-complete and error highlighting. It won't auto correct or remind you about an error but it will be highlighted which is always a bonus, especially as you progress in coding. It supports many languages, though not as many as Kate, and also has an option to choose the line endings(DOS/UNIX/MAC) and to save the file with or without BOM.
Overall, I would recommend this editor to (determined) beginners rather than those with auto-correct because errors are a part of a learning process. If you always used auto-complete and auto-correct before, there will be a time when you won't have that option and you might freeze. So learn from mistakes, sooner or later there will only remain a few in your natural coding style. I would also recommend this editor to Linux users that have to switch to Windows. Apart from GUI, it does somewhat replicate the classic feeling.
Gedit (free)
Gedit comes as a default editor to many linux distros. It is easy to use and understand and basically has everything you need for web development. I still use this editor for making scripts whenever possible. It is easy and neat on the eyes and you can use it to make code or just edit text chunks. It doesn't support as many languages or different syntax highlighting as one would like, as does not line ending which are DOS based by default and cannot be changed. Another default setting is adding BOM to the code which can be annoying at times but that is why you should have another editor ready for such cases.
Gedit might not be the most accomplished editor but the fact that it comes with default installation on Linux and if we compare it with Windows Notepad that is somewhat equivalent, then it is easy to see the supremacy in functionality of Gedit which is, believe it or not, also avaiable for Windows and Mac.
Sublime Text (free trial, licensed)
I gave it a chance and it did not convince me to purchase a licence despite being pleased with its use. After all, it is a neat, light-weight editor, highly flexible, customizable and can basically be used with a keyboard. It uses a custom UI toolkit unmatched by other editors since the theme, feeling and highlighting is different on Windows than it is on Linux or Mac. It basically uses libraries native to the OS that is installed on.
The downside of Sublime text 2 was that it didn't support line endings and adding BOM was also a bit of pain in the ass but now I read that this is resolved in Sublime text 3. So overall, I suggest you give it a try and then decide for yourself whether or not it is worth to buy a licence.
Atom (free)
Atom feels like using Sublime text. The theme and shortcuts feel almost the same but there is a difference between the two. While the code for Atom is completely open source and plugins are created with HTML/CSS and JS, for Sublime text it is more of a closed source that lacks in documentation and plugins are generaly created with Python. From my observation, Sublime text runs better and faster than Atom which is completely understandable since it uses native to OS libraries and is an older project. What bothered me the most in Atom is that it is sending metadata over the internet whenever opening the editor. It kind of felt like checking in for work, if you know what I mean.
Overall, I didn't have any problems when working on a project but it is true that I didn't use it for long. I think it is a suitable editor for web development and I suggest you try it out and see for yourself whether you like it or not.
Dreamweaver (licensed)
My first steps were made back then in Dreamweaver CS3. All I can say is that it was a good experience and visual representation of the HTML tables. It did support auto complete for HTML, CSS and PHP which was helpful, especially in the beginning but as said above, it is only spoiling the coder doing his job. It was a bit heavy on the CPU and I assume it still is because it's Adobe. One thing I liked was the default theme and usability. Easy on the eyes and very distinctive between the languages.
So If you are a beginner using Windows or Mac and can afford to purchase a licence, then I would recommend Dreamweaver because it will help with the code and visual representation of the code, at least for markup languages. If nothing else, it won't deter you away from coding because some of the other editors can have that effect on a beginner.