Build Systems - Build automation is the process of automating the creation of a software build and the associated processes including: compiling computer source code into binary code, packaging binary code, and running automated tests.
Compilers - A compiler is software that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code).
Continuous Delivery Systems - Continuous delivery (CD) is a software engineering approach in which developers produce software in short cycles, ensuring that the software can be reliably released at any time.
Continuous Integration Systems - Continuous integration (CI) is the practice of merging all developers’ working copies to a shared mainline several times a day.
Debuggers - Debugging is the process of finding and reducing the number of bugs in computer software and electronic hardware. When a program crashes, the debugger shows the position in the original code. A good debugger plays an essential role in software development.
Documentation Generators - A documentation generator is a programming tool that generates documentation intended for programmers and end users, from a set of commented source code files, and in certain cases, binary files.
Git Clients - Git is an open source distributed version control system which was originally designed by Linus Torvalds, the creator of Linux, in 2005 for Linux kernel development. We cover the best graphical and console based clients.
Git Clients (Text-Based) - Git is an open source distributed version control system which was originally designed by Linus Torvalds, the creator of Linux, in 2005 for Linux kernel development. We examine text-based clients for Git.
Git Tools - We examine command-line tools that extend functionality for Git. These are very useful utilities to help you manage Git repositories.
GUI Prototyping Tools - These tools let designers and clients collaborate more efficiently. Clients experience a visual overview of what is actually going to be developed.
Integrated Development Environments (IDEs) - An integrated development environment (IDE) (sometimes known as an integrated design environment or integrated debugging environment) is a software application that provides comprehensive facilities to programmers for software development.
Lightweight Markup Languages - A lightweight markup language is a modern system for annotating a document in a way that is syntactically distinguishable from the text, and designed with a simple readable syntax.
Mobile Application Development Frameworks - Mobile application development is the process by which software is created for handheld devices. This article focuses on tools which help developers create applications for mobile phones.
Programming Tools for Kids - Stripping away the complexity, the programming languages and associated tools featured in this article aim to create new ways of helping students create projects that appeal to younger minds.
Python IDEs - One of the essential tools for a budding Python developer is a good IDE. We showcase the best IDEs for Python.
Python Shells - Exploratory programming with its interactive shell. There are some excellent alternative Python shells that extend on the basic shell. They each offer a good interactive Python experience.
Python Web Microframeworks - The best Python microframeworks. Micro means the framework is small, with little or no tools and libraries. Microframeworks are designed with extensibility in mind.
Test Automation - A test automation framework is a set of best practices, assumptions, common tools, and libraries that help quality-assurance testers assess the functionality, security, usability, and accessibility of multiple web and mobile applications.
Unified Modeling Language Tools - Unified Modeling Language (UML) is a general-purpose, modeling language designed to provide a standard way for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems. It’s the industry standard modeling language for software engineering.
Web Microframeworks: Java, Rust - Micro means the framework is small, with little or no tools and libraries. Microframeworks are designed with extensibility in mind. They provide an essential set of features and rely on extensions to do the rest. Microframeworks have the advantage of making no or fewer decisions for you, making it easy to start development.
Cross-Platform IDEs - An integrated development environment (IDE) is a software application that provides comprehensive facilities to programmers for software development.