Every good developer relies on having a collection of helpful programming tools at their fingertips. Here are some of our recommendations, separated, for ease-of-use into three categories: generic tools, specific free tools and specific paid tools.
Generic Programming Tools
Here are some of the essential programming tools we think every programmer should have access to:
- Source code editor – A source code editor is similar to a programming text editor but has additional functionalities that enhance and automate code editing such as syntax highlighting, indentation, autocomplete and bracket matching. Every programmer should use a source code editor. Well-known, cross-platform source code editors include Atom, Emacs, Light Table, SlickEdit and Visual Studio Code. SlickEdit is my personal favourite as it allows developers to code in over 40 languages on seven different platforms.
- Debugger – A debugger helps detect and correct errors in computer programs. Some of the most popular debuggers include: GDB: The GNU Project Debugger (this cross-platform tool helps developers see what is happening with their software as it operates and executes code), WinDbg (this tool helps debug apps, program drivers or memory dumps following system crashes but is restricted to Microsoft environments) and IDA Pro (this tool has a great reputation and is both a disassembler and a debugger and is supported by Mac, Windows and Linux alike).
- Graphical interface builder (GUI designer) – This is a type of tool which allows web designers to move around graphical elements and widgets on the page using a drag-and-drop WYSIWYG editor. WindowBuilder is a popular Java GUI builder. A list of popular Python GUI builders can be found here
Free Programming Tools
We don’t mind paying for tools that are valuable, but there are an enormous number of very solid software development tools that are available free of charge or on a voluntary donation basis.
- Bitbucket is a tool that allows you to store your code in an unlimited number of private repositories in the cloud for safe back-up. This tool can be useful for remote coding teams.
- Gitlab is a free tool that tracks issues through the coding, testing and deployment phases. With built in activity feeds and wikis, it is a great method for managing complex projects with multiple, concurrent tasks and many team members.
- jEdit is a free Java-based programming text editor with hundreds of person-years development time behind it. It runs on Mac OS X, Windows, Linux and BSD, and has hundreds of macros and plugins available for your customisation needs.
- UPX is a free tool which can compress Windows and Linux executables to 40% of their original size. It is renowned for its speed and efficiency.
- Festival is a free text-to-speech framework. It works through a number of APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface.
- searchcode is a great tool to use if you’ve got a programming problem that you’re not sure how to get past. You can search over 20 billion lines of code from over seven million projects to find programming source code for your exact issue. If you’ve previously used the now discontinued Black Duck Open Hub Source Code (aka Koders), this is the best replacement available.
Paid Programming Tools
Paid tools are the best option for build automation software. Some of the best tools include:
- Codeship offers continuous integration and delivery by running your automated tests and deployments on their powerful machines. It also integrates with Docker. Companies that use Codeship include CNN, Whole Foods, Red Bull and Harvard University
- SSH is an encrypted network protocol for initiating text-based shell sessions on remote machines preventing information hijacking. It works on Unix and Microsoft systems
- Maven is a highly-regarded build automation tool for Java projects
- QuickBuild is a build automation tool that executes and manages build using functions such as search, categorization, promotion, patching and deletion.
- CircleCI is a hosted solution for integration and testing that supports Ruby on Rails, Java, Sinatra, Node, Python, PHP and Clojure.
- Airbrake – We’re a bit biased of course, but we do think that Airbrake is a wonderful tool for developers. Airbrake allows you to find and fix code errors fast through intelligent error grouping, aggregated error data, and deploy tracking, search and filter. Try it, free.
These tools, although offering different services, all help with either fast and efficient code editing and creation, bug and error detection or project management related to development. Don’t be afraid to test them out and let us know how you get on.