Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Igor Ljubuncic
on 30 January 2020

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.


If you’re a Web developer, Brackets is an open-source editor, with focus on Javascript, HTML and CSS. Overall, the editor supports 38 file types. You also have tabs, linting, extensions, and can use the Live Preview option to see changes you make to your code in real time. There is also a Javascript debugger built into Brackets, to help you troubleshoot any usability or performance issues with scripts.

QML Creator

If you’re developing applications for mobile, there’s a good chance you’re utilizing Qt and QML technologies in your work. QML Editor is a lightweight IDE for projects based on QML and Javascript, with syntax highlighting and a sizable array of demo projects. The last part can be particularly valuable for developers starting in the mobile world, as you can review code that composes different UI elements and widgets, and also preview how they work (including both mouse and touch). You can then make changes to the examples, and learn in an interactive manner.


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.

cppcheck example.cpp
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.

Sublime Merge

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.

Photo by Markus Spiske on Unsplash.

Related posts

Igor Ljubuncic
16 June 2023

Snapcraft 8.0 and the respectable end of core18

Ubuntu Article

‘E’s not pinin’! ‘E’s passed on! This base is no more! He has ceased to be! ‘E’s expired and gone to meet ‘is maker! ‘E’s a stiff! Bereft of life, ‘e rests in peace! If you hadn’t nailed ‘im to the perch ‘e’d be pushing up the daisies! ‘Is software processes are now ‘istory! ‘E’s ...

Igor Ljubuncic
21 March 2023

Craft team welcomes you to another episode of its adventures

Ubuntu Article

Welcome to the second article in the Craft team saga. Previously, on Craft Team, we gave you a brief introduction into the team’s function, we announced our desire to share the ins and outs of our day-to-day work with the community, and gave you an overview of roughly two weeks of coding and fun. Today, ...

Igor Ljubuncic
6 March 2023

What happens in the Craft team stays in the Craft team … until today

Ubuntu Article

Snapcraft, Charmcraft, Rockcraft … you may have heard of these tools, but have you ever wondered how – and by who – they are developed? These tools are the intellectual and keyboard-driven product of Canonical’s Craft team. Officially, the team’s name is *Craft, and the asterisk symbol can easily be seen as a “star” (The ...