Every craft needs craftsmen, every craftsman needs tools. If you make a living developing code, you want a friendly ecosystem to help you achieve best results from your work. Good development software will allow you to achieve higher productivity and precision, leading to a product that is more effective and with fewer bugs. Finding the right tools is an important part of this equation. Let’s see if we can assist in the search.
Cppcheck is a static analysis tool for C/C++ code. It can be used to detect bugs and errors in a code that would normally not be detected by compilers. For instance, memory leaks can be notoriously elusive, and it is much better to find them before you compile the code and release the software into production. You can use cppcheck in a terminal, if it detects any errors, it will print the line and name of the variable, so you can make necessary code changes.
Checking example.cpp …
example.cpp:9:1: error: Memory leak: mem_alloc_object [memleak]
Another useful way of spotting errors and bugs in your code is by running a visual diff between two files. You can use existing command-line utilities available in your distribution, and some text editors also support this feature. Sometimes, though, the information can be somewhat difficult to read, and thus easily discern the differences.
Icdiff offers a color-coded diff functionality, allowing you to easily distinguish between lines or sections of code that have changed, and thus make any tweaks if needed. The usage is pretty straightforward, but you get the clarity and visibility you require. You can customize the look and feel. Icdiff also supports git, subversion and mercurial.
If you work a fair deal with version control software, you may want to take a look at Sublime Merge. This is a code editor specifically optimized for git, including powerful merge and conflict control, commit history and search, advanced diff functionality, and syntax highlighting. You also get extensions, and command-line integration. Sublime Merge is particularly valuable if you have multiple git projects with lots of frequent commits, as it allows you to manage those more easily, boosting your efficiency and productivity.
This text editor may sound like an unlikely candidate for a development tool in Linux, because it is officially a Windows-only application. But it is available as a snap, with a WINE backend, allowing Linux users to tap into its feature-rich interface.
Notepad++ comes with a long list of capabilities, including code linting and auto-completion, spellchecker, tabs, regex-supported search, macros, syntax highlighting for more than 80 programming languages, and more than 100 plugins. Another useful feature is that all work is auto-saved, including new file buffers. This means you can close Notepad++ without having saved certain open tabs to the disk, and the contents will still be available on next start. As a text and source code editor, Notepad++ offers flexibility to its users, especially if they also happen to use Windows tools, where they may already be familiar with the application.
In a world inundated with software, finding the optimal tools for work are essential. This is a small sampling of the snaps available in the development category, but we believe they offer a good mix and balance between advanced functionality, productivity and fun.
We will follow up with additional developer-focused articles in the future, as there’s a whole trove of other utilities and applications we haven’t explored yet. Meanwhile, if you have any comments or recommendations, please join our forum for a discussion.